The perceived performance of my Nexus 5X has never been all that great. The app-swapping animations would stutter when switching between apps and the apps became unresponsive for a second or two after swapping. My background apps, usually a podcast or audio book player, would get killed-off while I was listening to them even when the display had been locked for a few minutes and I wasn’t otherwise using the device. The experience wasn’t great, but I could newer pin down the issue until now.
I’d looked into the memory usage of the device and noticed that the device’s 2 GB of memory was constrained. My apps seldom used more than 2–400 MB of memory, but the reported average total memory usage was usually around 1,8 GB at all time. 0,9–1,4 GB of the device’s memory was eaten up by System, plus the memory used by the default apps and services. Rebooting the device every morning cleared up the System’s memory usage for a few hours, but the problem would return.
There is nothing wrong with high memory usage if the device can manage it properly. Having free available memory does you no good; it’s there to be used. However, my Nexus 5X was clearly behaving like memory was constrained and the out-of-memory reaper (oom-reaper; the process that “kills” processes when running low on memory) were killing off my apps even while I was typing data into them.
Uninstalling apps and widgets didn’t help, and the memory usage report indicated that my apps weren’t the issue anyway. I’d tried going through a factory reset and avoided installing any apps at all and sticking with the Google provided default apps, but this didn’t make much of a difference. I learned to live with the abruptly interrupted audio and stuttering app-switching, and have done so for nearly two years.
My Nexus 5X defaults to the Google Now Launcher; a now kind-of-but-not-entirely-discontinued Google product. On a whim I decided to install a third-party launcher that resembles the Now Launcher but didn’t include the Google Now service screen (the “minus-one” screen). My motivation was just to remove Google Now as I don’t use it but keep opening it by accident as it has such a prominent position on Android.
I didn’t notice the difference at first, but my phone stopped killing off my background apps and switching between apps went much faster and smoother. I looked into the memory consumption of my device, and notice it had dropped from 1,8 GB on average to 1,5 GB. Most notably, the system service now took up less memory than when I used the Google Now Launcher.
I had always just assumed that the Google provided launcher were doing a good job, but I now started questioning that assumption. I also notice that the Gboard (formerly Google Keyboard) process had an average memory consumption of 200 MB. I honestly don’t know how much memory a virtual keyboard software is supposed to use, but this seemed excessive. I went in to Gboard settings and disabled just about every feature I could find an off switch for: text suggestions strip, offensive word blocker, suggest contact names and personalized suggestions, glide typing, personal dictionary synchronization, predictive search, and usage statistics submission.
Within a few hours of use, the average memory consumption had fallen from 200 MB to 55 MB, which sounds more reasonable. Average system memory at this time was down to an average of 1,2 GB. The numbers has remained fairly stable like this with regular use for the last few weeks. My Nexus 5X has never felt this fast! I can instantly switch between apps now while listening to audiobooks! It’s amazing.
I’m not at all sure how representative my memory usage numbers are to that of other Nexus 5X owners. I do have some custom settings that could affect memory usage like having my device setup with two input languages. This could help explain a higher than normal memory footprint on the virtual keyboard app, but I don’t believe it alone would explain the high system memory usage. In my experience, disabling the add-on services that Google have built-in to the keyboard app freed up a lot more memory than removing all but one of the input languages I’ve configured.
In any case, scaling back on unnecessary functionality in the virtual keyboard app combined with swapping out the default launcher did miracles for my Nexus 5X. I’m not sure why, but it never occurred to me to question the pre-installed software. The Nexus line of phones was supposed to be the best of the best of what is known as “stock-Android”.
I falsely believed that Android was doing a good enough job with memory management that a performance issue like the one I experienced shouldn’t have been an issue. To anyone experiencing performance issues with the Android devices, especially if these issues appeared after a system or app upgrade, do take the time to learn about and investigate your device’s memory utilization.