デバッグで良く使うコマンド dumpsys編 その3 Activity
前回に引き続きdumpsysコマンドについて紹介します。
前回まではwindowに関する情報について書いてきましたが、今回はActivityに関する情報の取得方法や読み方を紹介します。
dumpsysでActivityの情報のみ取得する場合のコマンドは下記となります。
$ adb shell activity activities
上記のコマンドを実行すると下記のような情報を取得することが出来きます。
ACTIVITY MANAGER ACTIVITIES (dumpsys activity activities) Stack #0: Task id #1 * TaskRecord{b3fca690 #1 A=com.android.launcher U=0 sz=1} numActivities=1 rootWasReset=false userId=0 mTaskType=1 numFullscreen=1 mOnTopOfHome=false affinity=com.android.launcher intent={act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000000 cmp=com.android.launcher/com.android.launcher2.Launcher} realActivity=com.android.launcher/com.android.launcher2.Launcher Activities=[ActivityRecord{b3e069e0 u0 com.android.launcher/com.android.launcher2.Launcher t1}] askedCompatMode=false lastThumbnail=null lastDescription=null lastActiveTime=111900 (inactive for 228s) * Hist #0: ActivityRecord{b3e069e0 u0 com.android.launcher/com.android.launcher2.Launcher t1} packageName=com.android.launcher processName=com.android.launcher launchedFromUid=0 launchedFromPackage=null userId=0 app=ProcessRecord{b3ff0b58 630:com.android.launcher/u0a8} Intent { act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000000 cmp=com.android.launcher/com.android.launcher2.Launcher } frontOfTask=true task=TaskRecord{b3fca690 #1 A=com.android.launcher U=0 sz=1} taskAffinity=com.android.launcher realActivity=com.android.launcher/com.android.launcher2.Launcher baseDir=/system/priv-app/Launcher2.apk dataDir=/data/user/0/com.android.launcher stateNotNeeded=true componentSpecified=false mActivityType=1 compat={213dpi always-compat} labelRes=0x7f0d0000 icon=0x7f030001 theme=0x7f0e0001 config={1.0 310mcc260mnc en_US ldltr sw600dp w600dp h888dp 213dpi lrg port finger qwerty/v/v -nav/h s.5} launchFailed=false launchCount=1 lastLaunchTime=-3m48s291ms haveState=false icicle=null state=RESUMED stopped=false delayedResume=false finishing=false keysPaused=false inHistory=true visible=true sleeping=false idle=true fullscreen=true noDisplay=false immersive=false launchMode=2 frozenBeforeDestroy=false thumbnailNeeded=false forceNewConfig=false mActivityType=HOME_ACTIVITY_TYPE thumbHolder: b3fca690 bm=null desc=null waitingVisible=false nowVisible=true lastVisibleTime=-3m17s956ms Running activities (most recent first): TaskRecord{b3fca690 #1 A=com.android.launcher U=0 sz=1} Run #0: ActivityRecord{b3e069e0 u0 com.android.launcher/com.android.launcher2.Launcher t1} mResumedActivity: ActivityRecord{b3e069e0 u0 com.android.launcher/com.android.launcher2.Launcher t1} mFocusedActivity: ActivityRecord{b3e069e0 u0 com.android.launcher/com.android.launcher2.Launcher t1} mDismissKeyguardOnNextActivity=false mFocusedStack=null mStackState=STACK_STATE_HOME_IN_FRONT mSleepTimeout=false mCurTaskId=1 mUserStackInFront={} Recent tasks: * Recent #0: TaskRecord{b3fca690 #1 A=com.android.launcher U=0 sz=1} numActivities=1 rootWasReset=false userId=0 mTaskType=1 numFullscreen=1 mOnTopOfHome=false affinity=com.android.launcher intent={act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000000 cmp=com.android.launcher/com.android.launcher2.Launcher} realActivity=com.android.launcher/com.android.launcher2.Launcher Activities=[ActivityRecord{b3e069e0 u0 com.android.launcher/com.android.launcher2.Launcher t1}] askedCompatMode=false lastThumbnail=null lastDescription=null lastActiveTime=111900 (inactive for 228s)
上記ではActivityが一つしか起動していないためstackとtaskの情報が一つしかありませんが、複数のActivityが起動している場合はActivityがどのように重なっているか確認することが出来ます。
基本的にActivityの重なり方を確認するために上記を使用していますが、その他にも下記の情報利用することがあります。
・state:Activityのライフサイクルの状態を表します。
・config:ActvityのConfigurationを表します。
端末の向きや画面サイズ等がわかります。
・packageName:Activityのパッケージ名がわかります。
名前通りですが、パッケージ名が分かるとamコマンドで起動できるので確認することが多いです。
他にも有用な情報がありますが残りは次回紹介します。