ADB命令使用详解

ADB是一个 客户端-服务器端 程序, 其中客户端是你用来操作的电脑, 服务器端是android设备.

1、连接android设置
adb connect 设备名
例如:
adb connect 127.0.0.1:62025
adb connect 127.0.0.1:62001

2. 查看设备
adb devices
这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示

3. 安装软件
adb install 软件包的名称
这个命令将指定的apk文件安装到设备上
adb install 路径\app-weichi-release.apk

如果显示success,那么久安装apk包成功,显示Failure,则安装失败。
检查错误,排错,再执行如下命令:abd install -r 包名.apk

4、获取app的包名和activity名称
adb logcat -v time | findstr START
脚本中,cmp= 后面的值就是 包名

查看当前运行的APP的包名和打开的Activity
adb shell "dumpsys window | grep mCurrentFocus"

5. 卸载软件
获取包名(单个设备)adb shell pm list packages -3 (3指的第三方的)
(多个设备)adb -s 设备名 shell pm list packages -3
adb uninstall <软件名>

6、把本地的文件上传到Android设备(以夜神模拟器例)
语法:adb push 本地文件路径 Android设备路径
例子:把本地磁盘中的E:\android\test.txt上传到安卓服务器的/storage/sdcard0/目录
adb push E:\android\test.txt /storage/sdcard0/
PS:点击夜神模拟器左下角的 文件管理器,依次进入storage/sdcard0,就能查看到刚才上传的文件

7、把Android设备的文件下载到本地的(以夜神模拟器例)
语法:adb pull Android设备上的文件路径 本地路径
例子:把本地磁盘中的E:\android\test.txt上传到安卓服务器的/storage/sdcard0/目录
adb pull /storage/sdcard0/test.txt E:\android

8.monkey命令
adb shell monkey -p app-weichi-release.apk -v 500
这个命令将会启动你的软件并且触发500个事件.

9、使用monkey做回归测试
monkey命令后面可以带很多参数,常见的除了-v、-p还有-s,-s 后面加上monkey上一次运行时候的产生seed值,就可以让monkey重复上一次运行时的操作路径,从而实现回归测试。
例如:
adb shell monkey -p app-weichi-release.apk -s 45544215878 -v 5

10、测试期间收集monkey日志
adb shell monkey -p your.package.name -v 500 > E:\share\monkey.log -- 把monkey日志导入到E盘的share目录下。

11、收集logcat日志(logcat日志,记录了用户的在系统上的所有操作)
1)、先清空系统上原有的logcat日志:adb logcat -c
2)、获取logcat日志:adb logcat -v time > E:\share\logcat.log -- 把logcat日志导入到E盘的share目录下。

******************************************************************************
monkey在运行过程中,可能会出现异常,一般的原因有以下方面:
1)、应用程序崩溃(crash)或接收到任何失控异常;
导致crash的原因有:
a)、程序存在空指针;
b)、数组越界;
c)、CPU不足;
d)、内存不足。

2)、应用程序不响应(application not responding,简称:ANR); ---- 当系统5秒内无法响应用户输入事件,就报ANR的错误。
导致ANR的原因有:
a)、线程堵塞;
b)、CPU不足;
c)、内存不足。

monkey在运行过程中出现异常停止的问题分析思路,参考:
《APP压力测试问题定位思路_monkey篇.docx》
******************************************************************************

思考题:当monkey异常终止,我如何协助开发定位问题?
参考答案:运行monkey做稳定性测试的同时,需要把应用的logcat日志取下来,monkey在运行中出现异常,一般是两种原因导致的,一个是crash,程序崩溃,一个是ANR,程序没有响应;当monkey异常终止,就进入logcat日志,搜索关键字“anr in”,如果存在该关键字,说明app出现了ANR异常,接下来把/data/anr/目录下的trace.txt文件取下来,将出现问题的进程号对应的日志发给开发定位;如果没搜索到“anr in”关键字,就搜索“nullpointer”,存在该关键字,说明app出现了CRASH异常,就把nullpointer异常关键字上下的日志发给开发定位。

