阅读Android APK的活动名称以获取appium

时间:2017-12-31 08:23:26

标签: appium

我需要获取Android APK的活动名称。我已经尝试了appium GUI并使用了相同的但是在运行代码时出现了错误#34;由于活动不正确,无法启动应用程序"。

所以我想知道如何查找正确的活动,以便我也可以轻松地为其他应用程序编写脚本。 我正在使用appium服务器V-1.7和java客户端-V5.0

5 个答案:

答案 0 :(得分:1)

我们必须使用 android反编译器

尝试以下链接

http://www.javadecompilers.com/apk

要遵循的步骤:

recordCollection.artists.count

答案 1 :(得分:0)

您可以使用reduce命令

从apk获取活动
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可以获取值。