我需要获取Android APK的活动名称。我已经尝试了appium GUI并使用了相同的但是在运行代码时出现了错误#34;由于活动不正确,无法启动应用程序"。
所以我想知道如何查找正确的活动,以便我也可以轻松地为其他应用程序编写脚本。 我正在使用appium服务器V-1.7和java客户端-V5.0
答案 0 :(得分:1)
我们必须使用 android反编译器。
尝试以下链接
http://www.javadecompilers.com/apk
要遵循的步骤:
recordCollection.artists.count
答案 1 :(得分:0)
您可以使用reduce
命令
aapt
并使用以下命令获取包名称
aapt list -a /path/to/your/apk | sed -n '/ activity /{:loop n;s/^.*android:name.*="\([^"]\{1,\}\)".*/\1/;T loop;p;t}'
获得包名称和活动名称,并且活动已导出属性设置后,您可以使用以下命令启动活动。
aapt dump badging /path/to/your/apk | sed -n "/package: name=/{s/.*package: name='\([^\']\{1,\}\)'.*/\1/;p}"
答案 2 :(得分:0)
我曾经这样做过:
adb pm list packages -f | grep "any_filter"
上一个命令将显示包含" any_filter"
的每个包安装程序的列表包的示例(来自我的真实设备的一些):
com.adobe.reader
com.teamviewer.host.samsung
com.whatsapp
一旦你得到那个应用程序的包。获取每个应用的活动:
adb pm dump com.adobe.reader | grep -A 1 MAIN
adb pm dump com.teamviewer.host.samsung | grep -A 1 MAIN
adb pm dump com.whatsapp | grep -A 1 MAIN
你会发现它可能有一些活动...你将不得不尝试,但你可以弄清楚一个是他们的名字......
希望有所帮助
答案 3 :(得分:0)
还可以选择在设备中打开app并通过命令行运行命令:
adb shell "dumpsys window windows | grep –E 'mCurrentFocus'"
使用此命令,您可以获取正在运行的应用程序的当前活动。
答案 4 :(得分:0)
确保已连接设备/仿真器。 您可以通过在命令行中键入adb设备来验证连接性。 在设备中打开您的应用,然后通过命令行在命令下方运行。
adb shell "dumpsys window windows | grep –E 'mCurrentFocus'"
使用上述命令,您可以获取正在运行的应用程序的当前活动之后的软件包名称 包名称/应用活动。
// Set your application's appPackage
cap.setCapability("appPackage", "com.android.calculator2");
// Set your application's AppActivity
cap.setCapability("appActivity", "com.android.calculator2.Calculator");
其他选项是使用uiautomatorviewer,在模拟器或设备中打开应用程序,然后使用uiautomatorviewer可以获取值。