Получить информацию о текущих видимых фрагментов в Android Dumpsys

Я ищу решение, чтобы определить, какие фрагменты в настоящее время видны из dumpsys

Я могу получить информацию о деятельности

$ adb shell dumpsys activity | grep -i run

Есть ли решение для фрагментов или как вы определяете видимые фрагменты из dumpsys?

3 ответа

Решение

Проверьте документацию с adb shell dumpsys activity -h, Вы можете предоставить параметр , adb shell dumpsys activity <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
...

Это покажет в реальном времени ваши действия и фрагменты:

watch -n 1 "adb shell dumpsys activity top | grep -E 'Fragment|Activity' | head -60"
      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
Другие вопросы по тегам