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.