Android开机流程分析-EventLog标签

sancaiodm Android源码学习 2022-03-17 2114 0

在开机log中有大量的am_proc_start开头的日志信息,am_proc_start是zygote创建进程的日志信息,“am_proc_start”这个Tag名是哪来的?答案是自来android.util.EventLog类。在此类其中有一个属性

private static final String TAGS_FILE = "/system/etc/event-log-tags";

其语法定义在手机目录system/core/logcat/event.logtags文件中,大家可以去看看 了解一下各个TAG的说明,

在android源码中也有相应Tag说明。文件目录如下:

\androidsouce\frameworks\base\services\core\java\com\android\server\am\EventLogTags.logtags

所有am_proc的TAG就全部定义在此类中,

示例说明:

am_proc_start: [0,2469,10149,com.android.systemui,service,{com.android.systemui/com.android.systemui.ImageWallpaper}]

userID=0,pid=2469,uid=10149,ProcessName=com.android.systemui,数据类型=service,相应组件=com.android.systemui/com.android.systemui.ImageWallpaper

(androidos.net提示:UserID 与uid 是两个作用不同的数值,UserID就是系统用户的ID,而UID是标识一个应用程序 在应用安装时被分配,UID由用户ID(UserId)和应用ID(AppId)共同决定)

摘录几条如见:

# ActivityManagerService.systemReady() starts:

3040 boot_progress_ams_ready (time|2|3)

# ActivityManagerService calls enableScreenAfterBoot():

3050 boot_progress_enable_screen (time|2|3)

# Application process has been started

30014 am_proc_start (User|1|5),(PID|1|5),(UID|1|5),(Process Name|3),(Type|3),(Component|3)

# Application process bound to work

30010 am_proc_bound (User|1|5),(PID|1|5),(Process Name|3)

# Application Not Responding

30008 am_anr (User|1|5),(pid|1|5),(Package Name|3),(Flags|1|5),(reason|3)

# A service is being created

30030 am_create_service (User|1|5),(Service Record|1|5),(Name|3),(UID|1|5),(PID|1|5)

# A service is being destroyed

30031 am_destroy_service (User|1|5),(Service Record|1|5),(PID|1|5)

# Running pre boot receiver

30045 am_pre_boot (User|1|5),(Package|3)

格式说明

30014 am_proc_start (User|1|5),(PID|1|5),(UID|1|5),(Process Name|3),(Type|3),(Component|3)

(User|1|5)名字为User, 数据类型为1,数据单位为5),如果只有一个数字如:(Process Name|3)则3为数据类型

数据类型:1: int、2: long、3: string、4: list

数据单位:1: Number of objects(对象个数)、2: Number of bytes(字节数)、3: Number of milliseconds(毫秒)、4: Number of allocations(分配个数)、5: Id、6: Percent(百分比)


评论