解决方案需求
数字化转型正在成为社会发展的新常态,智能AI技术、大数据和5G网络新技术将推动社会各行各业迈入数字新基建的新时代,构建一套完美的解决方案方能扬帆领航。
了解更多了解更多

手机测试之-adb(Android Debug Bridge)

作者:容域科技 发布时间:2023-12-05

1.1 Android系统主要的目录

目录 子目录 功 能 描 述
/acct / 系统回收站,删除的系统文件
/cache / 是缓存文件夹,主要存放缓存文件
 
/data
/ 存放用户安装的软件以及各种数据
app/ 用户自己安装的apk文件放在这个目录下
data/ 用户安装文件存储位置,软件以包名package name来命名
system/ 记录手机安装信息等文件的目录
/etc / 配置文件,指向/system/etc/
/dev / 设备文件,里面的文件很多都是设备模拟的文件系统
/proc / 目录下包含着系统运行的各种信息
  /cpuinfo 查看CPU相关信息
  /meminfo 查看内存相关信息
/storage / 手机存储设备,sdcardO表示第一块SD存储卡
/mnt / 挂载点,sdcard存储卡挂载目录
/sys / 存放linux内核文件
 
/system
/ 存放Android系统文件
/app/ 存放系统程序
/bin/ 存放的主要是Linux系统自带的组件
 
 
 
/system
/build.prop Android系统中很重要的文件,记录系统的设置和改变
/etc/ 主要存放安卓系统的核心配置文件
/fonts/ 系统字体存放目录
/framework/ 核心文件,系统平台运行框架
/lib/ 存放几乎所有的共享库(.so)文件
/media/ 存放系统提示音以及系统铃声
/usr/ 用户的配置文件,如键盘布局、共享、时区文件等
/sbin / 系统工具,用于调试adbd程序
 

1.2 ADB工具介绍

ADB的全称为Android Debug Bridce 就是起到调试标的作用,是Android SDK里面一个多用途调试工具,通过它可以和Android设备或模拟器通信,借助 adb工具只,我们可以管理设备或手机模拟器的状态。还可以进行很多手机操作 如安装软件、系统升级、运行shel命令等。其实简而言说adb就是连接Android手机与PC端的桥梁,可以让用户在电脑上对手机进行全面的操作。

1.3 ADB基本命令介绍

1、查看设备 adb devices
adb devices这个命今是查看当前连接的设备,连接到计算机的Android设备或者模拟器将会列出显示
u device: 表示找到设备并与adb连接 上
u no device: 表示当前没有模拟器在运行,或没有找到任何设备
u ofline: 表示设备或模拟器没有与adb相连或没有响应
说明:
1)如果出现多个device时,说明当前有多个设备或模拟器在运行,此时使用adb时,需要用-s指定一个目标设备(2) adb devices没有显示连接设备,可以使用一下命令
u adb kill-server
u adb start-server
u adb connect 127.0.0.1:7555 连接MuMu模拟器
 
2、查看adb版本及设备信息
获取adb版本adb version
获取设备的序列号adb get-serialno
adb get-state获取模拟器/设备的当前状态
 
3、安装软件 adb install + 安装包路径
adb install D:landroidicom.zmhi.hehe.apk
说明: apk文件安装后临时存储在/data/local/tmp目录中
 
4、卸载软件 adb uninstall 文件名
adb uninstall com.zmhj.hehe
说明:
(1)如果加-k参数,为卸载软件但是保留配置和缓存文件
(2)应用安装目录在/data/data 例如:com.ulang.jjk
(2)包名编写规范:全小写字母,多层之间点分隔
u 使用公司域名倒着写,后加应用名
a 比如:百度App
a 比如:达内App
包名: com.baidu.mm
包名: cn.tedu.mm
I 扩展:获取安装包对应的包名?
u adb shell pm list packages
u adb shell pm list packages 软件名
u aapt dump badging D:landroidlcom.zmhj.hehe.apk
 
