adb 常用命令及操作

获取序列号:

adb get-serialno

查看连接计算机的设备:

adb devices

重启机器:

adb reboot

重启到bootloader,即刷机模式:

adb reboot bootloader

重启到recovery,即恢复模式:

adb reboot recovery

查看设备内所有apk对应的包名和路径:adb shell pm list package -f

将系统所有当前运行的activity(程序)输出到本地目录:
adb shell dumpsys activity >D:\APP\Android\namelog.txt

查看log:

adb logcat

使用V、D、I、W、E、F、S优先级标记进行过滤
V —— Verbose 明细(最低优先级)
D —— Debug 调试
I —— Info 信息
W —— Warn 警告
E —— Error 错误
F —— Fatal 严重错误
S —— Silent 无记载(最高优先级,没有什么会被记载)

[adb] logcat [<option>] ... [<filter-spec>] ..
-b <buffer> 加载一个可使用的日志缓冲区供查看,比如event 和radio . 默认值是main 。具体查看Viewing Alternative Log Buffers.
-c 清楚屏幕上的日志.
-d 输出日志到屏幕上.
-f <filename> 指定输出日志信息的<filename> ,默认是stdout .
-g 输出指定的日志缓冲区,输出后退出.
-n <count> 设置日志的最大数目<count> .,默认值是4,需要和 -r 选项一起使用。
-r <kbytes> 每<kbytes> 时输出日志,默认值为16,需要和-f 选项一起使用.
-s 设置默认的过滤级别为silent.
-v <format> 设置日志输入格式,默认的是brief 格式

where <tag> is a log component tag (or * for all) and priority is:
V Verbose
D Debug
I Info
W Warn
E Error
F Fatal
S Silent (supress all output)

'*' means '*:d' and <tag> by itself means <tag>:v

终止adb服务进程:

adb kill-server

重启adb服务进程:

adb start-server

获取机器MAC地址:

adb shell cat /sys/class/net/wlan0/address

获取CPU序列号:

adb shell cat /proc/cpuinfo

安装APK:

adb install <apkfile> //比如:adb install baidu.apk

多个设备时安装apk:adb -s 虚拟设备名称install 本地路径.apk

保留数据和缓存文件,重新安装apk:

adb install -r <apkfile> //比如:adb install -r baidu.apk

安装apk到sd卡:

adb install -s <apkfile> // 比如:adb install -s baidu.apk

卸载APK:

adb uninstall <package> //比如:adb uninstall com.baidu.search

卸载app但保留数据和缓存文件:

adb uninstall -k <package> //比如:adb uninstall -k com.baidu.search

启动应用:

adb shell am start -n <package_name>/.<activity_class_name>

/proc/sys/vm/drop_caches 清除一下系统cache

查看设备cpu和内存占用情况:

adb shell top

top -d 1 | grep 【包名】 每一秒打印一次内存使用情况。

查看占用内存前6的app:

adb shell top -m 6

刷新一次内存信息,然后返回:

adb shell top -n 1

查询各进程内存使用情况:

adb shell procrank

杀死一个进程:

adb shell kill [pid]

查看进程列表:

adb shell ps

查看指定进程状态:

adb shell ps -x [PID]

查看后台services信息:

adb shell service list

查看当前内存占用:

adb shell cat /proc/meminfo

查看IO内存分区:

adb shell cat /proc/iomem

将system分区重新挂载为可读写分区:

adb remount

从本地复制文件到设备:

adb push <local> <remote>

从设备复制文件到本地:

adb pull <remote> <local>

列出目录下的文件和文件夹,等同于dos中的dir命令:

adb shell ls

进入文件夹,等同于dos中的cd 命令:

adb shell cd <folder>

重命名文件:

adb shell rename path/oldfilename path/newfilename

删除system/avi.apk:

adb shell rm /system/avi.apk

删除文件夹及其下面所有文件:

adb shell rm -r <folder>

移动文件:

adb shell mv path/file newpath/file

设置文件权限:

adb shell chmod 777 /system/fonts/DroidSansFallback.ttf

新建文件夹:

adb shell mkdir path/foldelname

查看文件内容:

adb shell cat <file>

查看wifi密码:

adb shell cat /data/misc/wifi/*.conf

清除log缓存:

adb logcat -c

查看bug报告:

adb bugreport

获取设备名称:

adb shell cat /system/build.prop

查看ADB帮助:

adb help

跑monkey:

adb shell monkey -v -p your.package.name 500

获取当前运行的产品包名:adb shell dumpsys window w |findstr \/ |findstr name=

按键事件
input text <string> input a string to device
input keyevent <event_code> send a Key Event to device
如: adb shell input keyevent 26 (PowerKey)

从电脑上发送文件到设备
  adb push <本地路径> <远程路径>
  用push命令可以把本机电脑上的文件或者文件夹复制到设备(手机)
如: adb push /local/build.prop /system/build.prop

从设备上下载文件到电脑
  adb pull <远程路径> <本地路径>
  用pull命令可以把设备(手机)上的文件或者文件夹复制到本机电脑
如: adb /system/build.prop /local/

同步更新
adb sync [ <directory> ]
如果不指定目录,将同时更新 /data 和 /system/
如: adb sync /data/

adb 查看最上层的activity名称
linux:

adb shell dumpsys activity | grep "mFocusedActivity"

windows:

adb shell dumpsys activity | findstr "mFocusedActivity"

mFocusedActivity: ActivityRecord{6b00fff u0 com.rrcm.rrearn/.mvp.ui.activity.W0_WelcomeActivity t5724}

上一篇:使用拷贝的方式(adb push) 绕过Android系统和adb install直接安装APK


下一篇:[Selenium] 搭建 Android WebDriver 环境