adb知识
Posted 零点六一八
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了adb知识相关的知识,希望对你有一定的参考价值。
准备好文件adb、android-sdk-windows(安卓)、nox_setup_v6.6.0.5_full(夜神模拟器)
新建一个文件夹,名字为Android然后将android-sdk-windows文件夹复制到里边
打开我的电脑-属性-高级设置-环境变量
新建系统变量ANDROID_HOME
将android-sdk-windows文件夹打开,路径复制一份以英文分号;结束放在变量值中
将tools文件夹打开,复制路径放到上边的变量值后边分号结束
将platforms文件夹打开,复制路径放在tools路径后边
打开adb文件夹,将adb.exe和AdbwinApi.dll复制到路径C:\\windows\\SysWOW64里
将adb.exe复制一份到Android\\android-sdk-windows\\tools文件夹
将tools文件夹路径复制到path系统变量中
先在DOS命令中输入adb验证是否成功配置adb
然后输入android -n 验证android是否配置好
安装nox_setup(夜神模拟器)
adb理论知识
一、Android系统与ios系统的区别:
1.两者运行机制不同,对于安卓系统来说是采用虚拟机运行机制,iOS系统采用的沙河机制
2.两者的后台制度不同,iOS中的任何第三方程序都不能在后台运行,安卓中的任何程序都可以在后台运行,直到没有内存才关闭
二、Android SDK里边的一些自带的工具:
Monkey、uiautomofor、adb程序
三、安卓应用程序安装的相关路径:
1.system/app 系统自带的应用程序,无法删除
2.data/app 用户安装的程序,有删除权限
四、安装过程:
首先,会把最初的文件放到/data/dalvik-cache并且在data/data里创建对应的数据目录
五、卸载过程:
删除安装过程中产生的文件和目录
安卓手机上边的安装包的后缀为 .apk
adb命令
-
adb version 查看adb版本
-
adb connect 127.0.0.1:62001 连接指定的设备(shell)
-
adb devices 查看当前连接的设备
-
adb kill-server 关闭adb服务器
-
adb start-server 启动adb服务器
-
adb shell 进入默认的Android系统(如果只连接了一个设备)
-
adb -s 127.0.0.1:62001 shell 进入指定的shell
(夜神模拟器默认端口号第一个为62001,第二个为 62025第三个为62026以此类推) -
exit 退出当前shell
-
(adb shell)pm list packages 查看系统中所有的应用
-
(adb shell)pm list packages -s 查看系统中所有的系统应用
-
(adb shell)pm list packages -3 查看系统中第三方的应用(已安装的)
(括号里边是未进入安装系统的时候需要加adb shell,进入安装系统后不需要加adb shell) -
把PC端的apk安装包上传到模拟器
Adb push 本地路径 /sdcard 上传到模拟器的内存卡
如:adb push E:\\apk\\base.apk /sdcard
13.把模拟器上面的apk下载到本地
Adb pull 模拟器安装包位置 本地路径
如:adb pull /data/app/com.android36kr.app-1/base.apk E:\\apk
14.安装虚拟机器中的安装包
①adb shell pm install /sdcard/base.apk 在虚拟器外安装SD盘的安装包装到系统
②pm install /sdcard/base.apk 在虚拟器中将虚拟机SD盘的安装包装到虚拟器系统
15.直接从windows中安装软件
adb install D:\\APK\\base.apk 直接从PC安装到虚拟机 -
卸载软件
adb shell pm list package -3 查出要卸载的第三方的包名(应用名)
①pm uninstall 包名(在虚拟机系统删除某应用)
②adb uninstall 包名 (不进入虚拟机直接卸载某应用) -
adb shell pm clear 包名(应用名) 清理应用缓存
-
(adb shell) screencap /sdcard/tupian.png 截屏并保存在虚拟器外加adb shell
-
adb logcat -v time 以时间格式实时查看操作日志
-
adb logcat -t 100 查看最近100行的日志
-
adb logcat -c 清空日志缓存信息
-
如何查看某个app的日志
1.找到app的包名(应用名) (pm list packages -3)
2.进入shell通过包名找到占用的进程id (ps | grep 包名(应用名))#找完整包名的进程id
3.通过进程id 查看日志 (adb logcat | findstr 进程id)
adb logcat | findstr 进程id >D:\\apk\\test.txt 把日志打印到文件里面 -
命令关闭app
adb shell am force-stop com.android36kr.app
adb shell am force-stop 包名(应用名) -
命令启动app
1.打开app首页,找到首页的activity
adb shell dumpsys window | findstr “Current” 找到包名/activity
2.通过adb shell am start -W -n 包名/首页的activity -
adb reboot 重启模拟器
-
monkey:
Monkey是安卓自动化测试的一种手段,它可以在我们的真机或者模拟器里面运行,可以向系统发送伪随机的事件流,比如按键输入,屏幕触摸,手势操作等,可以实现对当前测试软件的压力测试,来测试app的稳定性。也可以做简单的机型适配,也可以测试app是否会出现crash等异常,以及系统的崩溃问题。
Monkey是由安卓系统自带,是由java代码开发的
monkey在安卓系统中的路径是/system/bin/monkey
Monkey的属性
-p 是指定特定的包,如果不指定包那么就在整个安卓系统里面运行
如:adb shell monkey -p com.android36kr.app 500
-v 日志级别,有三个级别(-v,-vv,-vvv,v越多日志越详细)
如 :adb shell monkey -p com.android36kr.app -vvv 500
-s 用于生成伪随机事件的seed值
如:adb shell monkey -p com.android36kr.app -s 123456 -vvv 500
—throttle 用户指定的时间操作间隔,单位是毫秒(一般可以设置为300)
如:adb shell monkey -p com.android36kr.app ——throttle 300 -s 123456 -vvv 500
——ignore-timeouts 忽略超时错误
——ignore-crashes 忽略闪退问题
——ignore-security-exceptions 忽略许可证错误比如网络许可
如:adb shell monkey -p com.xiaomi.shop ——throttle 300 ——ignore-timeouts ——ignore-crashes ——ignore-security-exceptions -s 123456 -vvv 500
——pct-touch 触摸事件
——pct-motion 滑动事件
——pct-trackball 轨迹球事件
——pct-syskeys 系统按键(比如home键,back键)
——pct-anyevent 任意事件
如:adb shell monkey -p com.xiaomi.shop ——throttle 300 ——pct-touch 20 ——pct-anyevent 20
——ignore-timeouts ——ignore-crashes ——ignore-security-exceptions -s 123456 -vvv 500
导出日志:
adb shell monkey -p com.xiaomi.shop ——throttle 300 ——pct-touch 20 ——pct-anyevent 20 ——ignore-timeouts ——ignore-crashes ——ignore-security-exceptions -s 123456 -vvv 500 > D:\\apk\\mi.txt
对于测试结果的分析,通过搜索关键词来定位错误,主要包括以下四个方面:
1)ANR:程序无响应,一般主线程超过5秒没处理就会出现ANR错误。
通过搜索ANR关键词来定位关键的事件信息。除了导出日志外,还可以将/data/anr/目录下的trace.txt文件导出,用来定位分析问题。使用adb pull /data/anr/trace.txt d:\\ 将trace.txt文件导出到d盘。
2)ForceClosed或其他异常退出信息:通过搜索Fatal关键词来定位。
3)崩溃问题:通过搜索Exception关键词来定位。
4)发生异常后,通过搜索Crash关键词来定位到详细的堆栈信息。
以上是关于adb知识的主要内容,如果未能解决你的问题,请参考以下文章