一、adb简介
1、是安卓开发调试工具,是Android SDK 的一个工具,就是连接Android手机与PC端的桥梁,可以让用户在电脑上对手机进行全面的操作。
2、可以在android上运行shell命令行。
3、管理模拟器或设备的端口映射。
4、在计算机和设备之间上传|下载文件。
5、将电脑上的APK软件安装到android模拟器上。
6、前端的网站的日志:用开发者工具,console,后端日志:tail ,那么查看app日志就需要adb。
二、下载与安装
配置,在Path中新建安装的ADB的路径:我配置的很简单
用cmd查看版本:adb version
这样就算安装成功了。
三、手机连接ADB
进入开发者选项,每个手机型号不同,usb调试也不同。
举个栗子:我是安卓手机,就可以在在手机“设置”-“关于手机”连续点击“版本号”7 次,可以进入到开发者模式;然后可以到“设置”-“系统和更新”-“开发人员选项”-“调试”里打开USB调试以及允许ADB的一些权限;连接时手机会弹出“允许HiSuite通过HDB连接设备”点击允许/接受即可;
或者:使用USB线连接
1、手机连上电脑后,手机屏幕会弹框显示是否允许该电脑连接,电脑上也会自动安装手机驱动.。比如说这个华为的
2、CMD窗口中进入adb所在目录。
3、CMD窗口输入adb devices,此时可以看到自己的设备。
4、在List of devices attached下有自己的设备名字,表示连接手机成功。
四、电脑连接ADB
cmd
五、常用命令
最主要的就是查看日志:adb logcat
但是很多很长,可以先保存:
adb logcat > d:\日志.log
就可以保存查看。
查看日志里边的关键字:
ANR:APP无响应
CRASH:APP崩溃
Exception:app代码报错
使用 Monkey 进行压力测试
:Monkey 可以生成伪随机不可控的用户事件来模拟单击、触摸、手势等操作,可以对正在开发中的程序进行随机压力稳定性测试。
简单用法:adb shell monkey -p packagename ,包名 -vvv 次数 >d:\日志.log ,然后把日志保存。
常用命令
1、查看设备:adb devices,这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示。
会有如下几种state:
offline —— 表示设备未连接成功或无响应。
device —— 设备已连接。注意这个状态并不能标识 Android 系统已经完全启动和可操作,在设备启动过程中设备实例就可连接到 adb,但启动完毕后系统才处于可操作状态。
no device —— 没有设备/模拟器连接。
查看adb版本:adb version
2、安装软件:adb install xxx.apk
adb install <apk文件路径> :这个命令将指定的apk文件安装到设备上。
3、 卸载软件:adb uninstall 包名
就先用adb shell pm list packages,查看系统的包名,然后选择想要卸载的软件,填入packages:冒号后边的包名。
adb uninstall -k <软件名> ,如果加 -k 参数,为卸载软件但是保留配置和缓存文件.
4、进入设备或模拟器的shell:adb shell。
通过上面的命令,就可以进入设备或模拟器的shell环境中,在这个Linux Shell中,你可以执行各种Linux的命令,另外如果只想执行一条shell命令,可以采用以下的方式:
adb shell [command]
如:adb shell dmesg会打印出内核的调试信息。
5、 发布端口:可以设置任意的端口号,做为主机向模拟器或设备的请求端口。如:
adb forward tcp:5555 tcp:8000
6、 从电脑上发送文件到设备:adb push <本地路径> <远程路径>
用push命令可以把本机电脑上的文件或者文件夹复制到设备(手机)
7、从设备上下载文件到电脑:adb pull <远程路径> <本地路径>
用pull命令可以把设备(手机)上的文件或者文件夹复制到本机电脑
8、查看bug报告:adb bugreport
9、记录无线通讯日志:一般来说,无线通讯的日志非常多,在运行时没必要去记录,但我们还是可以通过命令,设置记录:
adb shell
logcat -b radio
10、获取设备的ID和序列号
adb get-product
adb get-serialno
adb shell
sqlite3
11、显示系统中全部Android平台: android list targets
12、显示系统中全部AVD(模拟器): android list avd
13、 创建AVD(模拟器):android create avd --name 名称 --target 平台编号
14、 启动模拟器:emulator -avd 名称 -sdcard ~/名称.img (-skin 1280x800)
15.、删除AVD(模拟器):android delete avd --name 名称
16、查看:
查看所有应用列表:adb shell pm list packages
查看系统应用列表:adb shell pm list packages -s
查看第三方应用列表,显示单独安装的,不是系统自带的:adb shell pm list packages -3:
查看Android 系统版本:adb shell getprop ro.build.version.release
查看设备ip地址:adb shell ifconfig | grep Mask或者adb shell netcfg
查看CPU 信息命令:adb shell cat /proc/cpuinfo
查看内存信息命令:adb shell cat /proc/meminfo
查看设备情况:
查看设备信息型号命令:adb shell getprop ro.product.model
电池状况命令:adb shell dumpsys battery
屏幕分辨率命令:adb shell wm size
如果使用命令修改过,那输出可能是:
Physical size: 1080x1920
Override size: 480x1024
表明设备的屏幕分辨率原本是 1080px * 1920px,当前被修改为 480px * 1024px。
屏幕密度命令:adb shell wm density
如果使用命令修改过,那输出可能是:
Physical density: 480
Override density: 160
表明设备的屏幕密度原来是 480dpi,当前被修改为 160dpi。
显示屏参数:adb shell dumpsys window displays
输出示例:
WINDOW MANAGER DISPLAY CONTENTS (dumpsys window displays)
Display: mDisplayId=0
init=1080x1920 420dpi cur=1080x1920 app=1080x1794 rng=1080x1017-1810x1731
deferred=false layoutNeeded=false
其中 mDisplayId 为 显示屏编号,init 是初始分辨率和屏幕密度,app 的高度比 init 里的要小,表示屏幕底部有虚拟按键,高度为 1920 - 1794 = 126px 合 42dp。
android_id查看命令:adb shell settings get secure android_id
查看Android 系统版本:adb shell getprop ro.build.version.release
查看设备ip地址:adb shell ifconfig | grep Mask或者adb shell netcfg
查看CPU 信息命令:adb shell cat /proc/cpuinfo
查看内存信息命令:adb shell cat /proc/meminfo
实用功能:
截图保存到电脑:adb exec-out screencap -p > sc.png
然后将 png 文件导出到电脑:adb pull /sdcard/sc.png
录制屏幕:录制屏幕以 mp4 格式保存到 /sdcard:adb shell screenrecord /sdcard/filename.mp4 需要停止时按 Ctrl-C,默认录制时间和最长录制时间都是 180 秒。
如果需要导出到电脑:adb pull /sdcard/filename.mp4
挂载、查看连接过的 WiFi 密码、开启/关闭 WiFi、设置系统日期和时间都需要root权限。
查看进程:adb shell ps
查看实时资源占用情况:adb shell top
查看进程 UID:adb shell dumpsys package | grep userId=
参考:
https://developer.android.com/studio/command-line/logcat.html