Saturday, December 28, 2019

performance - Android's native process management vs. Greenify


Disclaimer: I'm not in any way connected to the Greenify developers, nor am I trying to promote Greenify or anything. I'm actually interested in the answers to these questions.


I've found that with a lot of Android devices that I have managed, they become slower the more apps one installs on them. This is especially true with apps that perform some sort of tasks in the background. Often, devices can become so slow that they are a real pain to use.



The solution I found to this was an app called Greenify, that I use with root privileges and an Xposed module. I find that I can keep all the apps on the devices, but "Greenify" all of them. (I think this means that inactive apps are consistently "hibernated" or deprived of system resources, leaving the resources available for active apps.) This usually makes the device much snappier, yet I find that the impeding effect on the functionality of the apps is quite minimal. Needless to say, I consider Greenify a must, especially on devices with lots of resource hogging apps and/or limited hardware.




  1. Does Android do something similar to Greenify natively? (Depriving background apps of resources in order to free it up for active apps?)




  2. If yes, how is Greenify different from Android's native resource management?




I find that lots of people have Android devices that tend to slow down over time, and many of them end up just buying a new, more powerful device once every few years. But if they used Greenify (or something similar), they might have been satisfied with the performance of the older device for many, many more years. I for example, have a five year old phone, have tons of apps on it, and am quite happy with its performance when using Greenify. However, without Greenify (and with all my apps), the phone is so slow that it's barely usable.




  1. Is there any native Android way to prevent apps from running in the background and hogging system resources?


For example, in GNU/Linux distros like Debian and Ubuntu, apps don't run or consume any resources at all unless you explicitly launch them (or have them set to launch at startup.) It's the same with OS X and Windows. And when you shut a program completely down, it can no longer consume any resources. I think even iOS automatically kills background apps when it needs the resources for something else.


I've used manual task killers, but after a while, I find that all the apps are back up running in the background again, even if I haven't launched them at all.



  1. Is it true that Android is somewhat unique in allowing apps to run in the background, consuming resources?



Answer






  1. Android actually closes some background apps, but only when system ressources are missing (you open a massive game, for example)




  2. Greenify differ from the Android memory management by the fact that it kills all apps you specified at will or after a certain time, not only when ressources are missing.




  3. Nope. If some system apps that you do not use are running in background, you can disable them or remove them completely with a root app or the adb shell





  4. Here's the list of things that I know can start a background activity and keep it opened:



    • The apps can start an activity automatically at system startup with a permission.

    • It can also start one when opened.

    • A vulnerability in Android 4.3 and before allows app to keep them active, even when the Android task killer tries to kill apps, but Greenify can workaround this (see the experimental settings).




And @DeathMaskSalesman, a HTC Wildfire S running KitKat needs Greenify, or else it'll run incredibely slow and drain a lot of battery, more than what needed to start an app.


No comments:

Post a Comment

samsung galaxy s 2 - Cannot restore Kies backup after firmware upgrade

I backed up my Samsung Galaxy S2 on Kies before updating to Ice Cream Sandwich. After the upgrade I tried to restore, but the restore fails ...