android系统cpu资源相关查询
我们都知道android是基于linux系统内核的,在linux系统中我们查看系统资源消耗情况,一个可以直接通过命令行的top命令来看,里面有cpu具体的使用情况,当然在android系统上也还是保留了的。top还是很有用,那在android应用上怎么表现出来呢?
在【设置】应用中,在开发者选项里面就有一项现成的看cpu使用情况的,具体情况的显示是显示在ui的系统层,而不是activities,是始终高于activities的,保障在任何应用界面里都可以显示正常,ui的这种系统层设计还是挺不错的。我们先看看这个设置吧!如下图:
/*****************************************************************************************************/
声明:本博内容均由http://blog.csdn.net/edsam49原创,转载请注明出处,谢谢!
/*****************************************************************************************************/
我们在系统的右上角可以看到这个特殊图层的显示,最上面显示的loadavg,就是平均载荷,下面就是活跃的几个任务。这怎么实现的呢?
在android4.4系统中,在设置应用的代码里有DevelopmentSettings.java,里面有一个SHOW_CPU_USAGE_KEY,跟踪它可以找到一些关键代码:
private void updateCpuUsageOptions() { updateCheckBox(mShowCpuUsage, Settings.Global.getInt(getActivity().getContentResolver(), Settings.Global.SHOW_PROCESSES, 0) != 0); } private void writeCpuUsageOptions() { boolean value = mShowCpuUsage.isChecked(); Settings.Global.putInt(getActivity().getContentResolver(), Settings.Global.SHOW_PROCESSES, value ? 1 : 0); Intent service = (new Intent()) .setClassName("com.android.systemui", "com.android.systemui.LoadAverageService"); if (value) { getActivity().startService(service); } else { getActivity().stopService(service); } }
里面很清楚了就是选项的checkbox跟Settings.Global.SHOW_PROCESSES这个数据库的设置值有关系,具体如果勾上了,就去触发启动systemui上的一个服务LoadAverageService,这个服务里面就是得到一些cpu的数据,先分析到这里,下一篇文章研究一下LoadAverageService的一些东西,无法也是分析proc下面的一下系统状态文件。