官方地址:https://developer.android.google.cn/studio/command-line/adb
ADB(Android Debug Bridge)架构
ADB是一个C/S架构的应用程序,由三部分组成:
- 运行在pc端的adb client:
命令行程序”adb”用于从shell或脚本中运行adb命令。首先,“adb”程序尝试定位主机上的ADB服务器,如果找不到ADB服务器,“adb”程序自动启动一个ADB服务器。接下来,当设备的adbd和pc端的adb server建立连接后,adb client就可以向ADB servcer发送服务请求; - 运行在pc端的adb server:
ADB Server是运行在主机上的一个后台进程。它的作用在于检测USB端口感知设备的连接和拔除,以及模拟器实例的启动或停止,ADB Server还需要将adb client的请求通过usb或者tcp的方式发送到对应的adbd上; - 运行在设备端的常驻进程adb demon (adbd):
程序“adbd”作为一个后台进程在Android设备或模拟器系统中运行。它的作用是连接ADB服务器,并且为运行在主机上的客户端提供一些服务。
基本知识
常用命令
1、查看机器是否root
adb shelladb shell id
2、创建文件夹
用法:adb shell mkdir [options]
- 创建文件夹test1并给文件夹赋予读写执行的权限(使用-m参数):
adb shell mkdir -m 777 /sdcard/test
- 递归创建目录(使用-p参数):
adb shell mkdir -p /sdcard/test/test1/test2
3、创建文件或改变文件时间戳
用法:adb shell touch [-alm] [-t YYYYMMDD [.HHMMSS]] < file >
adb shell touch /sdcard/test.txt /sdcard/test1.txt
4、复制、移动、重命名文件
复制:
adb shell cp /sdcard/test.txt /sdcard/Download
复制并修改新文件名称:adb shell cp /sdcard/test.txt /sdcard/Download/test_new.txt
移动:adb shell mv /sdcard/test.txt /sdcard/Download/
移动并重命名:adb shell mv /sdcard/Download/test.txt /sdcard/Download/test_renamed.txt
重命名:adb shell rename /sdcard/test1.txt /sdcard/test_renamed.txt
5、查看文件内容/查看手机内存信息
adb shell cat /proc/meminfoMemTotal: 所有可用RAM大小(即物理内存减去一些预留位和内核的二进制代码大小);
MemFree: 被系统留着未使用的内存;
Buffers: 用来给文件做缓冲的大小;
Cached: 被高速缓冲存储器(cache memory)用的内存的大小(等于 diskcache minus SwapCache );
SwapCached:swap 缓存的大小,Android很少使用swap的,经常为0。被高速缓冲存储器(cache memory)用来交换空间的大小,用来在需要的时候很快的被替换而不需要再次打开I/O端口;
Active: 在活跃使用中的缓冲或高速缓冲存储器页面文件的大小,除非非常必要,否则不会被移作他用;
Inactive: 在不经常使用中的缓冲或高速缓冲存储器页面文件的大小,可能被用于其他途径;
SwapTotal: 交换空间的总大小;
SwapFree: 未被使用交换空间的大小。
6、查看各个分区的存储情况
adb shell df -h
7、查看应用列表(包名)
用法:adb shell pm list packages [-f] [-d] [-e] [-s] [-3] [-i] [-u] [–user USER_ID] [FILTER]
无: 所有应用
-f: 显示应用关联的 apk 文件
-d: 只显示 disabled 的应用
-e: 只显示 enabled 的应用
-s: 只显示系统应用
-3: 只显示第三方应用
-i: 显示应用的 installer
-u: 包含已卸载应用
[FILTER]: 包名包含 [FILTER] 字符串
8、查看当前界面应用包名和当前活动名
adb shell dumpsys window | findstr mCurrentFocus
9、打开应用界面,关闭应用
adb shell am start com.android.cts.verifier/com.android.cts.verifier.CtsVerifierActivityadb shell am force-stop com.android.cts.verifier
10、adb shell input命令
输入文本(不支持中文、空格、特殊字符):
adb shell input text "www.bing.com"
输入键值,详见常用键值表:返回:
adb shell input keyevent 4
确定:adb shell input keyevent 66
删除:adb shell input keyevent 67点击:
adb shell input tap 屏幕坐标(x y)
坐标获取方法:打开手机开发者选项里面的“指针位置(pointer location)”开关滑动(长按):
adb shell input swipe 屏幕坐标1(x y) 屏幕坐标2(x1 y1)
最后加一个参数,表示操作的时间ms,如:
从(500,600)滑动到(500,1600)总花费1000ms:adb shell input swipe 500 600 500 1600 1000
长按(1400,400) 900ms:adb shell input swipe 1400 400 1400 400 900