在android手机上, 通过使用adb shell命令可以进入android系统的shell, 该shell除支持一些常用的标准命令之外,还支持一些和android系统相关的其他命令, 这些命令可以打印出系统当前的状态信息。 dumpsys就是这样一个命令。
使用 adb shell 进入命令行, 敲入dumpsys, 打印出的信息超级多, 在我的nexus 5机器上,输出多达67000行。 首先从打印信息的开始部分看起:
Currently running services:SurfaceFlingeraccessibilityaccountactivityalarmandroid.security.keystoreappopsappwidgetassetatlasaudiobackupbatterybatterypropregbatterystatsbluetooth_managerclipboardcommontime_managementconnectivityconsumer_ircontentcountry_detectorcpuinfodbinfodevice_policydevicestoragemonitordiskstatsdisplaydisplay.qservicedreamsdrm.drmManagerdropboxentropygfxinfohardwareinputinput_methodiphonesubinfoismslocationlock_settingsmedia.audio_flingermedia.audio_policymedia.cameramedia.playermedia_routermeminfomountnetpolicynetstatsnetwork_managementnfcnotificationpackagepermissionphonepowerprintprocstatssamplingprofilerscheduling_istrytextservicesuimodeupdatelockusagestatsusbuservibratorwallpaperwifiwifip2pwindow
在输出信息中, 紧接着的是每个服务当前的详细状态信息,每个服务的状态信息一般都比较多, 下面列举一个信息较少的服务信息:
-------------------------------------------------------------------------------
DUMP OF SERVICE accessibility:
ACCESSIBILITY MANAGER (dumpsys accessibility)User state[attributes:{id=0, currentUser=true, accessibilityEnabled=false, touchExplorationEnabled=false, displayMagnificationEnabled=false}services:{}]-------------------------------------------------------------------------------
在开发过程中, 使用dumpsys的最常用的用途是查看ActivityManagerService服务的信息。 下面重点分析ActivityManagerService。 该服务的信息从下面一行开始:
-------------------------------------------------------------------------------
DUMP OF SERVICE activity:
ACTIVITY MANAGER PENDING INTENTS (dumpsys activity intents)* PendingIntentRecord{65ced5f0 com.baidu.BaiduMap broadcastIntent}uid=10084 packageName=com.baidu.BaiduMap type=broadcastIntent flags=0x0requestIntent=act=com.baidu.locTest.LocationServer4.1.8sent=true canceled=false* PendingIntentRecord{66412b40 com.android.phone broadcastIntent}uid=1001 packageName=com.android.phone type=broadcastIntent flags=0x0requestIntent=act=com.android.phone.ACTION_CALL_BACK_FROM_NOTIFICATION dat=tel:153%201571%209213 cmp=com.android.phone/.PhoneGlobals$NotificationBroadcastReceiver
下面的信息是系统中的broadcast receiver的状态信息, 从下面一行开始:
-------------------------------------------------------------------------------
ACTIVITY MANAGER BROADCAST STATE (dumpsys activity broadcasts)
首先会列出系统中所有注册的广播接收者, 格式如下:
Registered Receivers:* ReceiverList{660f2e40 857 com.android.systemui/10012/u-1 remote:660f2ca0}app=857:com.android.systemui/u0a12 pid=857 uid=10012 user=-1Filter #0: BroadcastFilter{660f2ea0}Action: "android.intent.action.SHOW_BRIGHTNESS_DIALOG"* ReceiverList{66045cf0 iyancamera:pushservice/10091/u0 remote:65e756c8}app=iyancamera:pushservice/u0a91 pid=3867 uid=10091 user=0Filter #0: BroadcastFilter{66045d50}Action: CONNECTIVITY_CHANGE"
Historical broadcasts [foreground]:Historical Broadcast foreground #0:BroadcastRecord{65610478 u-1 android.intent.action.TIME_TICK} to user -1Intent { act=android.intent.action.TIME_TICK flg=0x50000014 (has extras) }extras: Bundle[{a.ALARM_COUNT=1}]caller=android null pid=-1 uid=1000dispatchClockTime=Tue Oct 07 10:53:00 GMT+08:00 2014dispatchTime=-14s534ms finishTime=-14s436msresultTo=null resultCode=0 resultData=nullresultAbort=false ordered=true sticky=false initialSticky=falsenextReceiver=10 receiver=nullReceiver #0: BroadcastFilter{6568af00 u0 ReceiverList{65692db8 748 system/1000/u0 local:65b2a730}}Receiver #1: BroadcastFilter{660c8768 u0 ReceiverList{660c81a8 857 com.android.systemui/10012/u0 remote:660c78c0}}Receiver #2: BroadcastFilter{65d2d230 u0 ReceiverList{65d2cb20 857 com.android.systemui/10012/u0 remote:65a8bb70}}Receiver #3: BroadcastFilter{65f042e8 u0 ReceiverList{65f04d90 857 com.android.systemui/10012/u0 remote:65f9f2c0}}Receiver #4: BroadcastFilter{65a9d5f0 u0 ReceiverList{65affbc8 857 com.android.systemui/10012/u0 remote:65b41d50}}Receiver #5: BroadcastFilter{6682be08 u0 ReceiverList{6682bda8 857 com.android.systemui/10012/u0 remote:665c2478}}Receiver #6: BroadcastFilter{667a6c48 u0 ReceiverList{6671f128 857 com.android.systemui/10012/u0 remote:662c4048}}Receiver #7: BroadcastFilter{66901318 u0 ReceiverList{66949870 uku.phone:MMS/10080/u0 remote:6695e528}}Receiver #8: BroadcastFilter{663a4b60 u0 ReceiverList{663a5148 857 com.android.systemui/10012/u0 remote:663c3530}}Receiver #9: BroadcastFilter{6633df98 u0 ReceiverList{6633f628 857 com.android.systemui/10012/u0 remote:66370860}}
Historical broadcasts [background]:Historical Broadcast background #0:BroadcastRecord{66430db0 alendar_CN.ETOUCH.ECALENDAR.WEATHER_HAS_UPDATE} to user 0Intent { actalendar_CN.ETOUCH.ECALENDAR.WEATHER_HAS_UPDATE flg=0x10 (has extras) }extras: Bundle[mParcelledData.dataSize=44]calleralendar alendar:remote/u0a140 pid=3036 uid=10140dispatchClockTime=Tue Oct 07 10:53:00 GMT+08:00 2014dispatchTime=-14s475ms finishTime=-14s400msresultTo=null resultCode=0 resultData=nullnextReceiver=5 receiver=nullReceiver #0: ResolveInfo{alendar/.Widget_weather p=1000 m=0x108000}priority=1000 preferredOrder=0 match=0x108000 specificIndex=-1 isDefault=falseActivityInfo:nameWidget_weatherpackageNamealendarlabelRes=0x7f06016c nonLocalizedLabel=null icon=0x0enabled=true exported=true processNamealendartaskAffinityalendar targetActivity=nullApplicationInfo:packageNamealendarlabelRes=0x7f060042 nonLocalizedLabel=null icon=0x7f0200c5classNamealendarmon.ApplicationManagerprocessNamealendartaskAffinityalendaruid=10140 flags=0x88be44 theme=0x7f0a0029requiresSmallestWidthDp=0 compatibleWidthLimitDp=0 largestWidthLimitDp=0sourceDir=/data/alendar-1.apkseinfo=defaultdataDir=/data/alendarenabled=true targetSdkVersion=11supportsRtl=false
下面是provider相关的信息, 格式如下:
-------------------------------------------------------------------------------
ACTIVITY MANAGER CONTENT PROVIDERS (dumpsys activity providers)Published single-user content providers (by class):* ContentProviderRecord{65cd5f60 dbend.hers.NodeProvider}packagedbend.vdmc processdbend.vdmcproc=ProcessRecord{65d540d8 dbend.vdmc/1001}uid=1001 providert.ContentProviderProxy@658b6690singleton=trueauthority=de* ContentProviderRecord{65d1b150 u0 com.android.phone/.IccProvider}package=com.android.phone process=com.android.phoneproc=ProcessRecord{65fe2488 1000:com.android.phone/1001}uid=1001 providert.ContentProviderProxy@660cbf38singleton=trueauthority=iccisSyncable=false multiprocess=true initOrder=0
服务(Service)相关的信息如下:
-------------------------------------------------------------------------------
ACTIVITY MANAGER SERVICES (dumpsys activity services)User 0 active services:* ServiceRecord{660da0f0 u0 com.android.bluetooth/.hid.HidService}intent={act=android.bluetooth.IBluetoothInputDevice cmp=com.android.bluetooth/.hid.HidService}packageName=com.android.bluetoothprocessName=com.android.bluetoothbaseDir=/system/app/Bluetooth.apkdataDir=/data/data/com.android.bluetoothapp=nullcreateTime=-1d16h27m16s523ms startingBgTimeout=--lastActivity=-17h20m54s385ms restartTime=-- createdFromFg=falseBindings:* IntentBindRecord{660da3e0}:intent={act=android.bluetooth.IBluetoothInputDevice cmp=com.android.bluetooth/.hid.HidService}binder=nullrequested=false received=false hasBound=false doRebind=false
Activity相关的信息格式如下:
-------------------------------------------------------------------------------
ACTIVITY MANAGER ACTIVITIES (dumpsys activity activities)Stack #0:Task id #1* TaskRecord{65cc6860 #1 Alequicksearchbox U=0 sz=1}numActivities=1 rootWasReset=true userId=0 mTaskType=1 numFullscreen=1 mOnTopOfHome=trueaffinitylequicksearchboxintent={act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10600000 cmple.android.launcher.GEL}realActivityle.android.launcher.GELActivities=[ActivityRecord{66020ee8 le.android.launcher.GEL t1}]askedCompatMode=falselastThumbnailaphics.Bitmap@6653bf90 lastDescription=nulllastActiveTime=144235207 (inactive for 1424s)* Hist #0: ActivityRecord{66020ee8 le.android.launcher.GEL t1}packageNamelequicksearchbox processNamelequicksearchboxlaunchedFromUid=0 launchedFromPackage=null userId=0app=ProcessRecord{66105ac8 lequicksearchbox/u0a19}Intent { act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000000 cmple.android.launcher.GEL }frontOfTask=true task=TaskRecord{65cc6860 #1 Alequicksearchbox U=0 sz=1}taskAffinitylequicksearchboxrealActivityle.android.launcher.GELbaseDir=/system/priv-app/Velvet.apkdataDir=/data/user/lequicksearchboxstateNotNeeded=true componentSpecified=false mActivityType=1compat={480dpi} labelRes=0x7f0a04c5 icon=0x7f030002 theme=0x7f0e000dconfig={1.0 460mcc1mnc zh_CN ldltr sw360dp w360dp h567dp 480dpi nrml port finger -keyb/v/h -nav/h s.11}launchFailed=false launchCount=0 lastLaunchTime=-17h20m56s529mshaveState=true icicle=Bundle[mParcelledData.dataSize=12720]state=STOPPED stopped=true delayedResume=false finishing=falsekeysPaused=false inHistory=true visible=false sleeping=true idle=truefullscreen=true noDisplay=false immersive=false launchMode=2frozenBeforeDestroy=false thumbnailNeeded=false forceNewConfig=falsemActivityType=HOME_ACTIVITY_TYPEthumbHolder: 65cc6860 bmaphics.Bitmap@6653bf90 desc=nullwaitingVisible=false nowVisible=false lastVisibleTime=-21m53s598msTask id #24* TaskRecord{667de460 #24 A=com.android.systemui U=0 sz=1}numActivities=1 rootWasReset=false userId=0 mTaskType=2 numFullscreen=1 mOnTopOfHome=trueaffinity=com.android.systemuiintent={act=com.action.TOGGLE_RECENTS flg=0x10c00000 cmp=com.android.systemui/.recent.RecentsActivity}realActivity=com.android.systemui/.recent.RecentsActivityActivities=[ActivityRecord{6561e970 u0 com.android.systemui/.recent.RecentsActivity t24}]askedCompatMode=falselastThumbnailaphics.Bitmap@662b3118 lastDescription=nulllastActiveTime=87755110 (inactive for 57904s)* Hist #0: ActivityRecord{6561e970 u0 com.android.systemui/.recent.RecentsActivity t24}packageName=com.android.systemui processName=com.android.systemuilaunchedFromUid=10012 launchedFromPackage=com.android.systemui userId=0app=ProcessRecord{6602d698 857:com.android.systemui/u0a12}Intent { act=com.action.TOGGLE_RECENTS flg=0x10800000 cmp=com.android.systemui/.recent.RecentsActivity }frontOfTask=true task=TaskRecord{667de460 #24 A=com.android.systemui U=0 sz=1}taskAffinity=com.android.systemuirealActivity=com.android.systemui/.recent.RecentsActivitybaseDir=/system/priv-app/SystemUI.apkdataDir=/data/data/com.android.systemuistateNotNeeded=false componentSpecified=true mActivityType=2compat={480dpi} labelRes=0x7f0a0080 icon=0x10804a5 theme=0x7f0e0000config={1.0 460mcc1mnc zh_CN ldltr sw360dp w360dp h567dp 480dpi nrml port finger -keyb/v/h -nav/h s.9}launchFailed=false launchCount=0 lastLaunchTime=-9h59m21s658mshaveState=true icicle=Bundle[mParcelledData.dataSize=44]state=STOPPED stopped=true delayedResume=false finishing=falsekeysPaused=false inHistory=true visible=false sleeping=true idle=truefullscreen=true noDisplay=false immersive=false launchMode=3frozenBeforeDestroy=false thumbnailNeeded=false forceNewConfig=falsemActivityType=RECENTS_ACTIVITY_TYPEthumbHolder: 667de460 bmaphics.Bitmap@662b3118 desc=nullwaitingVisible=false nowVisible=false lastVisibleTime=-7h8m31s600msRunning activities (most recent first):TaskRecord{65cc6860 #1 Alequicksearchbox U=0 sz=1}Run #1: ActivityRecord{66020ee8 le.android.launcher.GEL t1}TaskRecord{667de460 #24 A=com.android.systemui U=0 sz=1}Run #0: ActivityRecord{6561e970 u0 com.android.systemui/.recent.RecentsActivity t24}mLastPausedActivity: ActivityRecord{66020ee8 le.android.launcher.GEL t1}
和其他组件相比, Activity的管理比较特殊。 Activity是以栈的形式管理的, 每个栈中存在若干个任务(task), 每个任务又由若干个Activity组成。
上面简单介绍了ActivityManagerService中的四大组件相关的信息。 关于其他服务中的信息, 由于信息量太大, 无法一一介绍, 请读者自行查看。
本文发布于:2024-02-01 09:59:13,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170675275535840.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |