android 7.1 支持哪些 cpu,【Android N 7.1.1】 ActivityManagerService 获取cpu状态

这段代码主要负责更新CPU使用统计信息,并与电池状态服务交互。当达到一定时间间隔时,获取并记录CPU的用户时间、系统时间、空闲时间等,同时更新电池统计中的进程CPU时间。如果'events.cpu'属性设置为'true',还会记录详细的CPU使用率。
摘要由CSDN通过智能技术生成

voidupdateCpuStatsNow() {synchronized(mProcessCpuTracker) {

mProcessCpuMutexFree.set(false);final long now =SystemClock.uptimeMillis();boolean haveNewCpuStats = false;if (MONITOR_CPU_USAGE &&mLastCpuTime.get()< (now-MONITOR_CPU_MIN_TIME)) {

mLastCpuTime.set(now);

mProcessCpuTracker.update();if(mProcessCpuTracker.hasGoodLastStats()) {

haveNewCpuStats= true;//Slog.i(TAG, mProcessCpu.printCurrentState());//Slog.i(TAG, "Total CPU usage: "//+ mProcessCpu.getTotalCpuPercent() + "%");//Slog the cpu usage if the property is set.

if ("true".equals(SystemProperties.get("events.cpu"))) {int user =mProcessCpuTracker.getLastUserTime();int system =mProcessCpuTracker.getLastSystemTime();int iowait =mProcessCpuTracker.getLastIoWaitTime();int irq =mProcessCpuTracker.getLastIrqTime();int softIrq =mProcessCpuTracker.getLastSoftIrqTime();int idle =mProcessCpuTracker.getLastIdleTime();int total = user + system + iowait + irq + softIrq +idle;if (total == 0) total = 1;

EventLog.writeEvent(EventLogTags.CPU,

((user+system+iowait+irq+softIrq) * 100) /total,

(user* 100) /total,

(system* 100) /total,

(iowait* 100) /total,

(irq* 100) /total,

(softIrq* 100) /total);

}

}

}final BatteryStatsImpl bstats =mBatteryStatsService.getActiveStatistics();synchronized(bstats) {synchronized(mPidsSelfLocked) {if(haveNewCpuStats) {if(bstats.startAddingCpuLocked()) {int totalUTime = 0;int totalSTime = 0;final int N =mProcessCpuTracker.countStats();for (int i=0; i

ProcessCpuTracker.Stats st=mProcessCpuTracker.getStats(i);if (!st.working) {continue;

}

ProcessRecord pr=mPidsSelfLocked.get(st.pid);

totalUTime+=st.rel_utime;

totalSTime+=st.rel_stime;if (pr != null) {

BatteryStatsImpl.Uid.Proc ps=pr.curProcBatteryStats;if (ps == null || !ps.isActive()) {

pr.curProcBatteryStats= ps =bstats.getProcessStatsLocked(

pr.info.uid, pr.processName);

}

ps.addCpuTimeLocked(st.rel_utime, st.rel_stime);

pr.curCpuTime+= st.rel_utime +st.rel_stime;

}else{

BatteryStatsImpl.Uid.Proc ps=st.batteryStats;if (ps == null || !ps.isActive()) {

st.batteryStats= ps =bstats.getProcessStatsLocked(

bstats.mapUid(st.uid), st.name);

}

ps.addCpuTimeLocked(st.rel_utime, st.rel_stime);

}

}final int userTime =mProcessCpuTracker.getLastUserTime();final int systemTime =mProcessCpuTracker.getLastSystemTime();final int iowaitTime =mProcessCpuTracker.getLastIoWaitTime();final int irqTime =mProcessCpuTracker.getLastIrqTime();final int softIrqTime =mProcessCpuTracker.getLastSoftIrqTime();final int idleTime =mProcessCpuTracker.getLastIdleTime();

bstats.finishAddingCpuLocked(totalUTime, totalSTime, userTime,

systemTime, iowaitTime, irqTime, softIrqTime, idleTime);

}

}

}if (mLastWriteTime < (now-BATTERY_STATS_TIME)) {

mLastWriteTime=now;

mBatteryStatsService.scheduleWriteToDisk();

}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值