1
fairytale110 2023-03-14 15:30:52 +08:00 via Android
您可以使用 Android 提供的实时监控工具——`android.os.Debug`来查看各个应用的 CPU 占用情况。具体操作步骤如下:
1. 在需要监控 CPU 的地方,添加以下代码: ```java Debug.startMethodTracing(); ``` 该方法会开始记录当前应用程序的 CPU 运行状况。 2. 添加以下代码,获取系统中所有正在运行的进程,并输出每个进程的 CPU 占用率: ```java ActivityManager activityManager = (ActivityManager)this.getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningAppProcessInfo> runningAppProcesses = activityManager.getRunningAppProcesses(); for(ActivityManager.RunningAppProcessInfo runningAppProcess : runningAppProcesses){ int pid = runningAppProcess.pid; int uid = runningAppProcess.uid; String processName = runningAppProcess.processName; Debug.MemoryInfo[] memoryInfos = activityManager.getProcessMemoryInfo(new int[]{pid}); float cpuRate = 0.0f; if(memoryInfos != null && memoryInfos.length > 0){ long cpuTime1 = Debug.threadCpuTimeNanos(); long upTime1 = SystemClock.elapsedRealtimeNanos(); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } long cpuTime2 = Debug.threadCpuTimeNanos(); long upTime2 = SystemClock.elapsedRealtimeNanos(); long usedCpu = cpuTime2 - cpuTime1; long usedTime = upTime2 - upTime1; cpuRate = (float)(usedCpu / usedTime / 1000000L); } Log.d(TAG, "processName=" + processName + ", pid=" + pid + ", uid=" + uid + ", cpuRate=" + cpuRate + "%"); } ``` 3. 在不需要监控 CPU 的地方,添加以下代码: ```java Debug.stopMethodTracing(); ``` 该方法会停止记录当前应用程序的 CPU 运行状况。 这样就可以通过 Java 代码实时查看各个应用的 CPU 占用了。 |
2
Edwinc 2023-03-14 15:41:51 +08:00
scene 可以 我一般用它挂载 uperf 给手机降频
|