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?