adb基础命令学习随笔

adb学习随笔

|grep 不可用? 在adb shell以后可用
[] 可选项
<> 表示一段内容 * 匹配符 指所有对象
$ 则表示没有 root 权限

则表示已 root。

adb reboot 重启手机
adb命令的基本语法(多设备):
adb [-d|-e|-s ]
单设备:adb
-d 制定当前唯一通过USB连接的Android设备为命令目标
-e 制定当前唯一运行的模拟器为命令目标
-s 指定相应serialNumber号的设备模拟器为命令目标**

adb start-sever 启动
adb kill-server 停止
adb root 以root权限执行(最高权限)
adb shell 切换至手机执行,命令行提示符变为#
adb unroot

设备链接管理:
adb devices 获取设备列表
第一列为serialNumber(SN), 第二列为state状态
不同类设备 offline–设备未连接成功/无响应
有不同表达 device–设备已连接
no device–没有设备/模拟器链接

无线连接(需要借助USB线)
step1:将Android设备与要运行adb的电脑连接到同一个局域网,例如:同一个wifi
step2:将设备与电脑通过USB线链接
adb tcpip 5555 让设备再5555端口监听TCP/IP连接
断开USB连接
找到设备的IP地址
adb connect 通过IP地址连接设备
adb devices 显示:5555 device 则连接成功
adb disconnect 断开无线连接

无线连接(无需借助USB) 需root权限
step1:在Android设备上安装一个终端模拟器,下载地址https://jackpal.github.io/Android-Terminal-Emulator/
step2:同局域网
step3:终端模拟器运行
su
setprop service.adb.tcp.port 5555
step4:找到设备的IP地址
adb connect 通过IP地址连接设备
adb devices 显示:5555 device 则连接成功
adb disconnect 断开无线连接

查看应用列表
adb shell pm list packages [-f] …[–user USER_ID] [FILTER]
无 所有应用
-f 显示应用关联的apk文件
-d 只显示disabled的应用
-s 系统应用
-3 第3方应用
-i 显示应用的installer
-u 包含已卸载应用
FILTER 包名包含FILTER字符串

安装APK
adb install [-lrtsdg] <path_to_apk>
-l 将应用安装到保护目录/mnt/asec
-r 允许覆盖安装
-t 允许覆盖安装AndroidManifest.xml里application指定android:testOnly="true"的应用
-s 将应用安装到sdcard
-d 允许降级覆盖安装
-g 授予所有运行时权限

卸载apk (测试不正确)
adb uninstall
com.xxx.xxx

清除应用数据与缓存
adb shell pm clear
com.xxx.xx

查看前台activity
adb shell dumpsys activity activities |grep mFocusedActivity
查看正在运行的services
adb shell dumpsys activity services []
可以不完整,搜索出相关

#与应用交互
adb shell am start [options] 调起activity
(需查找INTENT对应命令)
adb shell am startservice [options] 调起service
adb shell am broadcast [options] 发送广播
adb shell am force-stop 强制停止应用
#发送广播: 不理解

文件管理
adb pull <设备里的文件路径> [电脑上的目录] 复制设备文件到电脑
#<设备里的文件路径> sdcard???
adb pull /data/anr/traces.txt f:/log.txt
意思是将手机上的traces.txt导出到电脑的f目录下 log.txt ,如果命令失效可采取以下曲线的导出的方式

1、adb shell
2、cat /data/anr/traces.txt > /mnt/sdcard/log/zz.txt //将traces.txt内容文件转移到设备中的mnt/sdcard/log/zz.txt文件中
3、exit
4、adb pull /mnt/sdcard/log/zz.txt f:/log.txt
5、adb shell dmesg ><存储路径> kernel层log adb catlog ><存储路径>

模拟按键/输入
在 adb shell 里有个很实用的命令叫 input,通过它可以做一些有趣的事情。
adb shell
input [] […]
[]:
mouse
keyboard
joystick
touchnavigation
touchpad
traceball
stylus
dpad
gesture
touchscreen
gamepad

text (Default: touchscreen) (光标处于某文本框时)
keyevent [–longpress] … (Default: keyboard)
tap (Default: touchscreen)
swipe [duration(ms)] (Default: keyboard) 左上角00
press (Default: trackball)
roll (Default: traceball)
查看keycode

查看日志
adb logcat -c 清空日志
adb shell dmesg ><存储路径> 内核日志
[adb] logcat [] … [] …
V Verbose (优先级最低,输出的最多)
D Debug
I Info
W Warning
E Error
F Fatal
S Silent (最高,啥也不输出)
按级别过滤日志,输出该级别以上的日志
adb logcat :W
adb logcat "
:W" 用于macOS
例:adb logcat ActivityManager:I MyApp:D *:S
表示输出 tag ActivityManager 的 Info 以上级别日志,输出 tag MyApp 的
Debug 以上级别日志,及其它 tag 的 Silent 级别日志(即屏蔽其它 tag 日志)。

