reducing memory usage in Android - Android Software/Hacking General [Developers Only]

I'd like to share tips and get help on how to reduce memory usage in Android. Maybe we can start a wiki page somewhere for this.
I've found that getting more free memory on my Android phone (G1) makes the phone much faster, especially when switching between apps.
I'd tried CompCache, but found it made little difference. I tried a swap partition, but found it made my phone unstable.
So here's my process for identifying memory hogs under CyanogenMod: connect the phone via USB, run 'adb shell', and then 'top -m 15 -s rss -d 10'. I then use the phone for a while, switching between some large apps like the browser and Google Maps, and observe which processes are staying in memory. Note that the USB debugger itself uses some memory.
I was able to get rid of some apps that were staying in memory for no apparent reason: Callbook.
I was able to get rid of some apps that were staying in memory and I didn't really need: 3G Watchdog, NetCounter
I was able to change settings in some apps so that they wouldn't stay in memory all the time: disable notifications in CyanogenMod Updater; disable 'start service on power on' in Quick Calendar
I was able to find some alternative apps that don't stay in memory all the time: now using Mode Scheduler and Timeriffic instead of Sound Manager
I'm still experimenting with different calendar widgets to see which one uses the least memory.
I noticed that the Calendar app was staying in memory. I'm not sure, but I think that disabling gmail/contacts/calendar sync fixed that. Disabling sync makes the phone faster anyway, though I then want some alternative mechanism to make sure that the phone syncs at least once a day. I've been using WiSyncPlus, set to turn on WiFi on charging, and force sync on WiFi connection. That works, though WiSyncPlus uses 15 MB or so itself. If Timeriffic or some other timer-based program that doesn't stay in memory had the ability to do a force sync, I'd prefer that.
After all that, things were greatly improved: I could keep a couple of large apps like eBuddy and the Browser in memory at the same time.
Since then I've wiped my phone and upgraded from CyanogenMod 4.2.13 to 4.2.15.1, and replicated my apps and settings as best I could remember.
I still have some large apps that seem to stay in memory:
* system_server
* android.process.acore
* com.android.phone
* com.android.inputmethod.latin
* zygote
* com.google.process.gapps
I don't recall if all of these apps were staying in memory under 4.2.13. No doubt at least some of these are necessary. (acore)
Are there any settings I can change or apps I can uninstall to stop these processes from staying in memory all the time? I don't use my phone as a phone very much; I'd be happy to get the phone app out of memory. What does gapps do? I don't need my gmail, contacts, and calendar to sync constantly. I've tried disabled the wireless network location service, but that doesn't seem to have made any difference.
Under which process does the memory usage for a widget go? I'm not seeing a separate process for some of my widgets.

balazer said:
I'd like to share tips and get help on how to reduce memory usage in Android. Maybe we can start a wiki page somewhere for this.
I've found that getting more free memory on my Android phone (G1) makes the phone much faster, especially when switching between apps.
I'd tried CompCache, but found it made little difference. I tried a swap partition, but found it made my phone unstable.
So here's my process for identifying memory hogs under CyanogenMod: connect the phone via USB, run 'adb shell', and then 'top -m 15 -s rss -d 10'. I then use the phone for a while, switching between some large apps like the browser and Google Maps, and observe which processes are staying in memory. Note that the USB debugger itself uses some memory.
I was able to get rid of some apps that were staying in memory for no apparent reason: Callbook.
I was able to get rid of some apps that were staying in memory and I didn't really need: 3G Watchdog, NetCounter
I was able to change settings in some apps so that they wouldn't stay in memory all the time: disable notifications in CyanogenMod Updater; disable 'start service on power on' in Quick Calendar
I was able to find some alternative apps that don't stay in memory all the time: now using Mode Scheduler and Timeriffic instead of Sound Manager
I'm still experimenting with different calendar widgets to see which one uses the least memory.
I noticed that the Calendar app was staying in memory. I'm not sure, but I think that disabling gmail/contacts/calendar sync fixed that. Disabling sync makes the phone faster anyway, though I then want some alternative mechanism to make sure that the phone syncs at least once a day. I've been using WiSyncPlus, set to turn on WiFi on charging, and force sync on WiFi connection. That works, though WiSyncPlus uses 15 MB or so itself. If Timeriffic or some other timer-based program that doesn't stay in memory had the ability to do a force sync, I'd prefer that.
After all that, things were greatly improved: I could keep a couple of large apps like eBuddy and the Browser in memory at the same time.
Since then I've wiped my phone and upgraded from CyanogenMod 4.2.13 to 4.2.15.1, and replicated my apps and settings as best I could remember.
I still have some large apps that seem to stay in memory:
* system_server
* android.process.acore
* com.android.phone
* com.android.inputmethod.latin
* zygote
* com.google.process.gapps
I don't recall if all of these apps were staying in memory under 4.2.13. No doubt at least some of these are necessary. (acore)
Are there any settings I can change or apps I can uninstall to stop these processes from staying in memory all the time? I don't use my phone as a phone very much; I'd be happy to get the phone app out of memory. What does gapps do? I don't need my gmail, contacts, and calendar to sync constantly. I've tried disabled the wireless network location service, but that doesn't seem to have made any difference.
Under which process does the memory usage for a widget go? I'm not seeing a separate process for some of my widgets.
Click to expand...
Click to collapse
I realize this is a little late to the party, but thank you for using and suggesting Timeriffic. We work hard on it and it's nice to know that people use it and love it.

