[T-Mobile LG G2x] Klathmon:
ok, ill try to explain this :)

Android and windows operating systems are very different in the way they handle memory useage.

In windows, when you open a program the program allocates a chunk of memory that it can use, it then tells the system to give it more if it needs it, and it gives it back when it dosent. Once the program is closed all of this memory is 'forgotten' instantly and cannot be recovered, so when you restart the program you are starting it over like new. (one exception being programs that stay running in the background after you close the window)

In android, this is all handled much MUCH MUCH more efficiently.

Android apps are made up of processes and services. A process is a foreground window that you interact with. Unless you hit the back key to exit out of the program, it is simply paused. Once paused a process can use NO CPU!! none at all! ZERO! It is still kept in memory so that if you want to go back to the app, or you restart it later, and its still in memory, the phone will spend less time, CPU power, and battery power relaunching it from the start. if the phone begins to run low on memory it starts closing these programs. id say 90% of the time closing a paused process is so fast, and takes so little resources that you cant tell when its happening, even if you watch really closely for it.

The problem with apps using battery in the background is android Services.

Services are different from processes. services have no UI, the user cannot interact with them directly at all, and they should only contain code that is needed to run in the background. When you exit an app through its own menu, it shuts down its own services, unless it believes that they are needed still. These processes can run in the background for as long as they want... to a point. if android needs the memory for something else, and its already killed every process that's not running, it will start killing unused services.

Services are the main thing that separate android from the IOS. Android can multi-task, and services are the way that it does it. The reason that these can suck the battery dry is because of bad programming by the app creator. If your facebook app wants to sync your pictures, it will keep a service running to do that, perhaps using GPS, Network, and SD card data the whole time. Its the app's fault, not android's.

For example:

If your playing music, and you want to go to another playlist, a service is the part of the program reading the song off the SD card, downloading album art, and playing it over the headset. while the process is showing you all this and letting you pick another playlist. if you press your home key in the middle of a song, the process is paused, so the UI can no longer use CPU power, however the service is still running, still playing music. when you stop the music and then close the app, a WELL PROGRAMMED music app will stop its service, then pause its UI. 10 minutes later you want to play music again, so you reopen the app only to find that it is exactly the way you left it! :) all ready and waiting for you to hit play. this is because while it was paused, it was not using battery or cpu power, but was still stored in the RAM. when you reopened it, the OS just reads all this ram and 'un-pauses' the program for you.

Finally just because an app has a process, does not mean that it is drinking your battery power by the megawatt! Some services are just there, waiting for something, using little to NO cpu power. For example your SWYPE and Android Keyboard services are running constantly. however they are not using much battery power at all. the services are only there listening for android to shout that it needs a keyboard, at which point the service runs the paused process.

one last thing, the reason google maps runs in the background is because something on the phone wants location data. (could be the fact that you checked 'share anonymous data about my location with google' or the fact that you want your weather service to update based on your location, or any other 100's of things) While any program can access GPS data, the numbers you get back are latitude and longitude. This is damn near useless for any location based app, so they ask the Google Maps process to return a city, state, zip code, street address, ect... instead of your Average app maker programming an entire system for this, and getting map data from somewhere else on its own (that will most likely be not as efficent), google made a wonderful maps program and let everyone use it for its location data! Hows that for open source?

As for app killers, they are useless, 100% useless and i think that they are the only thing that should be banned from the google market. they ONLY hurt and NEVER HELP!!! the only thing that is useful is CM7/CM9's 'hold back button to kill app' this can be used to kill that annoying rogue app that has an awful programmer. but even then about 75% of the time the programmer will make it just start back up anyway, so the only solution is to UNINSTALL it.