有没有一种方式来获得使用包可发射活动adb
? 对于unroot电话( 即,不具有拉离APK /data/app
目录并与检查appt
)。
我试过dumpsys,但不包括默认启动的活动信息。
谢谢
有没有一种方式来获得使用包可发射活动adb
? 对于unroot电话( 即,不具有拉离APK /data/app
目录并与检查appt
)。
我试过dumpsys,但不包括默认启动的活动信息。
谢谢
你并不需要root从拉APK文件/data/app
。 当然,你可能没有权限列出目录的内容,但你可以找到的APK的文件位置:
adb shell pm list packages -f
然后你可以使用adb pull
:
adb pull <APK path from previous command>
然后aapt
得到你想要的信息:
aapt dump badging <pulledfile.apk>
$ adb shell pm dump PACKAGE_NAME | grep -A 1 MAIN
由于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
#!/bin/bash
#file getActivity.sh
package_name=$1
#launch app by package name
adb shell monkey -p ${package_name} -c android.intent.category.LAUNCHER 1;
sleep 1;
#get Activity name
adb shell logcat -d | grep 'START u0' | tail -n 1 | sed 's/.*cmp=\(.*\)} .*/\1/g'
样品:
getActivity.sh com.tencent.mm
com.tencent.mm/.ui.LauncherUI
我没有发现它上市所以更新列表。
你需要有APK安装在您的手机该解决方案在前面跑 :
的Windows CMD行:
adb shell dumpsys window windows | findstr <any unique string from your pkg Name>
Linux终端:
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名称/
IN OUT输出,则整个第二部分可被用作主要活性。
这里是另一种方式来找出应用程序包的名称和启动活动。
第一步:在命令提示符下启动“亚行logcat”。
步骤2:打开该应用(无论是在模拟器或真实设备)
您也可以使用logcat的日志,其中只给搜索应用程序名称您将所有信息的DDMS,但你必须选择的信息,而不是冗长或其他选项。 检查这个下面的图片。