adb的全称为Android Debug Bridge.是android司机经常用到的工具
.
你能在本篇文章中学到什么?
- adb基本指令
- Shell AM&PM
- adb模拟用户事件
- logcat日志
- 常用节点
- 远程ADB
- 常用命令集
一. 基本指令
- 进入指定设备
adb -s serialNumber shell
- 查看版本
adb version
- 查看日志
adb logcat
- 查看设备
adb devices
- 连接状态
adb get-state
- 启动ADB服务
adb start-server
- 停止ADB服务
adb kill-server
- 电脑推送到手机
adb push local remote
- 手机拉取到电脑
adb pull remote local
二. adb shell下的am 与 pm
注:am和pm命令必须先切换到adb shell模式下才能使用
am
am全称activity manager,你能使用am去模拟各种系统的行为,例如去启动一个activity,强制停止进程,发送广播进程,修改设备屏幕属性等等。当你在adb shell命令下执行am命令:
am <command>
- 启动app
am start -n {packageName}/.{activityName}
- 杀app的进程
am kill <packageName>
- 强制停止一切
am force-stop <packageName>
- 启动服务
am startservice
- 停止服务
am stopservice
- 打开简书
am start -a android.intent.action.VIEW -d http://www.jianshu.com/
- 拨打10086
am start -a android.intent.action.CALL -d tel:10086
pm
pm全称package manager,你能使用pm命令去模拟Android行为或者查询设备上的应用等,当你在adb shell命令下执行pm命令:
pm <command>
- 列出手机所有的包名
pm list packages
- 安装/卸载
pm install/uninstall
三. 模拟用户事件
- 文本输入:
adb shell input text <string>
例:手机端输出demo字符串,相应指令:adb shell input "demo".
- 键盘事件:
input keyevent <KEYCODE>,其中KEYCODE见本文结尾的附表
例:点击返回键,相应指令: input keyevent 4.
- 点击事件:
input tap <x> <y>
例:点击坐标(500,500),相应指令: input tap 500 500.
- 滑动事件:
input swipe <x1> <y1> <x2> <y2> <time>
例:从坐标(300,500)滑动到(100,500),相应指令: input swipe 300 500 100 500.
例:200ms时间从坐标(300,500)滑动到(100,500),相应指令: input swipe 300 500 100 500 200.
循环 shell命令:
四. logcat日志
- 显示包含的logcat
logcat \| grep <str>
- 显示包含,并忽略大小写的logcat
logcat \| grep -i <str>
- 读完所有log后返回,而不会一直等待
logcat -d
- 清空log并退出
logcat -c
- 打印最近的count
logcat -t <count>
- 格式化输出Log,其中format有如下可选值:
logcat -v <format>
brief — 显示优先级/标记和原始进程的PID (默认格式)
process — 仅显示进程PID
tag — 仅显示优先级/标记
thread — 仅显示进程:线程和优先级/标记
raw — 显示原始的日志信息,没有其他的元数据字段
time — 显示日期,调用时间,优先级/标记,PID
long —显示所有的元数据字段并且用空行分隔消息内容
五. 常用节点
查看节点值,例如:cat /sys/class/leds/lcd-backlight/brightness
修改节点值,例如:echo 128 > sys/class/leds/lcd-backlight/brightness
- LPM:
echo N > /sys/modue/lpm_levels/parameters/sleep_disabled
- 亮度:
/sys/class/leds/lcd-backlight/brightness
- CPU:
/sys/devices/system/cpu/cpu0/cpufreq
- GPU:
/sys/class/ kgsl/kgsl-3d0/gpuclk
- 限频:
cat /data/pmlist.config
- 电流:
cat /sys/class/power_supply/battery/current_now
- 查看Power:
dumpsys power
- WIFI :
data/misc/wifi/wpa_supplicant.conf
- 持有wake_lock:
echo a> sys/power/wake_lock
- 释放wake_lock:
echo a> sys/power/wake_unlock
- 查看Wakeup_source:
cat sys/kernel/debug/wakeup_sources
- Display(关闭AD):
mv /data/misc/display/calib.cfg /data/misc/display/calib.cfg.bak 重启
- 关闭cabc:
echo 0 > /sys/device/virtual/graphics/fb0/cabc_onoff
- 打开cabc:
echo 3 > /sys/device/virtual/graphics/fb0/cabc_onoff
- systrace:
sdk/tools/monitor
- 限频:
echo /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq 1497600
- 当出现read-only 且 remount命令不管用时:
adb shell mount -o rw,remount /
- 进入9008模式:
adb reboot edl
- 查看高通gpio:
sys/class/private/tlmm 或者 sys/private/tlmm
- 查看gpio占用情况:
sys/kernle/debug/gpio
六. 远程ADB
为避免使用数据线,可通过wifi通信,前提是手机与PC处于同一局域网
启动方法:
adb tcpip 5555 //这一步,必须通过数据线把手机与PC连接后再执行 adb connect <手机IP>
停止方法:
adb disconnect //断开wifi连接 adb usb //切换到usb模式
七. 常用操作示例
- 查看当前
ls
- 打印当前路径
pwd
- 查看当前连接的设备
adb devices
- 终止adb服务进程
adb k