2021-09-29 dump、system_service
特别申明:本文仅供自己学习记录使用,所写内容来自各网页,如需转载自己去查找内容出处。如有侵权请联系在下,评论、私信等不论。
目录
一、system_server
1.简介
2.SystemServer中启动服务列表
3.服务的添加
4.应用端服务的调用
二、dumpsys命令
1.dumpsys命令用法
2.dumpsys activity 介绍
1 简介
2.dumpsys activity
三、service中dump函数
一、system_server
1.简介
SystemServer的进程名实际上叫做“system_server”,通常简称为SS。
系统中的服务驻留在其中,常见的比如WindowManagerServer(Wms)、ActivityManagerSystemService(AmS)、 PackageManagerServer(PmS)等,这些系统服务都是以一个线程的方式存在于SystemServer进程中。 SS是由Zygote通过Zygote.forkSystemServer函数fork诞生出来的。与Zygote生死与共.SS诞生后,便和生父Zygote分道扬镳,它有了自己的历史使命。 ZygoteInit分裂产生的SS,其实就是为了调用com.android.server.SystemServer(SystemServer.java)的main函数:其中主要调用init1,init2函数.启动了 c++运行时库,如:sqllite,OpenGL ES等,然后把调用线程加入Binder通信中。init2在Java层,就是单独创建一个线程,用以启动系统各项服务,如:ActivityManagerService,PowerManagerService,BatteryService,WindowManagerService。这些服务都是线程,在SystemServer进程中.
2.SystemServer中启动服务列表
这部分的服务大部分都有一个供应用进程使用的manager类,这就是一个RPC调用,用户通过调用xxxManager的方法,实际上被Binder给
迁移到system_server进程中对应的xxxManagerService中对应的方法,并将结果再通过binder带回。xxxManager的实现可参考CSDN : service_system
服务类名称 | 描述 | 对应的代理类 |
EntropyService | 提供伪随机数 | |
PowerManagerService | 电源管理服务 | PowerManager |
ActivityManagerService | 最核心的服务之一,管理 Activity | ActivityManager |
TelephonyRegistry | 通过该服务注册电话模块的事件响应,比如重启、关闭、启动等 | TelephonyManager |
PackageManagerService | 程序包管理服务 | PackageManager |
AccountManagerService | 账户管理服务,是指联系人账户,而不是 Linux 系统的账户 | AccountManager |
ContentService | ContentProvider 服务,提供跨进程数据交换 | ContentResolver |
BatteryService | 电池管理服务 | |
LightsService | 自然光强度感应传感器服务 | |
VibratorService | 震动器服务 | SystemVibrator |
AlarmManagerService | 定时器管理服务,提供定时提醒服务 | AlarmManager |
WindowManagerService | Framework 最核心的服务之一,负责窗口管理 | WindowManager |
BluetoothService | 蓝牙服务 | BluetoothDevice |
DevicePolicyManagerService | 提供一些系统级别的设置及属性 | DevicePolicyManager |
StatusBarManagerService | 状态栏管理服务 | StatusBarManager |
ClipboardService | 系统剪切板服务 | |
InputMethodManagerService | 输入法管理服务 | InputMethodManager |
NetStatService | 网络状态服务 | |
NetworkManagementService | 网络管理服务 | NetworkManagement |
ConnectivityService | 网络连接管理服务 | ConnectivityManager |
ThrottleService | 暂不清楚其作用 | |
AccessibilityManagerService | 辅助管理程序截获所有的用户输入,并根据这些输入给用户一些额外的反馈,起到辅助的效果 | AccessibilityManager |
MountService | 挂载服务,可通过该服务调用 Linux 层面的 mount 程序 | |
NotificationManagerService | 通知栏管理服务, Android 中的通知栏和状态栏在一起,只是界面上前者在左边,后者在右边 | NotificationManager |
DeviceStorageMonitorService | 磁盘空间状态检测服务 | DeviceStorageMonitor |
LocationManagerService | 地理位置服务 | LocationManager |
SearchManagerService | 搜索管理服务 | SearchManager |
DropBoxManagerService | 通过该服务访问 Linux 层面的 Dropbox 程序 | DropBoxManager |
WallpaperManagerService | 墙纸管理服务,墙纸不等同于桌面背景,在 View 系统内部,墙纸可以作为任何窗口的背景 | WallpaperManager |
AudioService | 音频管理服务 | |
BackupManagerService | 系统备份服务 | BackupManager |
AppWidgetService | Widget 服务 | |
RecognitionManagerService | 身份识别服务 | RecognitionManager |
DiskStatsService | 磁盘统计服务 |
3.服务的添加
4.应用端服务的调用
方法一:使用Broadcast
我们知道使用Broadcast广播可以实现跨进程的消息传递,一些系统服务也使用了这种方法。如电池管理服务BatteryManagerService,收到底层上报的电池状态变化信息时,就将当
前的电池状态封装在一个Intent里,action为android.intent.action.BATTERY_CHANGED。应用只要注册一个对应的BroadcastReceiver就可以收到BatterManagerService发送的电池状态信息。
方法二:通过代理类
在本地应用建立其对象,如ActivityManager,PowerManager,LocationManager的对象,通过其即可调用对应的服务。实例如下:
//获得定位服务 LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);//定义定位监听器 LocationListener locationListener = new LocationListener() { public void onLocationChanged(Location location) { //监听到位置信息 } ... };//注册监听器 locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener); |
hint:使用AIDL定义一套接口,由系统服务端实现这些接口,应用端使用一个相应的代理就可以访问系统服务的接口,那反过来让应用端实现AIDL接口,系统服务端使用代理调用应用端
的接口。可参考:CSDN : service_system.
二、dumpsys命令
1.dumpsys命令用法
可通过dumpsys命令查询系统服务的运行状态(对象的成员变量属性值),命令格式:dumpsys 服务名
,更多服务名查看表一、二。 例如:
dumpsys activity //查询AMS服务相关信息
dumpsys window //查询WMS服务相关信息
dumpsys cpuinfo //查询CPU情况
dumpsys meminfo //查询内存情况
可查询的服务有很多,可通过下面任一命令查看当前系统所支持的dump服务:
adb shell dumpsys -l
adb shell service list
表一:
服务名 | 类名 | 功能 |
---|---|---|
activity | ActivityManagerService | AMS相关信息 |
package | PackageManagerService | PMS相关信息 |
window | WindowManagerService | WMS相关信息 |
input | InputManagerService | IMS相关信息 |
power | PowerManagerService | PMS相关信息 |
batterystats | BatterystatsService | 电池统计信息 |
battery | BatteryService | 电池信息 |
alarm | AlarmManagerService | 闹钟信息 |
dropbox | DropboxManagerService | 调试相关 |
procstats | ProcessStatsService | 进程统计 |
cpuinfo | CpuBinder | CPU |
meminfo | MemBinder | 内存 |
gfxinfo | GraphicsBinder | 图像 |
dbinfo | DbBinder | 数据库 |
表二:
服务名 | 功能 |
---|---|
SurfaceFlinger | 图像相关 |
appops | app使用情况 |
permission | 权限 |
processinfo | 进程服务 |
batteryproperties | 电池相关 |
audio | 查看声音信息 |
netstats | 查看网络统计信息 |
diskstats | 查看空间free状态 |
jobscheduler | 查看任务计划 |
wifi | wifi信息 |
diskstats | 磁盘情况 |
usagestats | 用户使用情况 |
devicestoragemonitor | 设备信息 |
… | … |
参考:简书
2.dumpsys activity 介绍
1 简介
1.1 命令格式
dumpsys activity [options] [WHAT]
其中options为可选项,以-
开头, 主要有以下几类:
options | 含义 |
---|---|
-a | 包括所有可用Server状态 |
-c | 包括Client状态,即App端情况 |
-p PACKAGE | 限定输出指定包名 |
1.2 WHAT参数
列举常见的WHAT参数:
序号 | WHAT | 解释 | 对应源码 |
---|---|---|---|
1 | a[ctivities] | activity状态 | dumpActivitiesLocked() |
2 | b[roadcasts] [PACKAGE_NAME] | broadcast状态 | dumpBroadcastsLocked() |
3 | s[ervices] [COMP_SPEC …] | service状态 | newServiceDumperLocked().dumpLocked |
4 | prov[iders] [COMP_SPEC …] | content provider状态 | dumpProvidersLocked() |
5 | p[rocesses] [PACKAGE_NAME] | 进程状态 | dumpProcessesLocked() |
6 | o[om] | 内存管理 | dumpOomLocked() |
7 | i[ntents] [PACKAGE_NAME] | pending intent状态 | dumpPendingIntentsLocked() |
8 | r[ecents] | 最近activity | dumpRecentsLocked() |
9 | perm[issions] | URI授权情况 | dumpPermissionsLocked() |
10 | all | 所有activities信息 | dumpActivity() |
11 | top | 顶部activity信息 | dumpActivity() |
12 | package | package相关信息 | dump() |
其中PACKAGE_NAME是指可跟包名,COMP_SPEC是指可跟具体组件信息,中括号是指缩写字母;
2.dumpsys activity
前面介绍dumpsys activity根据后面跟着的不同参数则输出相应的内容,当不跟任何参数, dumpsys activity
等价于依次输出下面8条命令:
dumpsys activity intents
dumpsys activity broadcasts //广播
dumpsys activity providers //provider
dumpsys activity permissions
dumpsys activity services //服务
dumpsys activity recents
dumpsys activity activities //activity
dumpsys activity processes
依次简要说明这8条命令:
2.1 intents
//标志性开头,dumpPendingIntentsLocked
ACTIVITY MANAGER PENDING INTENTS (dumpsys activity intents)
输出对象:
- PendingIntentRecord
2.2 broadcasts
//标志性开头,dumpBroadcastsLocked
ACTIVITY MANAGER BROADCAST STATE (dumpsys activity broadcasts)Registered Receivers:Receiver Resolver Table:Historical broadcasts [foreground]:Historical broadcasts summary [foreground]:Historical broadcasts [background]:Historical broadcasts summary [background]:Sticky broadcastsmHandler
主要输出的对象:
- ReceiverList, BroadcastFilter,
- IntentResolver,
- BroadcastQueue, BroadcastRecord
- Handler, Looper
2.3 provider
//标志性开头,dumpProvidersLocked
ACTIVITY MANAGER CONTENT PROVIDERS (dumpsys activity providers)Published single-user content providers (by class):Published user [n] content providers (by class):Single-user authority to provider mappings:User [n] authority to provider mappings:
主要输出的对象:
- ProviderMap
- ContentProviderRecord, ContentProviderConnection
2.4 permissions
//标志性开头,dumpPermissionsLocked
ACTIVITY MANAGER URI PERMISSIONS (dumpsys activity permissions)
主要输出的对象:
- UriPermission
2.5 Service
//标志性开头,newServiceDumperLocked().dumpLocked
ACTIVITY MANAGER SERVICES (dumpsys activity services)
主要输出的对象:
- ActiveServices,
- ServiceRecord, ConnectionRecord,ProcessRecord
2.6 recents
//标志性开头,dumpRecentsLocked
ACTIVITY MANAGER RECENT TASKS (dumpsys activity recents)
主要输出的对象:
- TaskRecord
2.7 activities
//标志性开头,dumpActivitiesLocked
ACTIVITY MANAGER ACTIVITIES (dumpsys activity activities)Display #0 (activities from top to bottom):Stack #0:Task id #[n]* Hist #[m]:Stack #1:
主要输出的对象:
- ActivityStackSupervisor, ActivityStack,
- TaskRecord, ActivityRecord
- ActivityThread, Activity
- ViewRootImpl
- Looper, MessageQueue
输出格式样例:
//{Hashcode #TaskId Affinity UserId 该task的Activity个数};
TaskRecord{e6d7a8e #156 A=com.gityuan.demo U=0 sz=1}
userId=0 effectiveUid=1000 mCallingUid=1000 mCallingPackage=android
realActivity=com.gityuan.demo/.Blog//ProcessRecord{Hashcode pid:进程名/uid}
ProcessRecord{7c8a2af 12265:com.gityuan.demo/1000}
2.8 processes
//标志性开头,dumpProcessesLocked
ACTIVITY MANAGER RUNNING PROCESSES (dumpsys activity processes)All known processes:Isolated process list (sorted by uid):UID states:UID validation:Process LRU list (sorted by oom_adj, 60 total, non-act at 2, non-svc at 2):PID mappings:Foreground Processes:
主要输出的对象:
- AMS各种进程对象
- ProcessRecord, UidRecord
参考:个人博客
三、service中dump函数
2021-09-29 dump、system_service
特别申明:本文仅供自己学习记录使用,所写内容来自各网页,如需转载自己去查找内容出处。如有侵权请联系在下,评论、私信等不论。
目录
一、system_server
1.简介
2.SystemServer中启动服务列表
3.服务的添加
4.应用端服务的调用
二、dumpsys命令
1.dumpsys命令用法
2.dumpsys activity 介绍
1 简介
2.dumpsys activity
三、service中dump函数
一、system_server
1.简介
SystemServer的进程名实际上叫做“system_server”,通常简称为SS。
系统中的服务驻留在其中,常见的比如WindowManagerServer(Wms)、ActivityManagerSystemService(AmS)、 PackageManagerServer(PmS)等,这些系统服务都是以一个线程的方式存在于SystemServer进程中。 SS是由Zygote通过Zygote.forkSystemServer函数fork诞生出来的。与Zygote生死与共.SS诞生后,便和生父Zygote分道扬镳,它有了自己的历史使命。 ZygoteInit分裂产生的SS,其实就是为了调用com.android.server.SystemServer(SystemServer.java)的main函数:其中主要调用init1,init2函数.启动了 c++运行时库,如:sqllite,OpenGL ES等,然后把调用线程加入Binder通信中。init2在Java层,就是单独创建一个线程,用以启动系统各项服务,如:ActivityManagerService,PowerManagerService,BatteryService,WindowManagerService。这些服务都是线程,在SystemServer进程中.
2.SystemServer中启动服务列表
这部分的服务大部分都有一个供应用进程使用的manager类,这就是一个RPC调用,用户通过调用xxxManager的方法,实际上被Binder给
迁移到system_server进程中对应的xxxManagerService中对应的方法,并将结果再通过binder带回。xxxManager的实现可参考CSDN : service_system
服务类名称 | 描述 | 对应的代理类 |
EntropyService | 提供伪随机数 | |
PowerManagerService | 电源管理服务 | PowerManager |
ActivityManagerService | 最核心的服务之一,管理 Activity | ActivityManager |
TelephonyRegistry | 通过该服务注册电话模块的事件响应,比如重启、关闭、启动等 | TelephonyManager |
PackageManagerService | 程序包管理服务 | PackageManager |
AccountManagerService | 账户管理服务,是指联系人账户,而不是 Linux 系统的账户 | AccountManager |
ContentService | ContentProvider 服务,提供跨进程数据交换 | ContentResolver |
BatteryService | 电池管理服务 | |
LightsService | 自然光强度感应传感器服务 | |
VibratorService | 震动器服务 | SystemVibrator |
AlarmManagerService | 定时器管理服务,提供定时提醒服务 | AlarmManager |
WindowManagerService | Framework 最核心的服务之一,负责窗口管理 | WindowManager |
BluetoothService | 蓝牙服务 | BluetoothDevice |
DevicePolicyManagerService | 提供一些系统级别的设置及属性 | DevicePolicyManager |
StatusBarManagerService | 状态栏管理服务 | StatusBarManager |
ClipboardService | 系统剪切板服务 | |
InputMethodManagerService | 输入法管理服务 | InputMethodManager |
NetStatService | 网络状态服务 | |
NetworkManagementService | 网络管理服务 | NetworkManagement |
ConnectivityService | 网络连接管理服务 | ConnectivityManager |
ThrottleService | 暂不清楚其作用 | |
AccessibilityManagerService | 辅助管理程序截获所有的用户输入,并根据这些输入给用户一些额外的反馈,起到辅助的效果 | AccessibilityManager |
MountService | 挂载服务,可通过该服务调用 Linux 层面的 mount 程序 | |
NotificationManagerService | 通知栏管理服务, Android 中的通知栏和状态栏在一起,只是界面上前者在左边,后者在右边 | NotificationManager |
DeviceStorageMonitorService | 磁盘空间状态检测服务 | DeviceStorageMonitor |
LocationManagerService | 地理位置服务 | LocationManager |
SearchManagerService | 搜索管理服务 | SearchManager |
DropBoxManagerService | 通过该服务访问 Linux 层面的 Dropbox 程序 | DropBoxManager |
WallpaperManagerService | 墙纸管理服务,墙纸不等同于桌面背景,在 View 系统内部,墙纸可以作为任何窗口的背景 | WallpaperManager |
AudioService | 音频管理服务 | |
BackupManagerService | 系统备份服务 | BackupManager |
AppWidgetService | Widget 服务 | |
RecognitionManagerService | 身份识别服务 | RecognitionManager |
DiskStatsService | 磁盘统计服务 |
3.服务的添加
4.应用端服务的调用
方法一:使用Broadcast
我们知道使用Broadcast广播可以实现跨进程的消息传递,一些系统服务也使用了这种方法。如电池管理服务BatteryManagerService,收到底层上报的电池状态变化信息时,就将当
前的电池状态封装在一个Intent里,action为android.intent.action.BATTERY_CHANGED。应用只要注册一个对应的BroadcastReceiver就可以收到BatterManagerService发送的电池状态信息。
方法二:通过代理类
在本地应用建立其对象,如ActivityManager,PowerManager,LocationManager的对象,通过其即可调用对应的服务。实例如下:
//获得定位服务 LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);//定义定位监听器 LocationListener locationListener = new LocationListener() { public void onLocationChanged(Location location) { //监听到位置信息 } ... };//注册监听器 locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener); |
hint:使用AIDL定义一套接口,由系统服务端实现这些接口,应用端使用一个相应的代理就可以访问系统服务的接口,那反过来让应用端实现AIDL接口,系统服务端使用代理调用应用端
的接口。可参考:CSDN : service_system.
二、dumpsys命令
1.dumpsys命令用法
可通过dumpsys命令查询系统服务的运行状态(对象的成员变量属性值),命令格式:dumpsys 服务名
,更多服务名查看表一、二。 例如:
dumpsys activity //查询AMS服务相关信息
dumpsys window //查询WMS服务相关信息
dumpsys cpuinfo //查询CPU情况
dumpsys meminfo //查询内存情况
可查询的服务有很多,可通过下面任一命令查看当前系统所支持的dump服务:
adb shell dumpsys -l
adb shell service list
表一:
服务名 | 类名 | 功能 |
---|---|---|
activity | ActivityManagerService | AMS相关信息 |
package | PackageManagerService | PMS相关信息 |
window | WindowManagerService | WMS相关信息 |
input | InputManagerService | IMS相关信息 |
power | PowerManagerService | PMS相关信息 |
batterystats | BatterystatsService | 电池统计信息 |
battery | BatteryService | 电池信息 |
alarm | AlarmManagerService | 闹钟信息 |
dropbox | DropboxManagerService | 调试相关 |
procstats | ProcessStatsService | 进程统计 |
cpuinfo | CpuBinder | CPU |
meminfo | MemBinder | 内存 |
gfxinfo | GraphicsBinder | 图像 |
dbinfo | DbBinder | 数据库 |
表二:
服务名 | 功能 |
---|---|
SurfaceFlinger | 图像相关 |
appops | app使用情况 |
permission | 权限 |
processinfo | 进程服务 |
batteryproperties | 电池相关 |
audio | 查看声音信息 |
netstats | 查看网络统计信息 |
diskstats | 查看空间free状态 |
jobscheduler | 查看任务计划 |
wifi | wifi信息 |
diskstats | 磁盘情况 |
usagestats | 用户使用情况 |
devicestoragemonitor | 设备信息 |
… | … |
参考:简书
2.dumpsys activity 介绍
1 简介
1.1 命令格式
dumpsys activity [options] [WHAT]
其中options为可选项,以-
开头, 主要有以下几类:
options | 含义 |
---|---|
-a | 包括所有可用Server状态 |
-c | 包括Client状态,即App端情况 |
-p PACKAGE | 限定输出指定包名 |
1.2 WHAT参数
列举常见的WHAT参数:
序号 | WHAT | 解释 | 对应源码 |
---|---|---|---|
1 | a[ctivities] | activity状态 | dumpActivitiesLocked() |
2 | b[roadcasts] [PACKAGE_NAME] | broadcast状态 | dumpBroadcastsLocked() |
3 | s[ervices] [COMP_SPEC …] | service状态 | newServiceDumperLocked().dumpLocked |
4 | prov[iders] [COMP_SPEC …] | content provider状态 | dumpProvidersLocked() |
5 | p[rocesses] [PACKAGE_NAME] | 进程状态 | dumpProcessesLocked() |
6 | o[om] | 内存管理 | dumpOomLocked() |
7 | i[ntents] [PACKAGE_NAME] | pending intent状态 | dumpPendingIntentsLocked() |
8 | r[ecents] | 最近activity | dumpRecentsLocked() |
9 | perm[issions] | URI授权情况 | dumpPermissionsLocked() |
10 | all | 所有activities信息 | dumpActivity() |
11 | top | 顶部activity信息 | dumpActivity() |
12 | package | package相关信息 | dump() |
其中PACKAGE_NAME是指可跟包名,COMP_SPEC是指可跟具体组件信息,中括号是指缩写字母;
2.dumpsys activity
前面介绍dumpsys activity根据后面跟着的不同参数则输出相应的内容,当不跟任何参数, dumpsys activity
等价于依次输出下面8条命令:
dumpsys activity intents
dumpsys activity broadcasts //广播
dumpsys activity providers //provider
dumpsys activity permissions
dumpsys activity services //服务
dumpsys activity recents
dumpsys activity activities //activity
dumpsys activity processes
依次简要说明这8条命令:
2.1 intents
//标志性开头,dumpPendingIntentsLocked
ACTIVITY MANAGER PENDING INTENTS (dumpsys activity intents)
输出对象:
- PendingIntentRecord
2.2 broadcasts
//标志性开头,dumpBroadcastsLocked
ACTIVITY MANAGER BROADCAST STATE (dumpsys activity broadcasts)Registered Receivers:Receiver Resolver Table:Historical broadcasts [foreground]:Historical broadcasts summary [foreground]:Historical broadcasts [background]:Historical broadcasts summary [background]:Sticky broadcastsmHandler
主要输出的对象:
- ReceiverList, BroadcastFilter,
- IntentResolver,
- BroadcastQueue, BroadcastRecord
- Handler, Looper
2.3 provider
//标志性开头,dumpProvidersLocked
ACTIVITY MANAGER CONTENT PROVIDERS (dumpsys activity providers)Published single-user content providers (by class):Published user [n] content providers (by class):Single-user authority to provider mappings:User [n] authority to provider mappings:
主要输出的对象:
- ProviderMap
- ContentProviderRecord, ContentProviderConnection
2.4 permissions
//标志性开头,dumpPermissionsLocked
ACTIVITY MANAGER URI PERMISSIONS (dumpsys activity permissions)
主要输出的对象:
- UriPermission
2.5 Service
//标志性开头,newServiceDumperLocked().dumpLocked
ACTIVITY MANAGER SERVICES (dumpsys activity services)
主要输出的对象:
- ActiveServices,
- ServiceRecord, ConnectionRecord,ProcessRecord
2.6 recents
//标志性开头,dumpRecentsLocked
ACTIVITY MANAGER RECENT TASKS (dumpsys activity recents)
主要输出的对象:
- TaskRecord
2.7 activities
//标志性开头,dumpActivitiesLocked
ACTIVITY MANAGER ACTIVITIES (dumpsys activity activities)Display #0 (activities from top to bottom):Stack #0:Task id #[n]* Hist #[m]:Stack #1:
主要输出的对象:
- ActivityStackSupervisor, ActivityStack,
- TaskRecord, ActivityRecord
- ActivityThread, Activity
- ViewRootImpl
- Looper, MessageQueue
输出格式样例:
//{Hashcode #TaskId Affinity UserId 该task的Activity个数};
TaskRecord{e6d7a8e #156 A=com.gityuan.demo U=0 sz=1}
userId=0 effectiveUid=1000 mCallingUid=1000 mCallingPackage=android
realActivity=com.gityuan.demo/.Blog//ProcessRecord{Hashcode pid:进程名/uid}
ProcessRecord{7c8a2af 12265:com.gityuan.demo/1000}
2.8 processes
//标志性开头,dumpProcessesLocked
ACTIVITY MANAGER RUNNING PROCESSES (dumpsys activity processes)All known processes:Isolated process list (sorted by uid):UID states:UID validation:Process LRU list (sorted by oom_adj, 60 total, non-act at 2, non-svc at 2):PID mappings:Foreground Processes:
主要输出的对象:
- AMS各种进程对象
- ProcessRecord, UidRecord
参考:个人博客
发布评论