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

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

adb shell pm list package -f

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

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

 

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

 

 

 

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

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

adb logcat ActivityManager:I *:s

 

 

4. 方法四:dumpsys activity

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

adb shell dumpsys activity | grep mFocusedActivity

 

5. 方法五:logcat日志抓START

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

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

 

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

使用aapt工具 ,适合给程序自动获取 apk 的相关信息,非常实用,
//aapt是sdk自带的一个工具,在sdk\builds-tools\目录下
1.以微信为例,命令行中切换到aapt.exe目录执行输入以下命令

aapt dump badging D:\weixin658android1060.apk

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

 

 

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

1.使用apktool反编译app

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

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

 

注:
1. findstr 和 grep 查找字符串说明
findstr:windows平台查找字符串命令, 一般格式如下:

adb shell  xxx  | findstr xxx

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

adb shell  "xxx  | grep xxx"
 
原文地址:https://testerhome.com/topics/9209
感谢作者辛苦总结

Appium Android 获取包名和 Activity 的几种方法 (转)的更多相关文章

  1. Appium Android 获取包名appPackage和appActivity的几种方法

    情况1: 安装包未安装到手机 准备前提条件: 1 Android SDK管理工具目录 2 PC端有apk包 使用方法: 1 打开终端,当前路径移动到sdk管理工具目录tools或build-tools ...

  2. 【appium】查看Android应用包名、Activity的几个方法

    一.有源码情况 直接打开AndroidManifest.xml文件,找到包含android.intent.action.MAIN和android.intent.category.LAUNCHER对应的 ...

  3. 查看Android应用包名、Activity的几个方法

    一.有源码情况 直接打开AndroidManifest.xml文件,找到包含android.intent.action.MAIN和android.intent.category.LAUNCHER对应的 ...

  4. Android Apk获取包名和Activity名称

    一.使用aapt(Android Asset Packaging Tool)工具获取: 1.配置Android环境: a.添加build-tools/android路径到系统环境变量的中Path中,注 ...

  5. Android 获取包名,版本信息

    Android 获取包名,版本信息及VersionName名称     <span style="font-size: 14px;">private String ge ...

  6. 快速获取Android应用包名和Activity名

    一.获取包名 方法1: 先说明一下这里讲的方法是通用的,而网上其他方法获取PackageName不通用(因为他是建立在root的基础上的,我不敢保证你的设备已经root). ①在android设备上点 ...

  7. 二.第一个自动化demo,打开APP-如何获取包名和activity。(真机)

    环境配置成功后,我们就可以进行第一个自动化测试了.用真机则不需要安装安卓模拟器.以一个简单的打开APP为例. 一.获取包名和activtity      启动一个app,我们需要知道它的平台.版本号. ...

  8. 手机App测试如何获取包名的入口【两种方式】

    在进行手机APP测试的时候经常要获取包名.那么何为包名呢?简单来说其实就是手机APP的安装apk文件的名称,每个手机APP(软件)的包名都是唯一的. 那么我们怎样来获取包名以及包名的入口呢? 方法一: ...

  9. aapt获取包名和activity,启动app

    1.android sdk的环境安装好了之后,在build-tools\** 的目录下找到aapt.exe,将这个路径设置环境变量,添加到path下 2.在cmdl里面输入:aapt,出现以下内容就是 ...

随机推荐

  1. Java_集合总结

    集合分类 Collection 接口是集合的父类 1.Set 集合 使用内部的排列机制(无序),存入集合的顺序和取出集合的顺序不一致,没有索引,存入集合的元素没有重复 HashSet集合 Linked ...

  2. Mysql中文乱码以及导出为sql语句和Excel问题解决

    Mysql中文乱码以及导出为sql语句和Excel问题解决 这几天基于Heritrix写了一个爬虫,用到mysql,在导入导出数据时,遇到一些乱码问题,好不容易解决了,记录一下,以备查看.一.导出数据 ...

  3. java.awt.headless 参数说明

    在使用Java处理图形应用时,经常有人推荐设置 -Djava.awt.headless=true,具体含义和效果查了一下,记录在这里分享 Headless模式是系统的一种配置模式.在该模式下,系统缺少 ...

  4. [APIO2014] [Uoj103] [Bzoj3676] Palindromes回文串 [Manacher,后缀数组]

    用Manacher算法枚举回文子串,每次在后缀数组排序后的后缀数组中二分,因为用某一后缀和其他子串分别求匹配的长度,匹配长度在排序后该后缀的两侧具有单调性(匹配长度为min{H[x]|i<=x& ...

  5. Fedora15下安装Android开发环境

    Fedora15下安装Android开发环境需要以下步骤: 完整步骤. 1. 安装正确版本的JDK. 2. 安装Eclipse. 3.  安装ADT. 4.  安装Android SDK. 5.  安 ...

  6. iOS中UITextView的操作技巧

    刚才看了一篇textView实现placeholder的文章,有兴趣的同学们能够看下:__biz=MzA3NzM0NzkxMQ==&mid=211846438&idx=1&sn ...

  7. Linux IPC之共享内存C 事例

    Linux IPC之共享内存 标签: linuxrandomnull工作 2011-08-25 11:52 4123人阅读 评论(0) 收藏 举报  分类: Linux(3)  读书札记(3)  版权 ...

  8. 如何将unity资源窗体中的文件一下所有折叠/打开

    1.选中父物体 2.按住alt 3.再按下键盘上的左键/右键:此父物体下的所有折叠/打开 或者 alt + LMB  点击所要折叠/打开的父物体左边的小三角

  9. oc49--@class

    // Person.h #import <Foundation/Foundation.h> @class Car; //#import "Car.h" // 由于imp ...

  10. Codeforces--621B--Wet Shark and Bishops(数学)

     B. Wet Shark and Bishops time limit per test 2 seconds memory limit per test 256 megabytes input ...