android系统cpu资源相关查询

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下面的一下系统状态文件。

    

时间: 2024-10-30 18:57:43

android系统cpu资源相关查询的相关文章

Android系统中的进程管理:进程的创建

对于操作系统来说,进程管理是其最重要的职责之一. 考虑到这部分的内容较多,因此会拆分成几篇文章来讲解. 本文是进程管理系统文章的第一篇,会讲解Android系统中的进程创建. 本文适合Android平台的应用程序开发者,也适合对于Android系统内部实现感兴趣的读者. 概述 Android系统以Linux内核为基础,所以对于进程的管理自然离不开Linux本身提供的机制.例如: 通过fork来创建进行 通过信号量来管理进程 通过proc文件系统来查询和调整进程状态等 对于Android来说,进程

Android应用程序资源的查找过程分析

我们知道,在Android系统中,每一个应用程序一般都会配置很多资源,用来适配不同密度.大小和方向的屏幕,以及适配不同的国家.地区和语言等等.这些资源是在应用程序运行时自动根据设备的当前配置信息进行适配的.这也就是说,给定一个相同的资源ID,在不同的设备配置之下,查找到的可能是不同的资源.这个资源查找过程对应用程序来说,是完全透明的.在本文中,我们就详细分析资源管理框架是如何根据ID来查找资源的.         从前面Android应用程序资源管理器(Asset Manager)的创建过程分析

win7系统Svchost.exe占用cpu资源过高怎么办

win7系统Svchost.exe占用cpu资源过高的解决方法 先来看一下任务管理器下Svchost.exe占用了47%的CPU资源,在高的时候达到80%以上 我们首先右键点击任务栏空白处,然后在弹出菜单中选择"启动任务管理器"菜单项 在打开的任务管理器中点击"查看/选择列"菜单项 这时会打开选择进程页列窗口,选中最上面的"PID(进程标识符)"前的复选框 这时在任务管理器中就可以看到多了一个PID列,我们看到占用CPU资源高的Svchost.e

解析Android获取系统cpu信息,内存,版本,电量等信息的方法详解_Android

Android获取系统cpu信息,内存,版本,电量等信息 1.CPU频率,CPU信息:/proc/cpuinfo和/proc/stat 通过读取文件/proc/cpuinfo系统CPU的类型等多种信息.读取/proc/stat 所有CPU活动的信息来计算CPU使用率 下面我们就来讲讲如何通过代码来获取CPU频率: 复制代码 代码如下: package com.orange.cpu; import java.io.BufferedReader;import java.io.FileNotFound

【系统】如何控制cpu资源使用

 在我们运维的db环境中,一个机器跑多个mysql实例经常会出现某个进程占用了几乎所有的cpu 进而影响其他的实例运行.基于此我们需要限制某个进程的cpu资源,将其使用 的cpu限定在某个或者某几个固定的cpu上,避免对其他的进程产生影响. 限制cpu的方法有以下几种: 1 taskset 2 cpulimit 3 使用nice和renice设置程序执行的优先级 4 使用ulimit 限制cpu   下面着重介绍taskset cpulimit 的方法. 方法 3 4 在现有环境中操作性不强.

推荐相关-就是做一个火车订票系统,然后在查询的时候没票了,根据查询的条件做出推荐

问题描述 就是做一个火车订票系统,然后在查询的时候没票了,根据查询的条件做出推荐 就是做一个火车订票系统,然后在查询的时候没票了,根据查询的条件做出推荐 解决方案 http://zhidao.baidu.com/link?url=YSc-irUdVKOi514Kwv1tqAg-1CQhbOYIFAI6ZR1VQpSE51vNdR_dJ0znSMzIGRTyP7PTCoWUIFdpsIYTigL05_http://download.csdn.net/download/guoyiqi/4855539

《精通移动App测试实战:技术、工具和案例》一1.2 Android系统架构

1.2 Android系统架构 从图1-1中我们不难发现Android的系统架构采用了分层的架构,分为4个层,从高层到低层分别是应用程序层.应用程序框架层.系统运行库层和Linux内核层.那么它们每层都是用来做什么的呢? 1.应用程序层 应用层是用Java语言编写的运行在Android平台上的程序,比如一些手机游戏和基于手机端的应用等,如图1-1所示,最上面的Applications层. 2.应用程序框架层 应用程序框架层是编写Google发布的核心应用时所使用的API框架,开发人员可以使用这些

Android系统的安全设计与架构

Android系统的安全设计与架构 一.安全策略 1.Android 的总体架构由5个主要层次上的组件构成,这5层是:Android应用层. Android框架层.Dalvik虚拟机层.用户空间原生代码层和Linux内核层. 2.安全边界,有时也会称为信任边界,是系统中分隔不同信任级别的特殊区域. 一个最直接的例子就是内核空间与用户空间之间的边界.内核空间中的 代码可以对硬件执行一些底层操作并访问所有的虚拟和物理内存,而用 户空间中的代码则由于CPU的安全边界控制,无法访问所有内存. 3.And

Android中关于JSON相关应用分析_Android

本文分析了Android中关于JSON相关应用.分享给大家供大家参考,具体如下: JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换.JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为. – Json.org JSON的结构: Name/Value Pairs,类似所熟知的Keyed list. Hash table.Discti