作者:E4b9a6, 创建:2022-04-07, 字数:1744, 已阅:174, 最后更新:2022-04-07
Appium在启动app需要填入appPackage与appActivity,获取这两个信息可以使用AAPT来获取APK的包名与启动页名称
提示:AAPT是Android SDK中的一款工具,用于查看APK的信息,可以作为分析APK包名与启动Activity的工具
首先需要安装Android SDK,访问developer.android.com/studio下拉至“Command line tools only”
点击对应的平台,下载仅命令行版本的SDK工具,下载完成后再解压即可
解压后执行命令如下,[Android SDK Path]是你打算要安装AndroidSDK的文件夹路径
./sdkmanager --sdk_root=[Android SDK Path] "cmdline-tools;latest"
安装完毕后,我们下载所需工具
[Android SDK Path]/cmdline-tools/latest/bin/sdkmanager --install "build-tools;32.0.0"
查看AAPT安装情况,可以看到AAPT已经在build-tools文件夹中
ll [Android SDK Path]/build-tools/32.0.0
total 24M
-rwxr-xr-x 1 chancel chancel 1.6M 4月 7 14:33 aapt
-rwxr-xr-x 1 chancel chancel 5.8M 4月 7 14:33 aapt2
-rw-r--r-- 1 chancel chancel 343 4月 7 14:33 aarch64-linux-android-ld
...
接下来使用aapt分析钉钉APK的包名,得到钉钉的包名是com.alibaba.android.rimet
[Android SDK Path]/build-tools/32.0.0/aapt dump badging DingTalk.apk | grep package
# 输出如下
package: name='com.alibaba.android.rimet' versionCode='814' versionName='6.3.30.33' compileSdkVersion='30' compileSdkVersionCodename='11'
使用aapt分析钉钉APK的启动Activity,得到钉钉首页名称是com.alibaba.android.rimet.biz.LaunchHomeActivity
[Android SDK Path]/build-tools/32.0.0/aapt dump badging DingTalk.apk | grep launchable-activity
launchable-activity: name='com.alibaba.android.rimet.biz.LaunchHomeActivity' label='' icon=''
每一次使用AAPT或者SDKManage都需要带上全路径比较麻烦,可按照Android开发环境设置,将AndroidSDK加入到Path中
编辑~/.zshrc(如是bash环境则编辑~/.bashrc文件,其他环境自行替换对应用户配置文件)
cat ~/.zshrc
# 输出如下
...
ANDROID_SDK_ROOT="[Android SDK Path]"
export PATH="$ANDROID_SDK_ROOT/cmdline-tools/latest/bin:$ANDROID_SDK_ROOT/build-tools/32.0.0:$HOME/.pyenv/bin:$PATH"
...