日志格式
adb logcat -v
brief /():
process ()
tag /:
time /():
threadtime :
long [ : / ]

制定格式和过滤可以同时使用

查看设备信息
adb shell getprop ro.product.model 型号
adb shell dumpsys battery 电池
adb shell wm size 屏幕分辨率
adb shell wm density 屏幕密度
adb shell dumpsys displays 显示屏参数
其中 mDisplayId 为 显示屏编号,init 是初始分辨率和屏幕密度,app 的高度比 init
里的要小,表示屏幕底部有虚拟按键,高度为 1920 - 1794 = 126px 合 42dp。
adb shell settings get secure android_id android_id
adb shell dumpsys iphonesubinfo IMEI(device id)
adb shell
su
service call iphonesubinfo 1
adb shell getprop ro.build.version.release android系统版本
adb shell
ifconfig |grep Mask IP地址
wlan0
netcfg 局域网
adb shell cat /sys/class/net/wlan0/address Mac地址
adb shell cat /proc/cpuinfo cpu信息
adb shell cat /proc/meminfo 内存信息
adb shell cat /system/build.prop 硬件与系统属性
adb shell getprop <属性名> 查找属性名,获取

修改设置
adb shell wm size 480x1024 修改分辨率为480x1024
adb shell wm size reset 回复默认
adb shell wm overscan 0,0,0200 左上右下留白像素

关闭USB调试模式
adb shell settings put glabal adb_enabled 0
在手机上手动恢复,设置——开发者选项-android调试
adb shell settings put global policy_control 查键值

截图保存到电脑 --help
adb shell screencap -p >sc.png
adb shell screencap -p /sdcard/sc.png 存在设备里
adb pull /sdcard.png 导出
adb shell screenrecord /sdcard/filename.mp4 录制屏幕
adb pull /sdcard/filename.mp4
需要停止时按 Ctrl-C,默认录制时间和最长录制时间都是 180 秒

root权限
adb shell
su

mount 查看分区挂载 ?

查看连接过的wifi密码
adb shell
su
cat /data/misc/wifi/*.conf
ssid 即为我们在 WLAN 设置里看到的名称,psk 为密码,
key_mgmt 为安全加密方式。

开/关wifi
adb root
adb shell svc wifi enable
adb shell svc wifi disable

设置系统日期和时间
adb shell
su
date -s 20200920.132100

使用Monkey进行压力测试
adb shell monkey -p -v 500
表示向指定的应用程序发送500个伪随机事件

通过 sideload 更新系统
如果我们下载了 Android 设备对应的系统更新包到电脑上,那么也可以通过 adb 来完成更新。
以 Recovery 模式下更新为例:

重启到 Recovery 模式。
adb reboot recovery
在设备的 Recovery 界面上操作进入 Apply update from ADB。
通过 adb 上传和更新系统。
adb sideload <path-to-update.zip>

查看进程
adb shell ps
USER 所属用户
PID 进程ID
PPID 父进程ID
NAME 进程名

产看实时资源占用情况
adb shell top [ ] [] [ ] [] [ ]
-m num 最多显示多少个进程
-n num 刷新多少次后退出
-d num 刷新时间间隔(单位s,默认5s)
-s col 按某列排序(cpu,vss,rss,thr…)
-t 显示线程信息
-h 显示帮助文档

常用命令的简单 描述
cat 显示文件内容
cd 切换目录
chmod 改变文件的存取模式/访问权限
df 查看磁盘空间使用情况
grep 过滤输出
kill 杀死指定PID的进程
ls 列举目录内容
mount 挂载目录的查看和管理
mv 移动或重命名文件
ps 查看正在运行的进程
rm 删除文件
top 查看进程的资源占用情况

参考网址链接:link

刷机相关
adb reboot recovery 重启到Recovery模式
adb reboot 从recovery重启到Android
adb reboot bootloader 重启到fastboot模式
fastboot reboot 从fastboot模式重启

push 文件:
adb root
adb remount
adb disable-verity
adb push +拖动文件 +路径
adb reboot
再pull上来检查一下或者进shell检查

烧录.img文件:
adb reboot bootloader
fastboot flashing unlock 先解锁
fastboot flash boot xxx.img
fastboot flash dtbo xxx.img
fastboot -S 256M flash system/vendor
fastboot reboot

猜你喜欢

转载自blog.csdn.net/Fighting_gua_biu/article/details/112258045