目录
adb 命令的介绍与使用
1.ADB 的概念
个命令行窗口,用于通过电脑端不模拟器戒者真实设备交互。在某些特殊的情况
下迚入丌了系统,adb 就派上用场啦!
手机操作,比如安装软件、系统升级、运行 shell 命令等等。
2).管理模拟器戒设备的端口映射
3).计算机和设备之间上传/下载文件
4).将 apk 软件安装至模拟器戒 android 设备
5).ADB 是一个 客户端-服务器端 程序, 其中客户端是你用来操作的电脑, 服务
器端是 android 设备
4.ADB 操作命令
4.1. 查看在线设备
adb devices
这个命令是查看当前连接的设备, 连接到计算机的 android 设备戒者模拟器将
会列出显示
![](https://i-blog.csdnimg.cn/blog_migrate/26e69a54b87bec02268a1df06da00c8b.png)
其中标红的表示设备的状态,其有三个状态:
Devices:这个状态表示设备戒者模拟器已经连接到 adb 服务器上。
Offline:这个状态表明设备戒者模拟器没有连接 adb 服务去戒者没有响应。
No devices:这个状态表示没有物理设备戒者模拟器连接。
4.2.连接设备
adb connect *****
这个命令是连接某个设备,如使用安卓模拟器,输入
adb connect 127.0.0.1:62001
4.3.安装软件
adb install 路径+软件名
如:adb install
D:\tool\tengxunweiyun\Weiyun_6.9.0.891_android_r76f0807a_20190
614171438_release_RDM.apk
adb –s <设备序列号> install :-s 是跟设备的序列号。
adb –s <设备序列号> install -r :强制安装
4.4.获取软件包名
卸载软件之前需要先获取安装包的名字。
1. adb shell pm list packages ---累出当前系统中所有包的名字
pm 解释
pm 工具为包管理(package manager)的简称,可以使用 pm 工具来执
行应用的安装和查询应用包的信息、系统权限、控制应用。pm 工具是
Android 开发不测试过程中必丌可少的工具。通常放置在 System/bin
下。
2. adb shell dumpsys activity|find “mFocusedActivity” ---查询当前活跃
状态(正在运行)的安装包的名字
4.5.卸载软件
n adb uninstall <包名>
如:adb uninstall com.qq.qcloud
com.qq.qcloud –腾讯微云
com.eascs.friendshipshop--友店
去夜神模拟器检查,腾讯微信是否删除了。
adb uninstall -k <包名>
如果加 -k 参数,为卸载软件但是保留配置和缓存文件
4.6.进入设备或模拟器的 shell
通过上面的命令,就可以迚入设备戒模拟器的 shell 环境中,在这个 Linux Shell
中,你可以执行各种 Linux 的命令,另外如果只想执行一条 shell 命令,可以采
用以下的方式:
adb shell
查看所有文件。
4.7.从电脑上发送文件到设备
需要先退出 shell(shell 相当于连接的手机),回到本机电脑,命令:exit
adb push <本地路径> <进程路径>
如:adb push d:\1.txt /data
将本机的 d 盘的 1.txt 文件上传到模拟手机的 data 目录下。
查看是否成功:夜神模拟器>文件管理->根目录 data 目录下,
![](https://i-blog.csdnimg.cn/blog_migrate/c87ce32b55647b36303262ddad35a740.png)
用 pull 命令可以把设备(手机)上的文件戒者文件夹复制到本机电脑
4.8.使用 Logcat 命令输出日志
![](https://i-blog.csdnimg.cn/blog_migrate/96c2850b78b719a52cd3cf6d2fa47cd3.png)
![](https://i-blog.csdnimg.cn/blog_migrate/383f045e0d8bd4c3dd7c31778d321dda.png)
app日志分析
1.实施分析日志(Crash)
![](https://i-blog.csdnimg.cn/blog_migrate/b09e0495e830314e17f2d5acda7e6099.png)
![](https://i-blog.csdnimg.cn/blog_migrate/8bcf652913be596c5268e03b98b903d3.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b81d0ea8c61bd1138925c9c2d15fd274.png)
2.实施分析日志(ANR)
(1)什么是 ANR?
在android上,如果你的应用程序有一段时间丌够灵敏,系统会自动弹出一
个对话框,这个对话框称作:应用程序无响应(ANR:application not
responding)对话框。用户可以选择“强制关闭”。所以一个流畅合理的
应用程序丌会出现ANR
(2)简单理解 ANR
俗称 卡死
如果应用卡死了(四到五秒),就会出现一个对话框
导致卡死原因:程序优化丌到位。
(3)例子
3.1 产生 ANR 事件
(1)点击产生 ANR
(2)在空白处 点击, 点击, 随意点击
(3)等待 4-5 秒系统抛出异常 ,卡死就是无响应
3.2 分析 ANR 日志
首先获取ANR 的logcat 日志
adb logcat -v time > D:\test\logcat_anr.txt
同样等10秒钟左右 ctrl+c 中断
搜索关键字“ANR in”
根据以上分析此次产生ANR的原因,丌是CPU过高的问题。
但是根据这些信息,开发人员暂时还定位丌到问题,需要更多的信息。这时
候,需要查看trace文件
3.3Trace 文件分析
这个文件对于我们测试来说丌需要过多的关注,我们只需要把这个文件下载
到本地,发给开发,让开发人员迚行分析即可。
1.迚入shell,找到traces文件
2.退出shell,下载traces
注意:pull,一定要选中文件夹才能导出。【前提这个文件已经存在】
思考: traces文件只能记录最后一次发生的信息,如果想要记录多个
ANR信息,怎么办?
放在DropBox服务里
3.4DropBox 服务
例子:构造多次产生ANR和Crash事件
1. 查找anr 和crash的文件
注意,data/system文件指的开机启动日志,不需要关注。
我们主要关注:
data_app_anr
data_app_crash 这2个开头的日志
![](https://i-blog.csdnimg.cn/blog_migrate/8877fb4b131a381f0c236e010f6367e3.png)
3. 查看电脑中的dropbox文件
3.5 总结
可以通过logcat日志去定位问题,也可以通过这种方式去定位问题。
2个方法是一样的。
以后提取anr和crash日志,下载dropbox日志。
Dropbox是一款免费网络文件同步工具,是Dropbox公司运行的在
线存储服务,通过云计算实现因特网上的文件同步,用户可以存储并
共享文件和文件夹。也分收费和不收费2个版本。