Related

Constant Data usesage from bloatware (Daily briefing)

I recently changed to launcher pro, and got rid of most of my apps. I am on the 200mb a month plan, so I have to watch my data usage. Lately I've noticed that my 3g/g/edge icon is pretty steadily on and showing up and downstreams active.
So when I launch task killer, I notice that certain apps that I never use (nor do I have it on as a widget) such as samsungs "daily briefing" widget are always running. This didn't use to happen, but today alone i've used 8mb, despite making sure I didn't once actually use any data on purpose.
anyone have any ideas?
I actually use Daily Briefing for the weather updates, but it only updates when I hit the refresh button. Not sure why yours would be running all the time, especially without the widget.
To get rid of it entirely, you could uninstall the bloatware using Titanium Backup. That's what I did for most of the AT&T stuff on my phone.
The other possibility is to use a program like Autostarts (it costs money, but it's worth it IMO) to disable apps that run in response to events, like phone startup. You can deny just about any process or app you want.
yeah, it's really strange. I can't figure it out.
I keep thinking about removing it with titanium (I've already done that with a lot of the rest of the bloatware), but I'm afraid of making further changes to the stock as I'd like to install the official 2.2 update when it comes out without problems. Although I guess if I've already done it to a lot of the bloatware, at this point it doesn't matter.
I know I could just use odin, but I'm a bit scared due to all the problems people have had.
Just a general thing to check, is Background data and Auto-sync turned off under Settings > Accounts and sync?
I personally use a widget called GTWidget Data to toggle off data altogether when I'm not using it to make sure nothing running in the background uses data.

[Q] Nexus S running slow

Has anyone encountered this problem before? Many games are sluggish and run in frames, and it sometimes runs in frames on the homescreen. I have Android 4.0.4 from AOKP (aokp-crespo-milestone-5) and Matr1x (#11) kernel installed. Also, I had the same problem when running Android 2.3.6 and also Stock ICS both rooted and unrooted.
I discovered this problem when trying to play Asphalt 6. On a Samsung Galaxy S worked fine, but on the Nexus S it was going in frames. Since, I have seen many more games that have the same issue, any ideas?
Hi, maybe you should try Matr1x v22 BFS (Better than CFS for running games) should be good with 4.0.4
I played Asphalt 6 on my Nexus S and it was fine, as much as the Nexus S gets.
Do you have some services syncing with the network in the background? Sometimes, when the SD card is not responding properly, the device itself can get a little sluggish, so if a service is saving some data on the SD card in the background it could cause this.
Check the running applications menu to see what's there, try removing everything that is not necessary (syncing applications, social network apps, ad networks, etc.), and then try playing again.
A few times, I noticed that TweetDeck was causing this on my device. I had to manually close it so that games would be smooth, but it was a long time ago and I think this problem was resolved (am using TweakDeck now).
lightpriest said:
I played Asphalt 6 on my Nexus S and it was fine, as much as the Nexus S gets.
Do you have some services syncing with the network in the background? Sometimes, when the SD card is not responding properly, the device itself can get a little sluggish, so if a service is saving some data on the SD card in the background it could cause this.
Check the running applications menu to see what's there, try removing everything that is not necessary (syncing applications, social network apps, ad networks, etc.), and then try playing again.
A few times, I noticed that TweetDeck was causing this on my device. I had to manually close it so that games would be smooth, but it was a long time ago and I think this problem was resolved (am using TweakDeck now).
Click to expand...
Click to collapse
closed all apps in the background, no effect.
try this:
Save essential data from the SD card.
Format data, system, cache and boot. And then format sd card.
Reinstall everything back and see if it works better.
Anytime my Nexus S has been sluggish, I've used Android System Info (available on Google Play) to diagnose. Granted, it, like all other task manager style apps, will eat resources while running. However, under the Tasks tab, it will give you a list of each process and its MEM (RAM) and CPU usage. See if there are any processes that seem to be pulling too much CPU, or possibly too much MEM. It may be a constant issue that only shows when another resource-hungry process (i.e. Asphalt 6) competes for these valuable resources.
If you don't trust apps or don't wish to install any, it's possible to look at your battery usage. Although this is not a sure-fire nor exact method, it's possible that if you have a run-away process that's eating CPU, it could also be eating your battery as well. Have you noticed any major battery drain lately?

Q. Prevent data hungry apps from auto restart while no data

Hi guys,
I know that in android, dalvik manage the process control and life cycle but i have a que/ idea..
When i turn off mobile data (internet), apps like facebook, gmail or other apps that depends upon internet, stay in ram even they can't do anything without mobile data. If you try to kill them manually they get auto restart in a while.. if they stay killed when there is no internet, This will greatly improve battery and performance of android.
In replacement , a small ini or xml file can be used, that would keep a list of all apps that need to be invoked as soon as mobile data is enabled again.
A small script (in KB) should stay in ram all time and start a polling service. As soon as the mobile data get enabled, it loads all apps from that file stored in cache.
The whole thing should work as...
+small script in ram as polling service to monitor data availability
+small base file in cache keeping a list of apps requesting data
=data enabled-->apps loading script
= data unavailable --> apps unloading script .
It's just my opinion as our phone has a limited amount of ram and most of the people need mobile data at intervals .... i searched and tried a lot of taskman / task killers , but each of them is either too big and battery hungry or can not stop apps being restarted.. they just kill apps at intervals and hence causing lot of extra processor work regularly...
Please post your opinion about this....

[Q] Google Play Services extreme memory footprint

Hello all,
I have Samsung Galaxy Nexus, running CM 10.2.0. I had no problems until about 2 weeks ago.
I noticed that my phone got rather sluggish and I investigated what is going on. Looking at the list of running apps I immediately noticed that Google Play Services is using 130MB of memory instead of usual 30-40MB. By looking inside details of that process, I can see that the culprit is android.process.acore, which is using 84MB.
Similarly, looking at memory footprint using application OS Monitor, I see Search Applications Provider sitting on top of the memory usage list with 108.2 MB.
Restarting the phone gets everything back to normal for a while. I can trigger this problem reliably by going into Dialer app and calling someone. But even if I am not calling anyone, this issue seems to come back by itself. I am not sure, but maybe contacts synchronization?
It seems like Search/Contact provider is not releasing the resources and gets stuck.
What I tried so far:
-> freezing Search Applications Provider with Titanium backup. This solves the issue, but I lose Google Now functionality, which I would really like to keep using :/
-> deleting Search Applications Provider data - problem persisted
-> deleting Contacts and Contact Storage data - problem persisted
-> Disabled all categories that Search should be indexing in the phone - problem persisted
Please advise how to solve this issue. I have searched this forum, went through a lot of threads, but all I found was acore crashing, not acore using too much memory.
p.s. I am not an newbie, I know my way around android, linux, programming, debugging etc.
Thanks.
No one ? Please help, this is still an issue.

apps autostarting despite lacking boot_completed

I recently moved to rooted android 11 (pixel 4A) from jailbroken iOS so I'm very new to Android.
I've read through googling that disabling RECEIVE_BOOT_COMPLETED permissions will stop the apps from autostarting but whilst this stops a good proportion of apps, a number of apps such as Termux are still getting through. Some apps don't even have RECEIVE_BOOT_COMPLETED but they're still able to start. I have disabled app syncing on my device. I've tried multiple apps such as Task Manager and SD maid and this small proportion of apps are still autostarting.
Does anyone have any clues as to how to fix it?
If an app doesn't listen to BOOT_COMPLETED broadcast then it doesn't care about this event.
jwoegerbauer said:
If an app doesn't listen to BOOT_COMPLETED broadcast then it doesn't care about this event.
Click to expand...
Click to collapse
Hmm, so maybe there's some kind of service running after the boot that starts it? Or some kind of delayed boot? I thought it might have been due to sync reopening apps or something but when I disabled that it still kept showing up. And those apps aren't listed in the Services part of the Developer Services either...
ok I figured it out, my pixel remembers what apps I have open before a reboot and reloads them afterwards. so remove all apps from the memory before rebooting and nothing will be remembered

Categories

Resources