1. Debugging
1.1 adb devices
列出设备。
1.2 adb start-server
启动服务。
1.3 adb kill-server
结束服务。
1.4 adb wait-for-device
一直等待设备连接。
block until device is online.
2. Package Manager
2.1 adb install app.apk
2.2 adb uninstall <pkgname>
adb uninstall com.zhihu.android
2.3 adb shell pm list packages
打印所有的包。
- -f 查看文件关联
- -d (disabled)查看已禁用的包
- -e (enabled)已启用的包
- -s 系统包
- -3 第三方包
- -i 查看已安装的包
- -u 所有包,包括已卸载的包
- –user <USER_ID> The user space to query.用户空间的包。
2.4 adb shell pm path <PACKAGE>
打印指定包的apk路径。1
adb shell pm path com.zhihu.android
2.5 adb shell pm clear <PACKAGE>
adb shell pm path com.zhihu.android
清除数据和缓存。
3. File Manager
3.1 adb pull <remote> [local]
adb pull /target-file-path/filename.ext /localpath
3.2 adb push [local] <remote>
同pull。
adb push /localpath/filename.ext /target-path
3.3 adb shell
ls
- -a 不隐藏.开头的
- -i 给每个文件加上数字索引
- -s 以blocks为单位打印每个文件的大小
- -n 列出UIDs和GIDs
- -R 以递归方式列出子目录
cd
你懂的。rm
- -f 强制删除,且不提示。
- -r 以递归方式删除目录内容
- -d 删除目录,即使是非空(rm -d等于rmdir)
- -i 删除前提示
mkdir
mkdir [options]
直接创建
mkdir /sdcard/wtf
顺便加个权限
mkdir -m 777 /sdcard/wtf
根据需要创建父目录
mkdir -p /sdcard/wtf/sub1/sub2
touch
创建文件。
pwd
当前路径。
cp
cp /当前/test.txt /目标/demo.txt
还能顺便改个名
mv
mv /当前/tmp /目标/tmp
改名
mv /sdcard/wtf /sdcard/test
4. Network
4.1 netstat
1 | adb shell netstat |
↓↓↓↓↓1
2
3
4Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:5037 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:5555 0.0.0.0:* LISTEN
tcp 0 0 10.0.2.15:5555 10.0.2.2:54444 ESTABLISHED
4.2 ping
需要Ctrl+c结束1
adb shell ping www.baidu.com
4.3 netcfg
1 | 通过配置文件配置管理网络。 |
1 | # netcfg |
4.4 ip
show, manipulate routing, devices, policy routing and tunnels.
展示和操作路由、设备、路由规则和隧道。1
2
3
4
5ip [ OPTIONS ] OBJECT
OBJECT := { link | addr | addrlabel | route | rule | neigh | ntable |tunnel | tuntap | maddr | mroute | mrule | monitor | xfrm |netns | l2tp }
OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |-f[amily] { inet | inet6 | ipx | dnet | link } |-l[oops] { maximum-addr-flush-attempts } |-o[neline] | -t[imestamp] | -b[atch] [filename] |-rc[vbuf] [size]}
ip -f inet addr show wlan0 //WiFi的地址
4.5 reverse
手机跟电脑在不同网络的时候,电脑的本地API服务手机无法访问,reverse后,手机访问http://localhost:8000时,被路由到localhost:30001
adb reverse tcp:8000 tcp:3000
5. Logcat
1 | 打印日志数据到屏幕。 |
- adb logcat 直接打印Ctrl + c停止
- adb logcat *:V 最低优先级,只显示详细级别Verbose level
- *:D 只显示debug级别Debug level
- *:I info level
- *:W warning level
- *:E error level
- *:F 致命程度Fatal level
- *:S 最高优先级,不打印任何内容
1 | adb logcat -v <format> |
- adb logcat -v brief 显示发出消息的进程的优先级、标记和PID(默认格式)。
- adb logcat -v process 只显示PID。
- adb logcat -v tag 只显示优先级和标签。
- adb logcat -v raw 显示原始数据,没有其他元数据字段。
- adb logcat -v time 显示发出消息的进程日期,调用时间,优先级,标记和PID。
- adb logcat -v threadtime 同上,增加TID。
- adb logcat -v long 显示所有元数据字段,并用空格分割。
1 | adb logcat -b <Buffer> |
- adb logcat -b radio 只显示收音机和电话的消息缓冲区。
- adb logcat -b event 只看事件相关的缓冲区。
adb logcat -b main 默认
其他
- adb logcat -c 清除所有日志并退出
- adb logcat -d 将日志转储到屏幕并退出
- adb logcat -f test.log 将日志消息转入test.log
- adb logcat -g 打印指定日志并退出
- adb logcat -n
将最大旋转日志(rotated logs)设置为count - adb logcat -r
每kbytes输出旋转日志文件。最大默认值为4,用-r指定。 - adb logcat -s 将默认过滤器设置为静默,默认16,-f指定。
1 | 转储系统数据。 |
- adb shell dumpsys 直接查看
- adb shell dumpsys battery 直接查看
- adb shell dumpsys batterystats 为设备收集电池数据(android 5.0以上)
- adb shell dumpsys batterystats –reset 删除旧的数据。
1 | 转储状态。(dumps State) |
- adb shell dumpstate 直接查看
- adb shell dumpstate > state.logs 存入文件
6. Screen operation
6.1 screencap(截图)
1 | //截图 |
6.2 screenrecord[4.4+](录屏)
Android 4.4+版本支持。
录屏,Ctrl+c停止或3分钟或-time-limit设置的时间限制内自动结束。1
adb shell screenrecord [options] <filename>
- adb shell screenrecord /sdcard/wtf.mp4 默认设置直接录制。
- adb shell screenrecord –size
设置视频分辨率。1280x720 - adb shell screenrecord –bit-rate
设置视频的比特率,默认值为4Mbps,例如5Mbps参数为–bit-rate 5000000 /path/wtf.mp4 - adb shell screenrecord –rotate 设置最长录制时间,默认值180秒。
- adb shell screenrecord –verbose 将输出旋转90度。
7. system
7.1 adb root
用root权限重启adbd守护进程。(只能用于模拟器)adb root
7.2 adb sideload
flashing/restoring Android update.zip packages.
刷新/恢复安卓update.zip包。adb sideload <update.zip>
7.3 adb shell ps
跟Linux差不多。7.4 adb shell top
- top 显示CPU顶级进程。
- top -t 显示线程
7.5 adb shell getprop
通过安卓属性服务获取属性。1
2
3
4
5
6
7
8
9
10adb shell getprop
----输出----
[ro.secure]: [0]
[ro.allow.mock.location]: [1]
[ro.debuggable]: [1]
[persist.service.adb.enable]: [1]
[ro.kernel.qemu.gles]: [0]
[ro.kernel.qemu]: [1]
[ro.kernel.console]: [ttyS0]
[ro.kernel.android.qemud]: [ttyS1]
1 | //获取构建sdk版本 |
7.6 adb shell setprop
可以修改getprop可以获得的信息。
将adb端口设置为5555setprop service.adb.tcp.port 5555