Android Keyboard lag: what causes it and how to fix it
There was a time when, if you wanted to type something on your smartphone, you’d just type it. No muss. No fuss. It was simple. You pressed the keys of the letters you wanted to appear, and that was that.
Unfortunately, that wasn’t good enough. We had to get auto-correct (and the hilarious fails that came as a result). We had to get spell check. We got the ability to swipe our fingers across the keys, rather than all that annoying “typing”. Some keyboards even got smart, watching our communications and adapting to how we write, getting better and better over time. We even got predictive text, where our phones and tablets would figure out what words we are likely to type next, and offer them to us, maybe even before we know what we want to say. Many of you are sitting back thinking all these features sound great, and from one perspective, you’re absolutely correct.
However, all that “intelligence” comes with costs: processing power and lag – not to mention the “creepy” factor.
Let’s switch gears for a moment.
At the core of every computer, smartphone, and tablet is the Central Processing Unit. (If you want to learn more about the CPU, check out our latest series: Pocketnow Power User.) Unlike CPUs that powered our old desktop computers, new CPUs don’t run with the throttle wide open. Instead, CPUs today dynamically scale depending on their workload. This has several advantages, but the two primary ones are heat and power consumption. Old computers were always plugged into the wall, and power wasn’t something we were concerned with. Today, we’re mobile – we have to carry our power with us. To make the most out of what we have, CPUs don’t run full-speed all the time anymore. Instead, they run very slowly (300MHz or so), and often cycle down to just one of the two or four cores when they don’t have anything important to do.
That sounds really smart, but again, it comes at a cost. When you need speed, it’s not immediately available. Your cores take a little bit of time to “ramp up” and run quickly. Your CPU wants to hurry up and get the job done and go back to its resting state as quickly as possible so it doesn’t gobble up your battery.
To take things one step further, ARM has a feature called big.LITTLE. Put simply, this is a configuration where you have two sets of CPU cores, one that’s fast (and power hungry) and one that’s slow (but consumes very little power). Now, whenever you need more speed, not only does your CPU need to ramp up, you also have to wait while things are handed off between the two sets of cores.
In both cases, the process happens very quickly, but it’s still noticeable.
That brings us back to keyboard lag.
Keyboards these days are really amazing. We already mentioned all the wonderful things they can do. All of that predictive text, custom dictionaries, fuzzy logic, auto-correct, and other Mind Melding takes processing power.
Unlike a game, which has a pretty consistent processor load, typing on your keyboard is “bursty”. You tap a few keys, the CPU ramps up, does it’s magic, presents its suggestions, then spins down again. You tap another few keys, and the CPU ramps up again, does its thing again, then spins down again.
The faster you type and the more pauses you take between words, the more apparent the lag is – and the more frustrating, too!
We’ve seen two devices that are particularly susceptible to this type of lag. Both pride themselves on how power-conscious they are. One even comes out of the box with a “smart” CPU governor enabled. We think it’s a bit more aggressive on the “ramping down” than other devices. The other is the Moto X, and we know all the cool things its pseudo-custom SoC is doing with power-conservation.
On the other side of the isle, Apple scales up the CPU and gives the UI 100% of the processor while you’re touching the screen. This gives the impression of fluidity and speed, but it’s smoke and mirrors -it also chews through power at an alarming rate. Alas, a good many people like smoke and mirrors, and their user experience may be a bit better under their configuration than under that which Android uses.
Additionally, some keyboards are more susceptible to displaying lag than others, but the root cause seems to be more due to the CPUs scaling down too quickly than anything else.
What can you do?
The first thing you can do to try and solve your keyboard lag is to try another keyboard. There are many in the Play Store for you to choose from.
If that doesn’t help, or if you like your stock keyboard, check in your settings to see if your device has any kind of power-saving or CPU scaling options. If so, opt for a little less power-saving and slower down-shifting of the CPU.
These changes may cost you several minutes of battery life over the course of your day, but your lag should be significantly diminished – and not just in the keyboard.
Of course, if you’re rooted and have used a different CPU governor, messed with your min/max clock speeds, or applied some other tweak (whether you applied it, or that’s just how your custom Kernel came pre-configured), you’re on your own. But now you know where to start looking.
Ultimately, device manufacturers and keyboard developers are the ones who are going to have to work on a long-term fix. In the meantime, try turning off a few of your “smart” power saving features, and disable a few of those “intelligent” options in your keyboard’s settings.
Let us know what works out best for you, or if we’re alone in observation of “keyboard lag”.