何気なく使っているFrameworks 第9回 CPU使用状況を表示/ addView
Settingsで設定すると
以下の処理順でサービス:LoadAverageServiceが起動します。
このサービス内でProcessから取得した値をオーバーレイ表示を行っています。
値が何を意味するのかはProcessStats.javaをみればわかります。
ついでに、Viewの追加→WindowManagerServiceまでの流れも要チェックです。
特にViewRoot.javaがViewRootImpl.javaへ変わり、中身もそれなりに修正されています。
DevelopmentSettings#onPreferenceTreeClick - writeCpuUsageOptions() - startService "com.android.systemui.LoadAverageService" of SysttemUI. - LoadAverageService#onCreate() - new LoadView extends ProcessStats - new Stats - WindowManager#addView() with Overlay layer of SECURE_SYSTEM_OVERLAY_LAYER - WindowManagerImpl#addView - ViewRootImpl#setView - IWindowSession#add - Session#add - WindowManagerService#addWindow
確認しておいた方がいいソース
\packages\apps\Settings\src\com\android\settings
- DevelopmentSettings.java
\frameworks\base\packages\SystemUI\src\com\android\systemui
- LoadAverageService.java
\frameworks\base\core\java\com\android\internal\os
- ProcessStats.java
\frameworks\base\core\java\android\view
- ViewRootImpl.java
\frameworks\base\services\java\com\android\server\wm
- WindowManagerService.java
\frameworks\base\policy\src\com\android\internal\policy\impl
- PhoneWindowManager.java