While it's quite unusual to really have 0 byte free, there is no such thing as "unused RAM" on Linux/Unix based systems. RAM that's not used by apps themselves is used to e.g. buffer data from slower media, and caching stuff from the file system. You will see that quite nicely when running the free
command on a command line (using a terminal emulator app, or via adb shell
). An example (here from a Linux machinerooted Android running the Terminal Emulator app) looks like this:
total used free shared buffers cached
Mem: 7639580 7132360 507220 0 500380 1940140
-/+ buffers/cache: 4691840 2947740
Swap: 9765884 309424 9456460
(it looks similar on Android -- just this one was faster for me to capture). Note the high numbers for "buffers" and "cached" -- which are the reason why the RAM used by apps plus the amount of free RAM "doesn't add up" to the total RAM available. Nothing to worry about.
As for Task Killers: Kill them, they won't do you much good. True they can be useful -- but not in this context: use them to kill hanging/misbehaving apps e.g. hogging your CPU and won't quit otherwise. But it makes absolutely no sense to use them to "free RAM" or "save battery" -- to the contrary: most "killed" apps will simply re-launch themselves immediately, using the same RAM again -- but needing more battery for the relaunch then they'd used had you not killed them. To close apps, exit them via the back button (not the home button). If the dev designed them well, this should place them on the "exit list" (check for "OOM killer" and "application life cycle" if you want more technical details).
Don't worry about handling the RAM -- Android does a good job here already on its own :)