Hostility6
New Member
Hmmm....been wondering about this.
this one should bump the top message, why is it that the misinformation at the top gets to stay at the top. IT ABSOLUTELY AFFECTS BATTERY LIFE. Never mind I HATE when apps that I dont want to use are running. I should determin what runs and what doesnt, and furthermore should be able to uninstall the #@$P that I dont want (ie Amazon .mp3)@Dream... background processes in the linux OS use almost no cpu or memory usually. As I am writing android apps on Ubuntu Linux, I am looking at the list of tasks running in the background, there are quite a few, and all barely use any memory or cpu. They will be task switched just like any app you run.
@Getaphixx -
1. Apps could possibly use battery life... (Why would I want to let that happen?)
Keep in mind Android phones can run mulitple apps at once. Because of this it is paramount that app developers use all possibilities to properly shut down their apps. One thing you have to remember, unlike any other phone you have used including iPhone, clicking on back, home, etc is NOT going to shut down the app. If you need to go back to the home screen, that app is still running most likely. There are ways a developer can "listen" for when a user does this and shut down their app to mimic how iPhone does it, for example. I am guessing most app developers don't do that tho. I've seen many apps with EXIT/QUIT options, and many without. This is sadly one of the few things I fear non-techie users are not going to understand or realize, especially coming over from iPhone. The home/back button doesn't exit an app if the developer doesn't program it that way. As you are seeing, many apps remain running. HOWEVER, what you should know is.. most apps are sort of suspended when this happens. While you can run multiple apps in the background, only services run continually in the background. All apps, while you can run several, only the FOREGROUND app is actually consuming resources, including cpu cycles and memory. What happens when you switch apps that are not services (services you can't see anyway as they do not have an user interface), they have several signals (hooks, intents, etc) sent to them to allow a developer to save the state of the application, release any resources not needed like DB connections, network, etc, so that while it is suspended, those resources are given back to Android for another app that becomes the foreground app, to use. However, this is both the greatest and worse feature of such an open system as Android. Because Java is the largest language choice right now and Android 2.0 is out, and more phones are coming, and tablets, etc.. you are going to see a plethora of java developers jump on this bandwagon. You are going to see a huge amount of apps hit the store. And you are going to find a LOT of those apps are inexperienced developers trying to mimic the iFart sensation to make millions and retire in 6 months, yet will completely ignore many of the requirements to be a good citizen in the android app world. So, many apps are NOT going to properly release resources, they wont save state, etc. So you will find more and more apps that are going to eat up memory and thus when you kill it using ATK, you'll see resources released and more memory for you to use.
Here is the thing to know tho.. Android is in control. Period. Android WILL KILL AN APPLICATION FOR YOU! In other words, if you start running out of memory, Android will send some signals to the app saying "Yo.. I really really need to use some of those resources you got tied up.. so I am shutting you down, completely. Here's your last chance to save any state..." and boom! Gone. Android thus will indeed handle memory as needed on the fly for you. Now.. what happens when you switch back to that app you left running but Android shut down? Well, it starts up again. If the app was built correctly, it will receive a bundle of info pertaining to state info that it should have saved when Android killed it. If done right, it will resume as if nothing happened. You will see a slightly longer delay than if it was still running, as it is now starting up a JVM again to run the app in, and the app may have to reload some state, screens, tiles, graphics, sounds, etc.
3. I don't use my phone for 45min.. And previously used App Killer to disable multiple items.. I come back.. I have things like Alarm Clock and others that have NO business being opened much less running... I kill them.. Jump from 65 to 104mb of memory..
This one does iritate me too.. I am not sure what controls alarm clock coming back to life. I suspect it is a SERVICE app with an interface tho. Service apps can run in the background.. so most likely the Alarm Clock app installed a service as well..that DOES run even when you shut down the alarm clock app. Every so often that service executes in the background and realizes alarm clock isn't running but it needs to, as the alarm clock app is the one that will make use of your ring tones that you selected in the alarm clock app to wake you up with, etc. That is my guess. I am not completely sure tho how this is done yet. I have only begun developing and got a lot to learn yet.
4. Please tell me how killing UNEEDED items is a waste...lol
It is indeed a waste. I am telling you now as a developer, albeit a new one, but one who has been doing java for over a decade and understands the basics of how all this works. Android WILL shut down apps (as I explained above in detail) when it needs to in order to reclaim resources so that the top app (foreground) might have resources to do something with. Even if the foreground app doesn't need them, Android will kill apps if need be as necessary. As I said above, even tho it actually shuts the app down, it goes thru steps to allow an app to cleanly shut down AND recover from the shutdown as if it was never shut down. The app developer just has to write the code correctly to handle this situation.
So, essentially, killing apps becuase you are afraid you are running out of memory is not needed. There is ONE possibility tho.. an app could run out of memory itself! It could load a very large dataset into memory and not have enough. I haven't found/read anything about how Android itself handles swapping memory to disk.. as I don't think you can set up swap memory to the SD card. It would be VERY nice if you could do this, it would allow more robust apps to at least use more memory than 128MB or 256MB the phone comes with. It would also see minor bumps in performance when it was time to swap some memory to the SD card to free up memory, or bring it back in. Windows, Linux, OSX, they all do this for you. I suspect the underlying linux OS handles this, but not quite sure if it does so or not.
Hope this wasn't too technical and helps some of you understand the killing app stuff in more detail.
Well actually, if the phone places all of that data to RAM then the memory circuits put all of those bits in a very specific mode that should simply stay there without needing power. It's when you read that bit or write a new one that's going to need current or power. Otherwise, the steady state can just sit without any power being used.When a program loads into memory, the bits that represent its code have to be read from long term storage into memory, and then the bits are interpreted into instructions and executed. While that program is in memory, the operating system has to manage the memory space where that program lives. Even if the program isn't doing anything, it consumes resources by simply existing in the machine's memory. I'm not a developer, but isn't it some kind of violation of physics to propose that the components in a machine can perform any of those activities without using power?
sentient02970 said:Well actually, if the phone places all of that data to RAM then the memory circuits put all of those bits in a very specific mode that should simply stay there without needing power. It's when you read that bit or write a new one that's going to need current or power. Otherwise, the steady state can just sit without any power being used.
So I haven't sifted through the 20 pages of this thread, but I thought that Android doesn't prevent a background app from doing things like hitting the network or CPU intensive tasks, both of which are the main battery killers. I mean, I can start PDAnet and go to the home screen, and it will still tether network traffic via USB. So if I say, forgot PDAnet was running, my phone could still be using a lot of battery via tethering...which is a bad example, because if it's connected to USB, it's charging. But the point is the same, right? Background services CAN be using your CPU/network/battery, and task killer apps can stop them.