17

我正在寻找一种解决方案来确定当前可以从 dumpsys 中看到哪些片段

我可以获得有关活动的信息

$ adb shell dumpsys activity | grep -i run

是否有任何碎片解决方案,或者您如何确定来自 dumpsys 的可见碎片?

4

3 回答 3

33

使用 . 检查文档adb shell dumpsys activity -h。您可以提供 <COMP_SPEC> 参数adb shell dumpsys activity <COMP_SPEC>。当您提供 <COMP_SPEC> 参数时,您将获得有关特定组件的更多信息,包括可见片段和视图。

显示 Android 设备设置时的示例:

$ adb shell dumpsys activity com.android.settings

在我的设备上,命令输出包含:

...
Active Fragments in 13c3a270:
  #0: DashboardSummary{186a79e9 #0 id=0x7f0e017b}
    mFragmentId=#7f0e017b mContainerId=#7f0e017b mTag=null
    mState=5 mIndex=0 mWho=android:fragment:0 mBackStackNesting=0
    mAdded=true mRemoving=false mResumed=true mFromLayout=false mInLayout=false
    mHidden=false mDetached=false mMenuVisible=true mHasMenu=false
    mRetainInstance=false mRetaining=false mUserVisibleHint=true
    mFragmentManager=FragmentManager{13c3a270 in Settings{ef6d7d6}}
    mActivity=com.android.settings.Settings@ef6d7d6
    mContainer=android.widget.FrameLayout{9b1166e V.E..... ........ 0,0-768,1022 #7f0e017b app:id/main_content}
    mView=android.widget.ScrollView{1c50410f VFED.V.. ........ 0,0-768,1022 #7f0e005a app:id/dashboard}
    Child FragmentManager{2298759c in DashboardSummary{186a79e9}}:
      FragmentManager misc state:
        mActivity=com.android.settings.Settings@ef6d7d6
        mContainer=android.app.Fragment$1@167cba5
        mParent=DashboardSummary{186a79e9 #0 id=0x7f0e017b}
        mCurState=5 mStateSaved=false mDestroyed=false
...
于 2015-01-29T06:31:13.640 回答
9

这将显示您的活动和片段的实时视图:

watch -n 1 "adb shell dumpsys activity top | grep -E 'Fragment|Activity' | head -60"
于 2019-02-08T08:41:52.927 回答
1
adb shell dumpsys activity $package_name_of_foreground_app | grep Fragment

获取 package_name_of_foreground_app 的方法可能会有所不同,对我来说是:

adb shell dumpsys activity recents | grep 'Recent #0' | cut -d= -f6 | sed 's| .*||' | cut -d '/' -f1 | cut -d: -f2
于 2021-04-25T09:28:36.270 回答