I am new to Android. I am trying to figure out how exactly a soft keyboard on an Android device works. What exactly is the 'behind the scenes' process that takes place so that the application is allowed to receive user input and present it to other applications as keyboard input? Can any application do this, or does it involve special privileges?

My actual concern is to find out how exactly key-loggers on Android devices tap keystrokes so that I could figure out how can such an attack be mitigated. Hence I am looking for details in that respect and to that depth.


1 Answer 1


The keyboard is provided as a service that is registered with the OS. The OS then displays it when a keyboard is requested and passes the information to the application requesting it. Most keyloggers are likely registering themselves as the keyboard provider and then displaying the previously selected keyboard and recording the result. This is why newer versions of Android display a warning when registering a new keyboard provider.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .