Appium Android 获取包名和 Activity 的几种方法 (转)

本文档主要记录获取包名和 Activity 的方法, 用于自动化测试时启动 APP 以下方法主要来源于网络和社区同学的贡献, 特此感谢!

1. 方法一: pm list package 查看包名

adb shell pm list package -f

将获取手机内所有 apk 对应的包名和路径

Appium Android 获取包名和 Activity 的几种方法 (转)

adb shell pm list package -3 -f #获取第三方 apk 的包

Appium Android 获取包名和 Activity 的几种方法 (转)

2. 方法二: dumpsys window(本人最常用)

先打开需要查找的 apk 后, 再敲入以上命令

adb shell dumpsys window w | findstr \/ | findstr name=

adb shell dumpsys window |findstr mCurrent

adb shell "dumpsys window w|grep \/|grep name=|sed s/mSurface=Surface(name=//g|sed s/)//g|sed s/ //g"

注: 此处用 sed 将部分字符串替换为空, 格式为 sed s / 要被取代的字串 / 新的字串 / g

Appium Android 获取包名和 Activity 的几种方法 (转)

Appium Android 获取包名和 Activity 的几种方法 (转)

Appium Android 获取包名和 Activity 的几种方法 (转)

3. 方法三: logcat 日志抓取 LAUNCHER

adb shell logcat | grep android.intent.category.LAUNCHER "

adb logcat ActivityManager:I *:s

Appium Android 获取包名和 Activity 的几种方法 (转)

Appium Android 获取包名和 Activity 的几种方法 (转)

4. 方法四: dumpsys activity

先启动需要的查找的 apk, 再敲入以上命令

adb shell dumpsys activity | grep mFocusedActivity

Appium Android 获取包名和 Activity 的几种方法 (转)

5. 方法五: logcat 日志抓 START

  1. C:\Users\Administrator>adb shell
  2. root@msm8916_32_512:/ # logcat | grep START

先启动需要查找的 apk, 再敲入以上命令, 找到最后一个 ActivityManager

Appium Android 获取包名和 Activity 的几种方法 (转)

6. 方法六: aapt 工具 (推荐使用)

使用 aapt 工具 , 适合给程序自动获取 apk 的相关信息, 非常实用,

//aapt 是 sdk 自带的一个工具, 在 sdk\builds-tools \ 目录下

1. 以微信为例, 命令行中切换到 aapt.exe 目录执行输入以下命令

aapt dump badging D:\weixin658android1060.apk

2. 运行后的结果中以下两行分别是应用包名 package 和入口 activity 名称, 另外可看到应用使用的权限支持的语言等信息

Appium Android 获取包名和 Activity 的几种方法 (转)

Appium Android 获取包名和 Activity 的几种方法 (转)

7. 方法七: apktool 反编译 app 后查看 AndroidManifest.xml

1. 使用 apktool 反编译 app

java -jar D:\Tools\apktool_2.2.3.jar d D:\Tools\weixin658android1060.apk

Appium Android 获取包名和 Activity 的几种方法 (转)

Appium Android 获取包名和 Activity 的几种方法 (转)

Appium Android 获取包名和 Activity 的几种方法 (转)

2. 打开 AndroidManifest.xml 文件

manifest 节点的 package 属性值是应用的包名:

Appium Android 获取包名和 Activity 的几种方法 (转)

查找 android.intent.action.MAIN 和 android.intent.category.LAUNCHER 对应的 activity, 该 activity 对应的 android:name 属性既是入口 activity 名称, android.intent.action.MAIN 决定应用程序最先启动的 Activity,android.intent.category.LAUNCHER 决定应用程序是否显示在程序列表里

Appium Android 获取包名和 Activity 的几种方法 (转)

8. 方法八: 使用 monkey 命令查看 Activity

adb shell monkey -p com.tencent.mm -c android.intent.category.LAUNCHER -v -v 0|findstr Using

Appium Android 获取包名和 Activity 的几种方法 (转)

注:

1. findstr 和 grep 查找字符串说明

findstr:windows 平台查找字符串命令, 一般格式如下:

adb shell xxx | findstr xxx

grep:linux 平台查找字符串命令, 一般先 adb shell 进入 shell 命令行再使用, 也可直接使用, 把 shell 后面带 grep 的命令加双引号即可:

adb shell "xxx | grep xxx"

Appium Android 获取包名和 Activity 的几种方法 (转)

来源: http://www.bubuko.com/infodetail-2523341.html

上一篇:appium 定位


下一篇:浅谈Appium之AppUI自动化