Java 查找安卓APK for appium的活动名称

Java 查找安卓APK for appium的活动名称,java,appium,Java,Appium,我需要获取Android APK的活动名称。我尝试过appium GUI并使用了相同的方法,但在运行代码时出现了错误,即“由于活动不正确,无法启动应用程序” 因此,我想知道如何寻找正确的活动,以便能够轻松地为其他应用程序编写脚本。 我使用的是appium server V-1.7和java client-V5.0,我们必须使用android反编译器 试试下面的链接 应采取的步骤: 1. Choose correct .apk file from your system. 2. Upload

我需要获取Android APK的活动名称。我尝试过appium GUI并使用了相同的方法,但在运行代码时出现了错误,即“由于活动不正确,无法启动应用程序”

因此,我想知道如何寻找正确的活动,以便能够轻松地为其他应用程序编写脚本。
我使用的是appium server V-1.7和java client-V5.0,我们必须使用android反编译器

试试下面的链接

应采取的步骤:

1. Choose correct .apk file from your system.

2. Upload and Decompile apk.

3. After sometime apk will be decompile and you will get source code of
it.


4. Refer AndroidMenifest.xml file and find launcher tag in menifest,
And mention activity which using this tag is the activity you want.

您可以使用
aapt
命令从apk获取活动

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}"
一旦您有了包名和活动名,并且活动已导出属性集,就可以使用以下命令启动活动

$ adb shell am start -n '<package-name>/<activitiy>'
$adb外壳am开始-n'/'

我以前是这样做的:

adb pm list packages -f | grep "any_filter"
最后一个命令将显示包含“any_filter”的每个包安装程序的列表

软件包示例(一些来自我的真实设备):

一旦你拿到了应用程序包。要获取每个应用程序的活动,请执行以下操作:

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
你会发现它可能有一些活动。。。你必须试一下,但你可以通过他们的名字来确定是哪一个


希望有帮助

还有一个选项可以在设备中打开应用程序,并通过命令行运行命令:
adb shell“dumpsys窗口窗口| grep–E'mCurrentFocus'”


使用此命令,您可以获取正在运行的应用程序的当前活动。

确保您的设备/模拟器已连接。 您可以通过在命令行中键入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,在emulator或设备中打开应用程序,然后使用uiautomatorviewer可以获取值。

活动命令不起作用,错误出现“sed”不能识别为内部或外部命令。帮助共享appium测试的确切命令,我正在使用windows操作系统
// Set your application's appPackage
        cap.setCapability("appPackage", "com.android.calculator2");
        // Set your application's AppActivity
        cap.setCapability("appActivity", "com.android.calculator2.Calculator");