One Cause of Slowdown in Android Phones

I think many Android phone users are misled into flashing their ROM's frequently and do so as a routine to improve their gradually slowed down phones. Custom ROM's have their indisputable utility but without understanding the cause of system slowdown, changing the ROM only obscures the diagnosis by introducing new factors into the problem and thus it might not solve the problem at all.

I used a Moto Milestone, one of the early popular Android phone, with Android 2.2 a.k.a. Froyo (the ROM was built for some European carrier because Milestone, the GSM counterpart of Moto Droid, was not sold by any carrier in the US). The system was very responsive when I wiped all the data and first flashed it on. Then noticeable slowdown appeared as time passed. After trying a few things, I discovered one simple (and easy) cause:
much of the slowdown is due to the growth of user generated data and that some of them are regularly loaded into memory for access (via content providers).  

Thus by regularly (backing up if you want to keep the data and) clearing call log, messages, etc, I restore the speed on my phone with ease (without worrying about what is in a new ROM). With the exponential growth in phones' RAM, this will become less a problem and if the programmer practices more care and loads only a small portion of all data at a time: for example, the user does not usually need to see the call history from last week everytime he or she goes into call log. 


  1. I recently noticed that my fairly new(2-3 months old) Galaxy Nexus had slowed down considerably, to the point in which day to day use was frustrating and it made my nexus one look zippy.

    I am on the CM10 nightlies, which means I am flashing regularly. Last night I did a titanium Backup, and wiped and flashed. Even after restoring all my apps and data(including call logs, messages, settings etc) with Titanium, my phone is extremely responsive, and what you would expect from a reasonably powerful dual core. So I think there might be more to it than just that.

    What I have not tried is simply wiping the cache and the Dalvik Cache without a /system and /data wipe.

    1. I totally agree with your conclusion and that is why the post is titled "One Cause ..." The problem I am addressing here is related to Content Providers (http://developer.android.com/guide/topics/providers/content-providers.html). I would love to hear more about your experiments: you can also use the profiling tools on Galaxy Nexus (Settings>Developer options) or via android development tools on your computer.