前言:
写篇文章,来简单讲下adb。
正文:
一、关于adb。
adb,即Android Debug Bridge,也就是Android调试桥。
adb是一个C/S架构的命令行工具。它主要由3部分组成:
- 运行在PC端的Client:可以通过它对Android应用进行安装、卸载以及调试。比如说AndroidStudio中带的adb.exe。
- 运行在PC端的Service:其管理客户端到Android设备上adb后台进程的连接。adb服务启动后,Windows可以在任务管理器中找到adb.exe这个进程。
- 运行在Android设备上的adb后台进程。
adb使用的端口号默认为:5037。我们可以通过adb命令adb nodemon server查看adb的端口号。
二、adb命令。关于adb命令我们可以分为adb命令、adb shell命令。
adb命令:
1、获取设备列表及设备状态:
adb devices
2、获取设备状态:
adb get-state(这个只能用于当前只有一台设备的情况)
3、打印Android的系统日志:
adb logcat >d:\test\logcat.log
4、打印dumpsys、dumpstate、logcat的输出,也是用于分析错误输出到文本内:
adb bugreport >d:\test\bugreport.log
5、使用adb命令直接在终端(控制台)上查看/显示应用日志
adb logcat AppLog:I *:S
在终端上显示应用中日志标签为AppLog并且日志级别不低于I的所有日志。
6、安装应用:
adb install apk全路径
7、卸载应用:
adb uninstall 应用的包名
8、重启Android设备:
adb reboot
9、通过tcpip方式进行adb调试:
adb connect ip:port
断开连接:
adb disconnect
让设备的某个端口处于监听状态:
adb tcpip port(得先通过USB数据线连接上设备)
......
adb shell命令:
1、查看当前运行的Activity:
adb shell logcat | findstr ActivityManager
2、查看所有应用:
adb shell pm -l
3、查看内存信息:
adb shell dumpsys meminfo 应用的包名
4、主屏按键回到桌面(回到桌面)
adb shell input keyevent 3
5、返回上一个界面(模拟物理返回键)
adb shell input keyevent 4
6、杀死进程
(1)停止APP进程,并且清除这个APP进程产生的所有数据,相当于reset
adb shell pm clear package
执行该命令后输出success即表示命令执行成功,app进程被杀死,且会清除所有
数据,相当于卸载重装的效果,一般不建议使用。
(2)强制停止APP进程,不会清除APP进程在系统中产生的数据
adb shell am force-stop package
执行该命令后没有输出,手机对应进程已被杀死。
7、查看进程
adb shell ps|findstr package
8、仅隐藏虚拟键
adb shell settings put global policy_control immersive.navigation=*
9、恢复虚拟键
adb shell settings put global policy_control null
10、查看cpu处理器架构
adb shell getprop ro.product.cpu.abi
11、查看系统的build.prop文件(build.prop文件中包含设备型号等一系列信息)
adb shell
进入shell以后,再输入cat /system/build.prop
12、退出adb shell
exit
13、通过adb shell将电脑上的文件传输到手机上
adb push 电脑上的文件的目录 手机上的目录
比如 adb push C:\Users\dell\Desktop\data /storage/emulated/0/xxx/xxx_xxxxxx/
14、定位目录、查看目录
adb shell
进入shell以后,再输入cd 目录
比如cd /storage/emulated/0
cd xxx/xxx_xxxxxx/
再输入ls (ls用来打印出当前目录的清单)
15、显示当前所在工作目录的全路径
adb shell
进入shell以后,再输入pwd
16、将手机上的文件复制到电脑上
adb pull 手机上的目录 电脑上的目录
17、截图并导出到电脑
截图:adb shell screencap /sdcard/1.png (注意:执行该命令前需要先保证具有对该文件夹的写入权限)
导出:adb pull 设备上的目录 电脑上的目录(比如:adb pull /sdcard/1.png E:\图表)
18、录屏并导出到电脑
录屏:adb shell screenrecord /sdcard/screen.mp4 (注意:执行该命令前需要先保证具有对该文件夹的写入权限)
导出:adb pull 设备上的目录 电脑上的目录(比如:adb pull /sdcard/screen.mp4 E:\video)
补充:
执行录屏命令后会一直进行录屏,直到录屏时间上限,可以通过ctrl+c结束录屏。
adb shell screenrecord --time-limit 20 /sdcard/screen.mp4
如上,可以通过--time-limit 20来指定录屏时间,如果不指定,默认是180s。
19、删除文件
adb shell rm /sdcard/1.png(删除sdcard根目录下的文件名为1.png的文件)
adb shell rm /sdcard/*.png(删除sdcard根目录下的所有文件后缀为.png的文件)
20、查看当前运行的应用的包名和Activity
adb shell dumpsys window w |findstr \/ |findstr name=
21、查看设备的宽高
adb shell wm size
22、查看设备的窗口显示相关信息
adb shell dumpsys window displays
23、查看设备cpu信息
先adb shell进去,
然后执行cat /proc/cpuinfo
24、查看详细的内存信息
先adb shell进去,
然后执行cat /proc/meminfo
25、查看文件夹大小
先adb shell进去,到了对应文件夹下,
然后执行du -sh
其中,-s
参数表示显示总大小,-h
参数表示以人类可读的形式显示大小。
26、查看文件数量
先adb shell进去,
然后执行ls -l /path/directory | wc -l
/path/directory是要查看的文件夹的路径。
该命令会显示当前目录中包含的文件数量。
如果当前在该目录,可以直接执行ls -l | wc -l
......