High CPU usage from UEventObserver and inputmethod.latin (Nexus S) I have kept my Google Nexus S up to date with the latest Android O/S since I've owned it and its always had performance problems to varying degrees. I'm currently running:

Android version: 4.1.2
Baseband version: I9023XXKI1
Kernel version: 3.0.31-g5894150
Build number: JZO54K
Uptime: 145:35:00


Currently the performance is particularly bad. The UI is generally very sluggish, apps can take a long time to open or switch, occasionally the home screen appears empty after switching away from a "big" app (e.g. Bad Piggies or Chrome) almost as if the shell had crashed and restarted. The performance seems to deteriorate the longer the phone has been without a reboot. There is a bug where the phone think its still charging after being unplugged. I am not sure if this is associated with the performance issue.

I tried various performance monitoring apps but none of them told me anything useful. I finally installed a terminal emulator and ran the trusty top. Here are the results:



These two threads: com.google.android.inputmethod.latin and UEventObserver, appear to consistently be using high CPU. I have seem UEventObserver using as much as 40-50%. Regarding the inputmethod.latin I am assuming this is keyboard related but I am only using the standard Android keyboard so the high CPU usage is inexplicable.

Any theories about what is going on?

How can I fix these two threads that are hogging the CPU?
You can check "adb shell getevent" to see which events are coming at the time of this high CPU. That may help.