linux怎么根据apk的包名获取路径,Android 获取包名和 Activity 的几种方法

Guide

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

1. 方法一: pm list package 查看包名 adb shell pm list package -f

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

78aa8f7131c134afa01f84e959ab1873.png

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

81636eeeeaa72c0f1c62e911fd12329c.png

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'”

40ba189db6555e1e298b2cd480817f41.png

76659b06182b0dff3bfbeb9edcd42f19.png

bf68961903f80fba2ca2149fc79fd704.png

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

adb logcat ActivityManager:I *:s

088e0eae6f6833bce83164652e7299be.png

a0a42af4e54fe4b471ce58ffaff179df.png

4. 方法四:dumpsys activity

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

adb shell dumpsys activity | grep mFocusedActivity

55f14930eeb2575394270639dc433f6b.png

5. 方法五:logcat 日志抓 START C:\Users\Administrator>adb shell

root@msm8916_32_512:/ # logcat | grep START

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

5fd88c07f80abb12d0ebe7d3e6fd38bf.png

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

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

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

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

aapt dump badging D:\weixin658android1060.apk

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

8e7aef83aafff4c7fc6eb9c940834d95.png

f1665619178a089fbe1d21c5e6551809.png

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

1.使用apktool反编译 app

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

12ba4315f60b3af6e2556d2ff65930d5.png

c7aecdcf33fc9972c55e6c00aca8d112.png

644ff9b4005a785a572957501279c5ef.png

2.打开 AndroidManifest.xml 文件

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

ee7cf8d12398d812c9686c722085f07b.png

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

a4147deaf1d48cc4353f4b8b0d5a2662.png

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

92c109bb942442ffd8b6caabee44a034.png

注:

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

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

adb shell xxx | findstr xxx

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

adb shell "xxx | grep xxx"

63adc3c631a089f381735b8e17e373ef.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值