5、从电脑上发送文件到设备 adb push 本地路径 远程路径用push命令可以把本机电脑上的文件或者文件夹复制到设备
adb push D:landroid\com.ulang.jjk.apk /data/
说明:adb可以使用选项,挑选使用某设备,常用选项?(面试题u adb -d push ...针对唯 的真机(USB数据线和PC连接) deviceu adb -e push ... 针对唯一的模拟器 emulator
u adb -s 设备id push ...通过设备id指定具体设备 真机或模拟器
6、从设备上下载文件到电脑 adb pull 远程路径 本地路径用pull命令可以把设备上的文件或者文件夹复制到本机电脑
adb pull /data/com.ulang.jjk.apk D:test apk说明:需要在D盘下创建一个文件夹test apk
 
7、在命令行中查看log信息 adb logcat
adb logcat,表示实时抓取整个手机的log信息,ctrl+c结束命令行
adb logcat [option] [filter-spec]
 
选    项 选项说 明
-V   日志的输出格式,默认是短暂的格式,支持的格式列表
-b   加载一个日志缓冲区,如 main,system(默认),还有event 和 radio
-s   设置默认的过滤级别是silent,如指定‘*:s’
-f   将log输出到指定的文件,默认为标准输出
-r   循环log的字节数,默认值是16,需要和-f选项一起使用
-n   设置循环log的最大数目,默认值是4,需要和-r选项一起使用
-g   打印日志缓冲区的大小并退出
-c   清除缓冲区中的全部日志并退出(清除完后可以使用-g查看缓冲区)
-d   将缓冲区的 log转存到屏幕中然后退出(不阻塞)
 
案例:实时持续跟踪日志并返回PC端显示,不停止
adb logcat
案例:一次读取当前日志并返回PC端显示,停止
adb logcat -d
案例:将实时抓取log信息并保存到本地log.txt文件adb logcat > D:logcat0.txt
案例:获取的log.txt文件中加上时间信息adb logcat -v time > D:llogcat1.txt案例:获取网络射频信息
adb logcat -b radio > D:llogcat2.txt案例:获取事件消息
adb logcat -b events > D:llogcat3.txt案例:获取log信息加上时间,显示缓冲区以及电话和系统相关的日志adb logcat -v time -b main -b radio -b system > logcat4.txt
过  滤  项 过滤项说明
-V Verbose显示全部信息
-D Debug显示调试信息
-I Information显示一般信息
-W Warning显示警告信息
-E Error显示错误信息
-F Fatal显示严重错误信息
 
技巧: 查看命令的帮助手册
adb logcat -help
案例:获取级别不低于E的日志,保存在D:Nogcat5.txt
adb logcat -d *:E > D:ogcat5.txt
 
8、进入设备或模拟器的adb shell
根据日志进行分析,寻找问题:根据crah(崩溃、闪退)、an(应用无响应)exception(异常)、error(错误)作为线索搜索日志,找到对应进程id、包名、相对位置,根据日志查看和分析测试中隐含的、容易遗漏的、底层的缺陷。
adb命令是adb这个程序自己的命令
adb shell是Android系统自带的命令,都保存在Android系统的/system/bin目录下,命令文件本质是shel脚本
(1)查看设备系统全部进程
adb shell ps
(2)过滤进程
abd shell ps  findstr 2588
(3)查看CPU硬件的相关信息
adb shell cat /proc/cpuinfo
(4)查看内存的相关信息adb shell cat /proc/meminfo
(5)查看I/O内存分区的相关信息adb shell cat /proc/iomem
(6)获取手机型号adb shell cat /system/bulid.prop  findstr “ro.product.model
(7)获取电池电量的相关信息adb shell dumpsys battery
(8)获取某个app的cpu占用情况
adb shell dumpsys cpuinfo  grep hehe
(9)包管理工具,获取安装包列表
adb shell pm list packages
(10)实时刷新查看Android系统的性能情况
adb shell top
 

全部方案

数字新基建
等保云灾备