Android EventLog简介

Android EventLog简介AndroidEvent 简介 androidevent

大家好,欢迎来到IT知识分享网。


前言

在 Android 开发中,EventLog是一种系统日志记录机制,用于记录 Android 系统的事件和信息。EventLog 记录的日志通常用于诊断和分析应用程序或系统的运行过程,以便开发人员了解应用程序的行为、性能和问题。
通过EventLog来分析Activity、Process、CPU、Window等相关信息。

一、EventLog使用

adb logcat -b events > event.log 

获取到的信息基本上如:

06-14 13:36:12.677 481 481 I chatty : uid=1000(system) hwservicemanage expire 12 lines 06-14 13:36:36.090 1510 1998 I service_manager_stats: [100,106,73258] 06-14 13:36:37.086 481 481 I chatty : uid=1000(system) hwservicemanage expire 34 lines 06-14 13:36:41.273 1510 2017 I battery_level: [86,4364,254] 06-14 13:37:45.101 1510 2017 I battery_level: [87,4365,254] 06-14 13:37:46.532 481 481 I chatty : uid=1000(system) hwservicemanage expire 10 lines 06-14 13:37:52.349 1510 1998 I service_manager_stats: [100,97,76259] 06-14 13:37:53.220 1510 1651 I sysui_multi_action: [757,1696,758,6,759,2] 06-14 13:37:55.408 1510 21888 I dvm_lock_sample: [system_server,1,Binder:1510_20,5,PackageManagerService.java,5703,int com.android.server.pm.PackageManagerService.checkUidPermission(java.lang.String, int),-,5703,int com.android.server.pm.PackageManagerService.checkUidPermission(java.lang.String, int),1] 06-14 13:37:58.165 1510 2017 I battery_status: [5,2,1,2,Li-ion] 06-14 13:38:00.209 1510 1651 I power_sleep_requested: 0 06-14 13:38:00.271 1510 1651 I sysui_multi_action: [757,1696,758,6,759,0] 06-14 13:38:00.729 1510 1651 I am_pause_activity: [0,,com.android.launcher3/.Launcher,userLeaving=false] 06-14 13:38:00.730 2401 2401 I am_on_top_resumed_lost_called: [0,com.android.launcher3.Launcher,topStateChangedWhenResumed] 06-14 13:38:00.734 2401 2401 I am_on_paused_called: [0,com.android.launcher3.Launcher,performPause] 06-14 13:38:00.746 1510 21888 I am_add_to_stopping: [0,,com.android.launcher3/.Launcher,completePauseLocked] 06-14 13:38:00.759 1510 1613 I am_stop_activity: [0,,com.android.launcher3/.Launcher] 06-14 13:38:00.760 1510 1613 I sysui_multi_action: [757,803,799,window_time_0,802,1801] 06-14 13:38:00.767 2401 2401 I am_on_stop_called: [0,com.android.launcher3.Launcher,sleeping] 06-14 13:38:01.018 1510 1621 I am_meminfo: [,,,,] 06-14 13:38:01.033 1510 1621 I am_pss : [26028,10162,com.example.hxplay,,,0,,1,16,13] 06-14 13:38:01.045 1510 1610 I sysui_multi_action: [757,223,758,1] 06-14 13:38:01.046 1510 1621 I am_pss : [11871,10058,org.codeaurora.snapcam,,,0,,1,17,10] 06-14 13:38:01.062 1510 1621 I am_pss : [31144,10115,com.qualcomm.qti.seccamservice:remote,,,,,1,20,8] 06-14 13:38:01.073 2036 2036 I sysui_multi_action: [757,111,758,1] 06-14 13:38:01.073 1510 1621 I am_pss : [20962,10144,com.henry.basic,,,,,1,17,10] 06-14 13:38:01.074 2036 2036 I sysui_multi_action: [757,126,758,1,759,126,927,0,928,1,1593,0] 06-14 13:38:01.075 2036 2036 I sysui_multi_action: [757,113,758,1,759,113,927,1,928,0,1593,0] 06-14 13:38:01.075 2036 2036 I sysui_multi_action: [757,118,758,1,759,118,927,2,928,0,1593,0] 06-14 13:38:01.076 2036 2036 I sysui_multi_action: [757,119,758,1,759,119,927,3,928,0,1593,0] 06-14 13:38:01.077 2036 2036 I sysui_multi_action: [757,123,758,1,759,123,927,4,928,0,1593,0] 06-14 13:38:01.077 2036 2036 I sysui_multi_action: [757,261,758,1,759,261,927,5,928,0,1593,0] 06-14 13:38:01.082 1510 1621 I am_pss : [1216,10160,com.android.audiotest,,,,,1,17,7] 06-14 13:38:01.095 1510 1621 I am_pss : [19949,10051,com.android.providers.calendar,,,0,,1,20,6] 06-14 13:38:01.101 2036 2036 I sysui_multi_action: [757,196,758,2,759,0] 06-14 13:38:01.102 2036 2036 I sysui_status_bar_state: [1,0,0,0,0,1] 06-14 13:38:01.103 1510 1621 I am_pss : [32102,10146,com.han.devtool,,,0,,1,20,7] 06-14 13:38:01.112 1510 3114 I sysui_multi_action: [757,127,758,1] 06-14 13:38:01.112 1510 3114 I sysui_multi_action: [757,804,799,note_load,801,3,802,1] 06-14 13:38:01.112 1510 1621 I am_pss : [32086,10161,org.schabi.newpipe,,,0,,1,20,7] 06-14 13:38:01.112 1510 3114 I notification_panel_revealed: 3 ...... 

