Google engineers made to use gimped Nexus 4 with 512 MB of RAM when optimizing Android KitKat
After Project Butter that improved the general Android interface fluidity, Google introduced Project Svelte with 4.4 KitKat, targeting smooth performance of the stock Android system even on devices with meager 512 MB of RAM. We already explained how Google did the core services optimization, and now Dave Burke, the head of engineering for Android, gives more juicy details on the technicalities of it.
The team decoupled Google Apps suite from the system itself, and started analyzing each app's flirt with memory, as some of those are running services in the background 24 hours a day. The software engineers made a tool called ProcStats, which you can see in the Developer options on KitKat phones, that shows exactly how much memory each app and process are consuming over time. The goals were as follows:
- Reduce the footprint of the system.
- Reduce the footprint (memory usage) of the apps that run on a Google Experience (Nexus) device.
- Fix how apps react and crash during bad memory situations.
- Provide better measurement and instrumentation of how apps are running in Android so developers can see how memory-conscious their apps are.
Armed with this knowledge, the team isolated the GApps culprits that were consuming too much memory and didn't need to, optimized their code, and also made Android shut down any apps like those that it deemed unnecessarily thirsty for memory. The fun part was during testing, though, as Dave Burke made each engineer carry a gimped Nexus 4 as a daily driver, which apparently sped up the development of Project Svelte significantly:
This way, isolating the bad memory situations and reducing the system and Google Apps footprint, the Android engineering team managed to make a giant step towards reducing fragmentation. Even low-end white box Chinese handsets, which very often ship with Gingerbread even, can now ship with the latest version of Android without their makers worrying about the phone's performance.