1.
http://blog.csdn.net/sjz_iron/article/details/8726661
http://www.16rd.com/home.php?mod=space&uid=6514&do=blog&id=82
https://android.googlesource.com/platform/frameworks/base.git/+/master/core/java/com/android/internal/os/PowerProfile.java
http://wenku.baidu.com/view/e087ac244b35eefdc8d33352.html
https://source.android.com/devices/tech/power.html
http://blog.csdn.net/yu8fei/article/details/8965094
http://blog.csdn.net/tianxianbaobao1983/article/details/15337759
http://en.wikipedia.org/wiki/Power_Management_Unit
2.java synchronized() block
http://www.cnblogs.com/gnagwang/archive/2011/02/27/1966606.html
proc filesystem
http://www.blogbus.com/wanderer-zjhit-logs/202903394.html
http://www.kerneltravel.net/?p=281
http://man.chinaunix.net/linux/mandrake/101/zh_cn/Command-Line.html/ch10s01.html
http://blog.csdn.net/fightfordream/article/details/6102132
read process list
http://stackoverflow.com/questions/939778/linux-api-to-list-running-processes
http://linuxlookup.com/howto/view_running_processes_linux_system
http://stackoverflow.com/questions/12574202/view-list-of-running-process-in-linux-using-c
1.parse process list in proc filesystem
2.poll /proc/pid/stat periodly, and get update usr time and system time
3.total time = usr time + system time
4.sort linklist according to total time
5.implement IPC to transfer result to show utility
[questions]
1.not include non-interesting processes, kerenl thread
2.how to deal with child processes of a process
http://blog.csdn.net/trochiluses/article/details/10185951
when read cpufreq stat source code, there is question:
1.per_cpu:
http://challengezcy.blog.163.com/blog/static/692292722010101942154673/
http://hi.baidu.com/leowang715/item/112512cae0d19d10b67a24eb
http://www.blogbus.com/wanderer-zjhit-logs/184800425.html
2.kernel notifier
http://blog.csdn.net/wuhzossibility/article/details/8079025
http://fangjian0518.blog.163.com/blog/static/5591965620118295401816/