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命令

  1. adb version 查看adb版本

  2. adb connect 127.0.0.1:62001 连接指定的设备(shell)

  3. adb devices 查看当前连接的设备

  4. adb kill-server 关闭adb服务器

  5. adb start-server 启动adb服务器

  6. adb shell 进入默认的Android系统(如果只连接了一个设备)

  7. adb -s 127.0.0.1:62001 shell 进入指定的shell
    (夜神模拟器默认端口号第一个为62001,第二个为 62025第三个为62026以此类推)

  8. exit 退出当前shell

  9. (adb shell)pm list packages 查看系统中所有的应用

  10. (adb shell)pm list packages -s 查看系统中所有的系统应用

  11. (adb shell)pm list packages -3 查看系统中第三方的应用(已安装的)
    (括号里边是未进入安装系统的时候需要加adb shell,进入安装系统后不需要加adb shell)

  12. 把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安装到虚拟机

  13. 卸载软件
    adb shell pm list package -3 查出要卸载的第三方的包名(应用名)
    ①pm uninstall 包名(在虚拟机系统删除某应用)
    ②adb uninstall 包名 (不进入虚拟机直接卸载某应用)

  14. adb shell pm clear 包名(应用名) 清理应用缓存

  15. (adb shell) screencap /sdcard/tupian.png 截屏并保存在虚拟器外加adb shell

  16. adb logcat -v time 以时间格式实时查看操作日志

  17. adb logcat -t 100 查看最近100行的日志

  18. adb logcat -c 清空日志缓存信息

  19. 如何查看某个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 把日志打印到文件里面

  20. 命令关闭app
    adb shell am force-stop com.android36kr.app
    adb shell am force-stop 包名(应用名)

  21. 命令启动app
    1.打开app首页,找到首页的activity
    adb shell dumpsys window | findstr “Current” 找到包名/activity
    2.通过adb shell am start -W -n 包名/首页的activity

  22. adb reboot 重启模拟器

  23. 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知识的主要内容,如果未能解决你的问题,请参考以下文章

adb知识

linux下关于adb命令的一些知识

复习adb命令和mysql知识

adb进阶知识,如何过滤只查看某一个app的日志

小知识分享:adb uiautomator 命令 dump ui 树信息

小知识分享:adb uiautomator 命令 dump ui 树信息