如何获取一个app的package名和activity

本文介绍如何利用Android SDK中的aapt工具来分析APK文件的基本信息,包括通过命令行切换到aapt.exe所在目录并执行特定命令进行badging信息的抓取。

使用aapt,其中aapt是sdk自带的一个工具,在sdk\builds-tools\目录下:

1、运行cmd,命令行中切换到aapt.exe目录

2、执行命令:aapt dump badging F:\\app-release.apk > F:\\log.txt

3、在log中寻找



### 如何获取 Android 的 appPackage appActivity 参数 在 Android 自动化测试或应用启动配置中,`appPackage` `appActivity` 是两个非常重要的参数。以下是获取这些参数的详细方法: #### 1. 使用 `adb shell dumpsys window` 命令 通过以下命令可以获取当前页面的 `appPackage` `appActivity`: ```bash adb shell dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp' ``` 该命令会返回类似以下的结果: ``` mCurrentFocus=Window{abc123 com.example.app/com.example.app.MainActivity} ``` 其中,`com.example.app` 是 `appPackage`,而 `com.example.app.MainActivity` 是 `appActivity`[^2]。 #### 2. 使用 `adb shell dumpsys activity` 命令 对于模拟器或真机,可以通过以下命令分别获取正在运行的 `appPackage` `appActivity`: - 模拟器: ```bash adb shell dumpsys activity | grep "mFocusedActivity" ``` - 真机: ```bash adb shell dumpsys activity | grep "mResumedActivity" ``` 输出结果类似于: ``` mFocusedActivity: ActivityRecord{... com.example.app/.MainActivity} ``` 这里的 `com.example.app` 是 `appPackage`,`.MainActivity` 是 `appActivity`[^2]。 #### 3. 使用 `adb shell dumpsys activity top` 命令 如果需要更详细的输出,可以使用以下命令: ```bash adb shell dumpsys activity top | grep ACTIVITY ``` 此命令会列出当前处于顶部的所有活动及其相关信息,便于进一步分析。 #### 4. 使用 Appium Inspector 工具 在 Appium 中,`Appium Inspector` 是一个可视化的工具,可以直接查看配置 `appPackage` `appActivity`。启动 Inspector 后,在 Capabilities 配置中填写正确的包活动称即可[^1]。 #### 5. 手动查找 APK 文件信息 如果无法直接运行应用,可以通过反编译 APK 文件来查找 `AndroidManifest.xml` 文件中的 `<application>` `<activity>` 标签。例如: ```xml <application android:label="ExampleApp" android:package="com.example.app"> <activity android:name=".MainActivity" android:label="Main Activity"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> </application> ``` 在此示例中,`com.example.app` 是 `appPackage`,而 `.MainActivity` 是 `appActivity`[^3]。 #### 示例代码:Python 脚本配置 Desired Capabilities 以下是一个 Python 脚本示例,展示如何将获取到的 `appPackage` `appActivity` 配置到 Desired Capabilities 中: ```python from appium import webdriver desired_caps = { "platformName": "Android", "deviceName": "emulator-5554", "appPackage": "com.example.app", # 替换为实际的 appPackage "appActivity": ".MainActivity" # 替换为实际的 appActivity } driver = webdriver.Remote("http://localhost:4723/wd/hub", desired_caps) ``` ### 注意事项 - 如果目标应用未启动,上述 `adb` 命令可能无法返回有效结果,建议先手动启动应用再执行命令。 - 对于某些复杂的应用,可能存在多个 `Activity`,需要根据具体需求选择正确的入口 `Activity`[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值