ADB-常见命令使用详解的更多相关文章

  1. adb常用命令及详解

    ADB 即 Android Debug Bridge,Android调试桥.ADB工作方式比较特殊,采用监听Socket TCP 端口的方式让IDE和Qemu通讯,默认情况下adb会daemon相关的 ...

  2. ADB 常用命令及详解

    1.pull文件 adb pull (文件路径) (想要pull的路径) MacBook-Pro:~ caris$ adb pull /sdcard/Android/data/com.xiwi.log ...

  3. Mysql数据库导入命令Source详解

    Mysql数据库导入命令Source详解 几个常用用例: 1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -u root -p dat ...

  4. dos下的edit命令使用详解

    dos下的edit命令使用详解 来源:网络 作者:未知 edit命令是一个简单的编辑软件,我们经常用它来编辑一些程序和批处理文件. 比如,我想在c盘根目录下编辑一个简单的批处理文件,要求无论当前盘和当 ...

  5. 常见 jar包详解

        常见 jar包详解 jar包 用途 axis.jar SOAP引擎包 commons-discovery-0.2.jar 用来发现.查找和实现可插入式接口,提供一些一般类实例化.单件的生命周期 ...

  6. (转)Linux curl命令参数详解

    Linux curl命令参数详解 命令:curl在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具.它支持文件的上传和下载,是综合传输工具, ...

  7. Make命令完全详解教程

    Make命令完全详解教程 无论是在Linux还是在Unix环境中,make都是一个非常重要的编译命令.不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或make install.利用m ...

  8. shell编程系列23--shell操作数据库实战之mysql命令参数详解

    shell编程系列23--shell操作数据库实战之mysql命令参数详解 mysql命令参数详解 -u 用户名 -p 用户密码 -h 服务器ip地址 -D 连接的数据库 -N 不输出列信息 -B 使 ...

  9. [转载]OpenSSL中文手册之命令行详解(未完待续)

     声明:OpenSSL之命令行详解是根据卢队长发布在https://blog.csdn.net/as3luyuan123/article/details/16105475的系列文章整理修改而成,我自己 ...

随机推荐

  1. 使用Vim写LaTeX代码(Vim+Vimtex+Skim)

    最近在写博客的时候发现对数学公式的支持并不好,于是就想寻找一个解决方案.我本身是一个爱折腾的人,有时尽管有现成的解决方案我有事也不愿意去用.于是多方查找资料,想寻求一个自定义的解决方案,最终把自己的目 ...

  2. Windows程序设计(2) -API-01 初识

    Windows 程序原理 一,CPU的保护模式和windows操作系统 [x] windows 是多任务实现 [x] 虚拟内存和 各个进程的地址空间安排:2G系统空间,2G用户空间,2G用户空间是各个 ...

  3. class 类组件:

    ES6  中的class 类组件: // class 关键字:确定一个类型student以类的概念存在 class student{ //构造函数 是默认自动执行 // 初始化 name age 属性 ...

  4. 程序员Linux教程初窥入门-刘志敏-专题视频课程

    程序员Linux教程初窥入门-313人已学习 课程介绍        程序员Linux教程初窥入门主要针对初级入门程序员的课程,也是为后期学习其他课程的一个基础,Git.Maven.Jenkins.R ...

  5. synchronized与锁升级

    1 为什么需要synchronized? 当一个共享资源有可能被多个线程同时访问并修改的时候,需要用锁来保证数据的正确性.请看下图: 线程A和线程B分别往同一个银行账户里面添加货币,A线程从内存中读取 ...

  6. 黎活明8天快速掌握android视频教程--16_采用SharedPreferences保存用户偏好设置参数

    SharedPreferences保存的数据是xml格式,也是存在数据保存的下面四种权限: 我们来看看 我们来看看具体的业务操作类: /** * 文件名:SharedPrecences.java * ...

  7. React实战教程之从零开始手把手教你使用 React 最新特性Hooks API 打造一款计算机知识测验App

    项目演示地址 项目演示地址 项目代码结构 前言 React 框架的优雅不言而喻,组件化的编程思想使得React框架开发的项目代码简洁,易懂,但早期 React 类组件的写法略显繁琐.React Hoo ...

  8. 入门大数据---基于Zookeeper搭建Kafka高可用集群

    一.Zookeeper集群搭建 为保证集群高可用,Zookeeper 集群的节点数最好是奇数,最少有三个节点,所以这里搭建一个三个节点的集群. 1.1 下载 & 解压 下载对应版本 Zooke ...

  9. Python之浅谈函数

    目录 文件的高级应用 文件修改的两种方式 第一种 第二种 函数的定义 函数的参数 函数的返回值 文件的高级应用 r+即可读又可写,并且是在后面追加 w+清空文件的功能是w提供的 a+a有追加的功能,a ...

  10. (私人收藏)java实例、知识点、面试题、SHH、Spring、算法、图书管理系统、综合参考

    https://pan.baidu.com/s/1hkmgJU6pf2sBjNV1NlOaNgr6l2 Java趣味编程100例java经典选择题100例及答案java面试题大全java排序算法大全j ...