二、EventLog语义规则分析

以进程启动为例

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

am_proc_start之后紧跟着的几个括号,其中括号里的内容格式如下:

(<name>|data type[|data unit]) (<名字>|数据类型[|数据单位]) 

其中(User|1|5) ==> 名字为User, 数据类型为1,数据单位为5,下面再来看看数据类型和数据单位:

每一种Tag由于功能和模块的不同,括号中的内容不同,但是都遵循以下规则:

Name|type|unit) 
  • Name:表示这个字段的意义
  • Type:表示这个字段的数据类型,取值为:
1: int 2: long 3: string 4: list 5: float 

数据类型中int和string用得最多.

unit,取值为

1: Number of objects(对象个数) 2: Number of bytes(字节数) 3: Number of milliseconds(毫秒) 4: Number of allocations(分配个数) 5: Id 6: Percent(百分比) s: Number of seconds (monotonic time) 

例如:

am_proc_start (User|1|5),(PID|1|5),(UID|1|5),(Process Name|3),(Type|3),(Component|3) am_proc_start: [0,9227,10002,com.android.browser,content provider,com.android.browser/.provider.BrowserProvider2] 

含义如下:

进程启动: UserId=0, pid=9227, uid=10002, ProcessName=com.android.browser, 数据类型=ContentProvider, 组件=com.android.browser/.provider.BrowserProvider2

再来一个例子

 am_proc_start (User|1|5),(PID|1|5),(UID|1|5),(Process Name|3),(Type|3),(Component|3) am_proc_start: [0,6533,10131,com.jingdong.app.mall:WatchDogService,service,com.jingdong.app.mall/com.jingdong.common.watchdog.WatchDogService] 

含义:

启动一个进程,UserId=0,PID=6533,UID=10131,ProcessName=com.jingdong.app.mall:WatchDogService,Type=service,Component=com.jingdong.app.mall/com.jingdong.common.watchdog.WatchDogService

Tips:
events_log中搜索“am_finish_activity”, 可以判断到底是APP自行结束的(正常结束,后面有app-request字样),还是被其他进程强制结束的(force-stop)

三、EventLog分类

3.1 ActivityManager

