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. 一时技痒,撸了个动态线程池,源码放Github了

    阐述背景 线程池在日常工作中用的还挺多,当需要异步,批量处理一些任务的时候我们会定义一个线程池来处理. 在使用线程池的过程中有一些问题,下面简单介绍下之前遇到的一些问题. 场景一:实现一些批量处理数据 ...

  2. SQL常用取整函数

    1.Round(column_name,decimals):用于把数值字段舍入为指定的小数位数 2.Floor(column_name): 向下取整,主要用于获得小于等于数值表达式的最大整数. 3.C ...

  3. arduino连接12864LCD方法

    arduino连接12864LCD方法,参考相关代码. https://blog.csdn.net/txwtech/article/details/95038386

  4. XP系统无法进入界面 不断的反复重启-解决方法

    XP系统无法进入界面 不断的反复重启-解决方法 XP系统无法进入界面 不断的反复重启-解决方法 一般都是非正常关机导致磁盘受到损坏.需要修复磁盘. 1.插入带PE的u盘,进入PE系统后 2.win+R ...

  5. 最通俗易懂的RSA加密解密指导

    前言 RSA加密算法是一种非对称加密算法,简单来说,就是加密时使用一个钥匙,解密时使用另一个钥匙. 因为加密的钥匙是公开的,所又称公钥,解密的钥匙是不公开的,所以称为私钥. 密钥 关于RSA加密有很多 ...

  6. java SSM框架单元测试最佳实战代码

    具体的代码参考链接:https://pan.baidu.com/s/1e9UTyidi4OMBwYydhwH-0g 密码:rmvs 本教程采用的是对单元测试的dao层.service层.control ...

  7. python的常用魔法方法详细总结

    构造和初始化 __init__我们很熟悉了,它在对象初始化的时候调用,我们一般将它理解为"构造函数". 实际上, 当我们调用x = SomeClass()的时候调用,__init_ ...

  8. ORACLE数据库数据被修改或者删除恢复数据(闪回)

    1. SELECT * FROM CT_FIN_RiskItem  --先查询表,确定数据的确不对  (cfstatus 第一行缺少) 2. select * from CT_FIN_RiskItem ...

  9. 注解式HTTP请求Feign (F版)

    Spring Cloud 为开发者提供了在分布式系统中的一些常用的组件(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁定,决策竞选,分布式会话集群状态).使用Sprin ...

  10. JVM源码分析之深入分析Object类finalize()方法的实现原理

      原创申明:本文由公众号[猿灯塔]原创,转载请说明出处标注 ​“365篇原创计划”第十篇. 今天呢!灯塔君跟大家讲: 深入分析Object类finalize()方法的实现原理 finalize 如果 ...