1.ADB与Shell命令
1.1查看设备
列出设备及其id
adb devices
使用特定设备操作
adb -s device_id
例如:连接了多台设备,需要连接指定设备进行操作
adb -s 47db0de20304 shell
1.2 重启
正常重启
adb reboot
重启到bootloader(刷机模式)
adb reboot bootloader
重启到recovery(恢复模式)
adb reboot recovery
1.3查看版本设备
查看adb版本信息
adb version
查看设备型号
adb shell getprop ro.product.model
获取设备序列号
adb get-serialno
获取bug报告
adb bugreport
查看日志
adb logcat
查看屏幕分辨率
adb shell wm size
查看屏幕密度
adb shell wm density
查看系统内容使用情况
adb shell cat /proc/meminfo
1.4 包管理
指定绝对路径,把一个Android应用程序安装到一个虚拟机/设备。
adb install [option]
重新安装应用,保留数据和缓存文件
adb install -r [option]
将应用安装到SD卡上,而不是内部存储卡
adb install -s [option]
忽略版本号安装APK,正常情况下新应用的版本号需要大于已安装应用的版本号,否则在重启应用之后会恢复回旧版本
adb install -d [option]
从设备上卸载应用
adb uninstall [options]
在保留应用数据和缓存文件夹的前提下卸载应用。
adb uninstall -k [options]
打印所有包名
adb shell pm list packages
打印对应包名的apk应用路径
adb shell pm path
清除对应包名应用的所有数据(文件数据与缓存)
adb shell pm clear
通过主界面入口调起应用
adb shell am start
例如:
adb shell am start com.android.test/com.android.test.MainActivity
强制停止应用
adb shell am force -stop
使用adb发送广播
adb shell am broadcast [-a ] [-d ]
例如模拟开机广播发送
adb shell am broadcast -a android.intent.action.BOOT_COMPLETED
使用adb抓取Hprof文件,用于分析内存问题时使用,dump的文件路径一般配置在‘/data/local/tmp/‘目录下
adb shell am dumpheap
1.5 文件管理
从设备下载指定文件到电脑
adb pull [local]
示例:
adb pull /sdcard/demo.mp4 e:\
指定一个文件从电脑传输到设备
adb push
示例
adb push d:\test.apk /sdcard
打印文件目录下的内容
adb shell ls
cd .. #回到上一层目录
cd / #回到根目录
删除文件或文件夹
adb shell rm [options]
创建文件夹
adb shell mkdir
打印当前所处的工作目录
adb shell pwd
拷贝文件或目录
adb shell cp [options]
示例:
adb shell
cp /sdcard/test.txt /sdcard/demo.txt
移动或重命名文件
adb shell mv [options]
示例:
mv /sdcard/tmp /system/tmp #文件夹移动
mv /sdcard/tmp /sdcard/test #重命名
解压文件
adb shell unzip
示例
unzip /sdcard/test.zip -d /sdcard/tmp/
在控制台查看文件内容
adb shell cat
1.6 网络管理
测试网络连接情况
adb shell ping [-aAbBdDfhLnOqrRUvV] [-c count] [-i interval] [-I interface]
示例
ping www.google.com
网络连接参数查看及管理
adb shell netcfg
1.7 日志管理
在屏幕打印日志信息
adb logcat [option] [filter-specs]
示例:
adb logcat #直接在窗口打印日志信息
adb logcat *:V #打印最低优先级的日志
adb logcat *:D #过滤打印Debug级别日志
adb logcat *:S #过滤打印最高优先级日志
查看缓存日信息日志
adb logcat -b main
清空所有日志信息并退出
adb logcat -c
输出所有日志到窗口并退出
adb logcat -d
输出日志信息流到”test.logs“文件
adb logcat -f test.logs
打印系统数据
adb shell dumpsys [options]
打印系统所有内存相关信息
adb shell dumpsys meminfo
打印指定包名应用的内存信息
adb shell dumpsys meminfo
打印电量相关信息
adb shell dumpsys battery
打印系统Activity相关信息
adb shell dumpsys activity
同理包含intents、broadcasts,providers、permissions、services、activities、processes等
查看手机中当前界面是哪个Activity
adb shell dumpsys activity top | grep ACTIVITY
adb -d shell dumpsys activity activities | grep mResumedActivity
1.8 截屏处理
获取一个设备屏幕的截屏
adb shell screencap
示例
adb shell screencap /sdcard/screen.png #截屏并保存到“/sdcard/screen.png“路径:
adb pull /sdcard/screen.png #把截屏图片下载到电脑端:
获取一个设备的录屏
adb shell screenrecord [options]
示例:
adb shell screenrecord /sdcard/demo.mp4 #录屏并保存到”/sdcard/demo.mp4“文件,使用Ctrl-C终止录屏
adb pull /sdcard/demo.mp4 #从设备下载录屏文件到电脑
1.9 按键/输入模拟
模拟同步的按键或输入操作
adb shell input keyevent
$adb shell input keyevent 26 #电源键
$adb shell input keyevent 82 #菜单键
$adb shell input keyevent 3 #HOME 键
$adb shell input keyevent 4 #返回键
$adb shell input keyevent 24 #增加音量
$adb shell input keyevent 25 #降低音量
$adb shell input keyevent 164 #静音
$adb shell input keyevent 85 #播放/暂停
$adb shell input keyevent 86 #停止播放
$adb shell input keyevent 87 #播放下一首
$adb shell input keyevent 88 #播放上一首
$adb shell input keyevent 126 #恢复播放
$adb shell input keyevent 127 #暂停播放
$adb shell input keyevent 224 #点亮屏幕
$adb shell input keyevent 223 #熄灭屏幕
$adb shell input swipe 300 1000 300 500 #滑动解锁,向上滑动手势解锁
#参数 300 1000 300 500 分别表示起始点x坐标 起始点y坐标 结束点x坐标 结束点y坐标
$adb shell input text hello #焦点处于某文本框时输入文本
1.10 进程管理
列出进程列表及其pid
adb shell ps
杀死指定pid的进程
adb shell kill pid
查看指定进程信息
adb shell ps -x pid