TagName 格式 功能
am_finish_activity User,Token,TaskID,ComponentName,Reason
am_task_to_front User,Task
am_new_intent User,Token,TaskID,ComponentName,Action,MIMEType,URI,Flags
am_create_task User ,Task ID
am_create_activity User ,Token ,TaskID ,ComponentName,Action,MIMEType,URI,Flags
am_restart_activity User ,Token ,TaskID,ComponentName
am_resume_activity User ,Token ,TaskID,ComponentName
am_anr User ,pid ,Package Name,Flags ,reason ANR
am_activity_launch_time User ,Token ,ComponentName,time
am_proc_bound User ,PID ,ProcessName
am_proc_died User ,PID ,ProcessName
am_failed_to_pause User ,Token ,Wanting to pause,Currently pausing
am_pause_activity User ,Token ,ComponentName
am_proc_start User ,PID ,UID ,ProcessName,Type,Component
am_proc_bad User ,UID ,ProcessName
am_proc_good User ,UID ,ProcessName
am_low_memory NumProcesses Lru
am_destroy_activity User ,Token ,TaskID,ComponentName,Reason
am_relaunch_resume_activity User ,Token ,TaskID,ComponentName
am_relaunch_activity User ,Token ,TaskID,ComponentName
am_on_paused_called User ,ComponentName
am_on_resume_called User ,ComponentName
am_kill User ,PID ,ProcessName,OomAdj ,Reason 杀进程
am_broadcast_discard_filter User ,Broadcast ,Action,ReceiverNumber,BroadcastFilter
am_broadcast_discard_app User ,Broadcast ,Action,ReceiverNumber,App
am_create_service User ,ServiceRecord ,Name,UID ,PID
am_destroy_service User ,ServiceRecord ,PID
am_process_crashed_too_much User ,Name,PID
am_drop_process PID
am_service_crashed_too_much User ,Crash Count,ComponentName,PID
am_schedule_service_restart User ,ComponentName,Time
am_provider_lost_process User ,Package Name,UID ,Name
am_process_start_timeout User ,PID ,UID ,ProcessName timeout
am_crash User ,PID ,ProcessName,Flags ,Exception,Message,File,Line Crash
am_wtf User ,PID ,ProcessName,Flags ,Tag,Message Wtf
am_switch_user id
am_activity_fully_drawn_time User ,Token ,ComponentName,time
am_focused_activity User ,ComponentName
am_home_stack_moved User ,To Front ,Top Stack Id ,Focused Stack Id ,Reason
am_pre_boot User ,Package
am_meminfo Cached,Free,Zram,Kernel,Native 内存
am_pss Pid, UID, ProcessName, Pss, Uss 进程

可能使用的部分场景:

Activity生命周期相关的方法:

3.2 WindowManager相关

wm_no_surface_memory (Window|3),(PID|1|5),(Operation|3) wm_task_created (TaskId|1|5),(StackId|1|5) wm_task_moved (TaskId|1|5),(ToTop|1),(Index|1) wm_task_removed (TaskId|1|5),(Reason|3) wm_stack_created (StackId|1|5) wm_home_stack_moved (ToTop|1) wm_stack_removed (StackId|1|5) wm_boot_animation_done (time|2|3) 

3.3 Power相关

TagName 格式 功能
battery_level level, voltage, temperature
battery_status status,health,present,plugged,technology
battery_discharge duration, minLevel,maxLevel
power_sleep_requested wakeLocksCleared 唤醒锁数量
power_screen_broadcast_send wakelockCount
power_screen_broadcast_done on, broadcastDuration, wakelockCount
power_screen_broadcast_stop which,wakelockCount 系统还没进入ready状态
power_screen_state offOrOn, becauseOfUser, totalTouchDownTime, touchCycles
power_partial_wake_state releasedorAcquired, tag

部分含义:

可能使用的部分场景:

3.4 Notification相关

notification_panel_revealed (items|1) notification_panel_hidden notification_visibility_changed (newlyVisibleKeys|3),(noLongerVisibleKeys|3) notification_expansion (key|3),(user_action|1),(expanded|1),(lifespan|1),(freshness|1),(exposure|1) notification_clicked (key|3),(lifespan|1),(freshness|1),(exposure|1),(rank|1),(count|1) notification_action_clicked (key|3),(action_index|1),(lifespan|1),(freshness|1),(exposure|1),(rank|1),(count|1) notification_canceled (key|3),(reason|1),(lifespan|1),(freshness|1),(exposure|1),(rank|1),(count|1),(listener|3) notification_visibility (key|3),(visibile|1),(lifespan|1),(freshness|1),(exposure|1),(rank|1) notification_alert (key|3),(buzz|1),(beep|1),(blink|1) notification_autogrouped (key|3) 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/120673.html

(0)
上一篇 2025-10-28 10:10
下一篇 2025-10-28 10:20

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信