標籤:android style blog http color io os 使用 java
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下面的一下系統狀態檔案。
android系統cpu資源相關查詢