写点什么

adb 知识

作者:雨夜的博客
  • 2021 年 11 月 24 日
  • 本文字数:2687 字

    阅读完需:约 9 分钟

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 /sdcard13.把模拟器上面的 apk 下载到本地 Adb pull 模拟器安装包位置 本地路径如:adb pull /data/app/com.android36kr.app-1/base.apk E:\apk14.安装虚拟机器中的安装包①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 包名(应用名))#找完整包名的进程 id3.通过进程 id 查看日志 (adb logcat | findstr 进程 id)adb logcat | findstr 进程 id >D:\apk\test.txt 把日志打印到文件里面

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

    命令启动 app1.打开 app 首页,找到首页的 activityadb shell dumpsys window | findstr “Current” 找到包名/activity2.通过 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 关键词来定位到详细的堆栈信息。


博客来源:雨夜的博客

用户头像

专注技术研究的博客,公众号“雨夜的博客” 2019.01.05 加入

一个技能开发的创业者,五年开发老鸟,自研产品,自主创业!

评论

发布
暂无评论
adb知识