51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2361|回复: 2
打印 上一主题 下一主题

[Appium] Appium Android 获取包名和 Activity 的几种方法

[复制链接]
  • TA的每日心情
    奋斗
    2015-8-28 12:55
  • 签到天数: 29 天

    连续签到: 1 天

    [LV.4]测试营长

    跳转到指定楼层
    1#
    发表于 2017-9-7 13:56:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    Guide
    本文档主要记录“获取包名和 Activity 的方法”,用于自动化测试时启动APP。以下方法主要来源于网络和社区同学的贡献,特此感谢!
    1. 方法一: pm list package查看包名
    1. adb shell pm list package -f
    复制代码
    将获取手机内所有apk对应的包名和路径

    1. adb shell pm list package -3 -f   #获取第三方apk的包
    复制代码

    2. 方法二:dumpsys window(本人最常用)
    先打开需要查找的apk后,再敲入以上命令
    1. adb shell dumpsys window w | findstr \/ | findstr name=

    2. adb shell dumpsys window |findstr mCurrent

    3. adb shell "dumpsys window w|grep \/|grep name=|sed 's/mSurface=Surface(name=//g'|sed 's/)//g'|sed 's/ //g'"
    复制代码
    注:此处用sed 将部分字符串替换为空,格式为“sed 's/要被取代的字串/新的字串/g'”



    3. 方法三:logcat日志抓取LAUNCHER
    1. adb shell “ logcat | grep android.intent.category.LAUNCHER "

    2. adb logcat ActivityManager:I *:s
    复制代码


    4. 方法四:dumpsys activity
    先启动需要的查找的apk,再敲入以上命令
    1. adb shell dumpsys activity | grep mFocusedActivity
    复制代码

    5. 方法五:logcat日志抓START
    1. C:\Users\Administrator>adb shell
    2. root@msm8916_32_512:/ # logcat | grep START
    复制代码
    先启动需要查找的apk,再敲入以上命令,找到最后一个ActivityManager

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

    使用aapt工具 ,适合给程序自动获取 apk 的相关信息,非常实用,
    //aapt是sdk自带的一个工具,在sdk\builds-tools\目录下
    1.以微信为例,命令行中切换到aapt.exe目录执行输入以下命令
    1. aapt dump badging D:\weixin658android1060.apk
    复制代码
    2.运行后的结果中以下两行分别是应用包名package和入口activity名称,另外可看到应用使用的权限、支持的语言等信息


    7. 方法七:apktool反编译app后查看AndroidManifest.xml
    1.使用apktool反编译app
    1. java -jar D:\Tools\apktool_2.2.3.jar d D:\Tools\weixin658android1060.apk
    复制代码



    2.打开AndroidManifest.xml文件
    manifest节点的package属性值是应用的包名:

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

    8. 方法八:使用monkey 命令查看Activity
    1. adb shell monkey -p com.tencent.mm -c android.intent.category.LAUNCHER -v -v 0|findstr Using
    复制代码

    注:
    1. findstr 和 grep 查找字符串说明
    findstr:windows平台查找字符串命令, 一般格式如下:
    1. adb shell  xxx  | findstr xxx
    复制代码
    grep:linux平台查找字符串命令,一般先adb shell 进入shell命令行再使用,也可直接使用,把shell 后面带grep的命令加双引号即可:
    1. adb shell  "xxx  | grep xxx"
    复制代码

    原文链接:https://testerhome.com/topics/9209

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏3
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    昨天 09:02
  • 签到天数: 1046 天

    连续签到: 4 天

    [LV.10]测试总司令

    2#
    发表于 2017-9-7 13:58:18 | 只看该作者
    指的一看的分享,做自动化移动端的朋友可以收藏了。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-15 01:06 , Processed in 0.071152 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表