用adb命令查看下面Demo处于NO.3 Fragment时的Activity和Fragment信息。 查看当前Activity及其包名 adb shell "dumpsys window | grep mCurrentFocus" 输出
用adb命令查看下面Demo处于NO.3 Fragment
时的Activity
和Fragment
信息。
adb shell "dumpsys window | grep mCurrentFocus"
输出结果如下:
mCurrentFocus=Window{b1deab4 u0 com.example.who/com.example.who.ui.activity.SecondActivity}
上面的com.example.who/com.example.who.ui.activity.SecondActivity}
可以分成两部分看:/
前的部分是包名,/
后的部分是当前Activity
的类全名。
adb shell dumpsys window windows |grep "Window #"
该命令会输出堆栈中全部的窗口信息。
输出结果如下,SecondActivity
即为最上层的Activity
:
adb shell dumpsys activity your.package.name > yourPath\Fragment.txt
可以先通过adb shell "dumpsys window | grep mCurrentFocus"
查询出应用包名,再执行上面的命令即可。
打开Fragment.txt
,我们可以在开头看到如下内容:
TASK com.example.who id=655 userId=0 ACTIVITY com.example.who/.ui.activity.SecondActivity 49341c pid=4339 Local Activity cb4da6d State: mResumed=true mStopped=false mFinished=false
其中cb4da6d
是当前Activity
的hashcode
。我们搜索它在Fragment.txt
中的位置,可以看到如下内容。
Line 3: Local Activity cb4da6d State:Line 81: context: com.example.who.ui.activity.SecondActivity@cb4da6dLine 82: client: com.example.who.ui.activity.SecondActivity@cb4da6d (Android.os.BinderProxy@292ac31)Line 105: Local FragmentActivity cb4da6d State:
跳转到Local FragmentActivity cb4da6d State
所在位置,然后继续往下看。可以看到Added Fragments
。它列出了当前Fragment堆栈中的全部Fragment。
如果Demo第二页切换Fragment时使用add方法:
fragmentTransaction.add(R.id.container_fragment, mOneFragment, "OneFragmentTag");fragmentTransaction.add(R.id.container_fragment, mTwoFragment, "TwoFragmentTag");fragmentTransaction.add(R.id.container_fragment, mThreeFragment, "ThreeFragmentTag");
可以看到Added Fragments
如下:
Added Fragments: #0: OneFragment{c7ccdff (3e703195-7911-4c26-a36f-f14ee357c797) id=0x7f070055 OneFragmentTag} #1: TwoFragment{24e01a0 (b71c641a-6bf6-44d2-b01d-62f2c618136a) id=0x7f070055 TwoFragmentTag} #2: ThreeFragment{231b634 (d81580b3-ece9-48f7-b697-54f01c52a782) id=0x7f070055 ThreeFragmentTag}
如果Demo第二页切换Fragment时使用replace方法:
fragmentTransaction.replace(R.id.container_fragment, mOneFragment, "OneFragmentTag");fragmentTransaction.replace(R.id.container_fragment, mTwoFragment, "TwoFragmentTag");fragmentTransaction.replace(R.id.container_fragment, mThreeFragment, "ThreeFragmentTag");
可以看到Added Fragments
如下:
Added Fragments: #0: ThreeFragment{6e72f21 (f6e3fc39-c6e1-43ab-8914-a56c85425092) id=0x7f070055 ThreeFragmentTag}
如果在执行fragmentTransaction.commit();
之前有执行addToBackStack
方法,如下所示:
fragmentTransaction.replace(R.id.container_fragment, mOneFragment, "OneFragmentTag"); fragmentTransaction.addToBackStack("replaceOne"); fragmentTransaction.commit();
那么我们还将看到Back Stack
和Back Stack Indices
,并从中看到回退栈的信息:
Back Stack: #0: BackStackEntry{ce9e8a6 #0 replaceOne} mName=replaceOne mIndex=0 mCommitted=true Operations: Op #0: ADD OneFragment{3208bfc (09d07dcf-16fb-4e3D-84f2-87edc2de520d) id=0x7f070055 OneFragmentTag} #1: BackStackEntry{aded2e7 #1 replaceTwo} mName=replaceTwo mIndex=1 mCommitted=true Operations: Op #0: REMOVE OneFragment{3208bfc (09d07dcf-16fb-4e3d-84f2-87edc2de520d) id=0x7f070055 OneFragmentTag} Op #1: ADD TwoFragment{5fd0293 (5f60c66a-1171-4c6a-bbca-d43abb76bd02) id=0x7f070055 TwoFragmentTag} #2: BackStackEntry{acc5e94 #2 replaceThree} mName=replaceThree mIndex=2 mCommitted=true Operations: Op #0: REMOVE TwoFragment{5fd0293 (5f60c66a-1171-4c6a-bbca-d43abb76bd02) id=0x7f070055 TwoFragmentTag} Op #1: ADD ThreeFragment{de0310b (efd3eb6b-1e6a-466f-bb87-f039024911cd) id=0x7f070055 ThreeFragmentTag} Back Stack Indices: #0: BackStackEntry{ce9e8a6 #0 replaceOne} #1: BackStackEntry{aded2e7 #1 replaceTwo} #2: BackStackEntry{acc5e94 #2 replaceThree}
来源地址:https://blog.csdn.net/jiejingguo/article/details/128822242
--结束END--
本文标题: Android adb命令获取当前Activity或者Fragment
本文链接: https://lsjlt.com/news/375480.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0