有没有办法使用adb
来获取包的可启动活动?对于unroot手机(即没有从/data/app
目录中取出apk并使用appt
进行检查)。
我尝试过dumpsys,但它不包含有关默认可启动活动的信息。
由于
答案 0 :(得分:85)
您不需要root来从/data/app
中提取apk文件。当然,您可能没有权限列出该目录的内容,但您可以通过以下方式找到APK的文件位置:
adb shell pm list packages -f
然后您可以使用adb pull
:
adb pull <APK path from previous command>
然后aapt
获取您想要的信息:
aapt dump badging <pulledfile.apk>
答案 1 :(得分:43)
$ adb shell pm dump PACKAGE_NAME | grep -A 1 MAIN
答案 2 :(得分:15)
从Android 7.0开始,您可以使用adb shell cmd package resolve-activity
命令获取已安装应用的默认活动,如下所示:
adb shell "cmd package resolve-activity --brief com.google.android.calculator | tail -n 1"
com.google.android.calculator/com.android.calculator2.Calculator
答案 3 :(得分:9)
我没有找到它,所以更新列表。
您需要在手机上安装并运行apk才能获得此解决方案:
Windows CMD行:
ViewModels
Linux终端:
adb shell dumpsys window windows | findstr <any unique string from your pkg Name>
计算器包的OUTPUT为:
adb shell dumpsys window windows | grep -i <any unique string from your Pkg Name>
主要部分是第一行:
Window #7 Window{39ced4b1 u0 com.android.calculator2/com.android.calculator2.Calculator}:
mOwnerUid=10036 mShowToOwnerOnly=true package=com.android.calculator2 appop=NONE
mToken=AppWindowToken{29a4bed4 token=Token{2f850b1a ActivityRecord{eefe5c5 u0 com.android.calculator2/.Calculator t322}}}
mRootToken=AppWindowToken{29a4bed4 token=Token{2f850b1a ActivityRecord{eefe5c5 u0 com.android.calculator2/.Calculator t322}}}
mAppToken=AppWindowToken{29a4bed4 token=Token{2f850b1a ActivityRecord{eefe5c5 u0 com.android.calculator2/.Calculator t322}}}
WindowStateAnimator{3e160d22 com.android.calculator2/com.android.calculator2.Calculator}:
mSurface=Surface(name=com.android.calculator2/com.android.calculator2.Calculator)
mCurrentFocus=Window{39ced4b1 u0 com.android.calculator2/com.android.calculator2.Calculator}
mFocusedApp=AppWindowToken{29a4bed4 token=Token{2f850b1a ActivityRecord{eefe5c5 u0 com.android.calculator2/.Calculator t322}}}
输出的第一部分是包名:
Window #7 Window{39ced4b1 u0 com.android.calculator2/com.android.calculator2.Calculator}:
输出的第二部分(在com.android.calculator2
之后)可以是两件事,在我们的例子中:
/
com.android.calculator2.Calculator
=
<PKg name>.<activity name>
所以<com.android.calculator2>.<Calculator>
是我们的活动
如果第二部分与包名完全不同,并且似乎不包含输出前.Calculator
之前的pkg名称,那么整个
第二部分可以作为主要活动。
答案 4 :(得分:3)
以下是查找应用包名称和启动器活动的另一种方法。
步骤1:在命令提示符下启动“adb logcat”。
第2步:打开应用程序(在模拟器或真实设备中)
答案 5 :(得分:1)
答案 6 :(得分:0)
启动您的应用并将其保持在前台。
运行以下命令:
adb shell dumpsys窗口窗口|找到“当前焦点”