adb 基础命令
#查看设备
有多个设备连接时,执行该命令列出每个设备的serialNumber,后续命令加-s 可指定执行命令的设备
adb devices
#手机上未安装该apk文件,运行此命令(不在同一目录下,需带路径)
adb install <Apk文件名>
#如手机上已经安装该apk,加-r参数重装
adb install -r <Apk文件名>
#卸载软件,加-k命令(卸载软件时可以保留配置和缓存文件)
adb uninstall [-k] <应用包名>
#把本地PC上的文件或者文件夹拷贝到设备
adb push <本地PC路径> <手机端路径>
#把设备上的文件或者文件夹拷贝到本地PC
adb pull <远程路径> <本地路径>
#启动adb服务
adb start-server
#杀死adb服务,结合启动命令,可以用来重启adb服务
adb kill-server
#重启手机
adb reboot
#进入设备的Linux命令行,可用来执行Linux命令
adb shell
#查看帮助手册
adb -h
Android下常用的shell命令
这些命令既可通过adb shell进入Linux命令行去执行,也可使用adb shell 直接加命令执行
我们通常直接使用adb shell 组合一些Linux常用命令去执行,而不是进入Linux命令行,这样会更加方便。如常见的cd、ls、mkdir、rm、mv、cat等
#即Linux下的top命令,查看设备cpu和内存情况
adb shell top
#查看占用内存前3的app
adb shell top -m 3
#查看进程列表
adb shell ps
#查看指定进程状态
adb shell ps -x [PID]
#杀死一个进程
adb shell kill [PID]
#查看后台services信息
adb shell service list
#查看所有系统的属性信息(同adb shell cat /system/build.prop)
adb shell getprop
#查看当前电量
adb shell dumpsys battery | grep level
关于Activity的命令
#查看当前界面的Activity
adb shell dumpsys activity activities | grep mFocusedActivity
#获取屏幕分辨率
adb shell wm size
#获取屏幕密度
adb shell wm density
#修改屏幕密度
adb shell wm density <数值>
录屏与截屏命令
#屏幕截图,并将截图保存到sd卡
adb shell screencap -p /sdcard/screenshot.png
#录制屏幕命令,将录屏以mp4格式保存到设备的sd卡 (/sdcard)
adb shell screenrecord /sdcard/filename.mp4
#bugreport参数使录屏增加一些时间信息和帧信息,可用来测试应用启动速度
adb shell screenrecord --bugreport /sdcard/filename.mp4
#size参数用于设置视频的尺寸,可调整录屏的大小
adb shell screenrecord --size 1280x720 /sdcard/filename.mp4
pm命令
#列出所有安装的应用的包名
adb shell pm list packages
#加-f参数,还可显示该apk文件的路径
adb shell pm list packages -f
#根据包名查看其apk文件的路径
adb shell pm path <包名>
#清除应用数据与缓存
adb shell pm clear <包名>
am命令
#列出所有的Activity任务栈信息
adb shell am stack list
#强制停止应用,可用于杀进程
adb shell am force-stop <包名>
#启动指定的 Activity
adb shell am start [options]
#启动 指定的 Service
adb shell am startservice [options]
#发送指定的广播
adb shell am broadcast [options]
dumpsys命令
Dumpsys命令可以说是最为强大的命令,它是用来拉取信息的,上述一些命令的功能,基本上用dumpsys命令都能获取,也正是因为过于强大,导致返回的信息过多,可使用的参数也过多,反而使用的不是特别多。
#拉取设备上所有安装应用的activity信息,其中包括包括#activity的布局层级、Fragment等等
adb shell dumpsys activity
#上述命令返回的信息量太过庞大,可以加p参数限制包名
adb shell dumpsys activity -p <包名>
#返回当前activity任务栈详细状态信息
adb shell dumpsys activity a
#具体堆栈状态信息
adb shell dumpsys activity activities