Android下adb用法总结

本文详细介绍了Android调试桥(adb)的各种命令及其用法,包括设备管理、文件操作、系统权限修改、软件安装与卸载、日志查看、终端交互等功能,为开发者提供了一站式的adb使用指南。
adb devices查看检测到的设备 

adb shell进入shell终端 

adb remount使系统分区(system及一些自己定义的分区)具有读写权限

adb root获取管理员权限 

adb logcat查看logcat信息 

adb push xx /xxx复制一个文件或目录到设备或模拟器上 

adb pull /xxx/xx ./从设备中复制一个文件到当前目录 

adb install xxx.apk 安装apk到设备上 

adb uninstall apk包的主包名 删除一个apk 

adb logcat -s 标签名 查看每个标签名的输出信息 

adb logcat | grep MyApp adb log过滤 

adb logcat | grep -i myapp #忽略大小写。 

adb logcat -d -s xxx > xxx.log //得到filter为xxx的日志,存入xxx.log,然后返回 

adb shell busybox find -name xxx 查找节点,linux下文件系统下节点都是文件,
如果要查找某一节点(sysfs)的位置,可直接使用adb shell busybox find -name sysfs

adb shell cat /data/system/packages.xml|egrep “gallery3d”查找gallery3d这个apk所在路径

adb reboot 重启设备 

adb reboot bootloader 重启设备,并进入刷机模式 

adb reboot recovery 重启设备,并进入recovery模式 

通过adb shell进入终端后,可通过getprop查看一些设备属性,如Android版本,编译模式等,也可运行reboot bootloader,reboot recovery等。

由于Android对一些Linux命令和脚本进行了精简,可使用busybox +命令来运行脚本,如adb shell busybox find -name xxxx;

adb shell input keyevent  xxx  #该命令相当于按一下键盘的某一按键

adb shell input keyevent 4      # 返回
adb shell input keyevent 8      # for key '1'
adb shell input text "ANDROID" 

支持的KEYCODE

0 -->  "KEYCODE_UNKNOWN"
1 -->  "KEYCODE_MENU"
2 -->  "KEYCODE_SOFT_RIGHT"
3 -->  "KEYCODE_HOME"
4 -->  "KEYCODE_BACK"
5 -->  "KEYCODE_CALL" 
6 -->  "KEYCODE_ENDCALL" 
7 -->  "KEYCODE_0" 
8 -->  "KEYCODE_1" 
9 -->  "KEYCODE_2" 
10 -->  "KEYCODE_3"
11 -->  "KEYCODE_4" 
12 -->  "KEYCODE_5" 
13 -->  "KEYCODE_6" 
14 -->  "KEYCODE_7" 
15 -->  "KEYCODE_8" 
16 -->  "KEYCODE_9" 
17 -->  "KEYCODE_STAR" 
18 -->  "KEYCODE_POUND" 
19 -->  "KEYCODE_DPAD_UP" 
20 -->  "KEYCODE_DPAD_DOWN" 
21 -->  "KEYCODE_DPAD_LEFT" 
22 -->  "KEYCODE_DPAD_RIGHT"
23 -->  "KEYCODE_DPAD_CENTER" 
24 -->  "KEYCODE_VOLUME_UP" 
25 -->  "KEYCODE_VOLUME_DOWN" 
26 -->  "KEYCODE_POWER" 
27 -->  "KEYCODE_CAMERA" 
28 -->  "KEYCODE_CLEAR" 
29 -->  "KEYCODE_A" 
30 -->  "KEYCODE_B" 
31 -->  "KEYCODE_C" 
32 -->  "KEYCODE_D" 
33 -->  "KEYCODE_E" 
34 -->  "KEYCODE_F" 
35 -->  "KEYCODE_G" 
36 -->  "KEYCODE_H" 
37 -->  "KEYCODE_I" 
38 -->  "KEYCODE_J" 
39 -->  "KEYCODE_K" 
40 -->  "KEYCODE_L" 
41 -->  "KEYCODE_M"
42 -->  "KEYCODE_N" 
43 -->  "KEYCODE_O" 
44 -->  "KEYCODE_P" 
45 -->  "KEYCODE_Q" 
46 -->  "KEYCODE_R" 
47 -->  "KEYCODE_S" 
48 -->  "KEYCODE_T" 
49 -->  "KEYCODE_U" 
50 -->  "KEYCODE_V" 
51 -->  "KEYCODE_W" 
52 -->  "KEYCODE_X"
53 -->  "KEYCODE_Y" 
54 -->  "KEYCODE_Z" 
55 -->  "KEYCODE_COMMA" 
56 -->  "KEYCODE_PERIOD"
57 -->  "KEYCODE_ALT_LEFT" 
58 -->  "KEYCODE_ALT_RIGHT" 
59 -->  "KEYCODE_SHIFT_LEFT" 
60 -->  "KEYCODE_SHIFT_RIGHT" 
61 -->  "KEYCODE_TAB" 
62 -->  "KEYCODE_SPACE" 
63 -->  "KEYCODE_SYM" 
64 -->  "KEYCODE_EXPLORER" 
65 -->  "KEYCODE_ENVELOPE" 
66 -->  "KEYCODE_ENTER" 
67 -->  "KEYCODE_DEL" 
68 -->  "KEYCODE_GRAVE" 
69 -->  "KEYCODE_MINUS" 
70 -->  "KEYCODE_EQUALS" 
71 -->  "KEYCODE_LEFT_BRACKET" 
72 -->  "KEYCODE_RIGHT_BRACKET" 
73 -->  "KEYCODE_BACKSLASH" 
74 -->  "KEYCODE_SEMICOLON" 
75 -->  "KEYCODE_APOSTROPHE"
76 -->  "KEYCODE_SLASH" 
77 -->  "KEYCODE_AT" 
78 -->  "KEYCODE_NUM" 
79 -->  "KEYCODE_HEADSETHOOK" 
80 -->  "KEYCODE_FOCUS"
81 -->  "KEYCODE_PLUS"
82 -->  "KEYCODE_MENU"
83 -->  "KEYCODE_NOTIFICATION"
84 -->  "KEYCODE_SEARCH" 
85 -->  "TAG_LAST_KEYCODE" 

<think>好的,我现在需要帮助用户通过ADB查看蓝牙节点信息或调试方法。首先,我需要回忆ADB相关的命令以及Android系统下的设备节点结构。用户可能想通过ADB访问蓝牙相关的节点,比如sysfs中的文件,或者使用调试工具。首先,sysfs中的设备信息通常位于/sys/class或/sys/bus目录下。蓝牙可能属于rfkill或蓝牙子系统。例如,引用[3]中提到了i2c设备在/sys/bus/i2c/devices/下的结构,这可能是一个参考。用户可能需要类似的路径来查找蓝牙节点。接下来,可能需要检查蓝牙控制器是否已启用。使用ADB shell命令如`dumpsys bluetooth_manager`可以查看蓝牙服务状态。此外,使用`rfkilllist`可以列出无线设备,包括蓝牙的开关状态。 然后,用户可能需要访问HCI层的信息,使用hciconfig和hcitool命令。例如,`hciconfig-a`可以显示蓝牙适配器的详细信息,`hcitoollescan`可以扫描低功耗蓝牙设备。另外,内核日志dmesg和logcat中的蓝牙相关日志也很重要。用户可以通过`adb logcat -b all|grep -i bluetooth`来过滤日志,或者查看dmesg输出中的蓝牙初始化信息。 参考引用[1]中的usb_adb_init函数,可能与ADB的USB初始化有关,但用户现在关注的是蓝牙,可能需要不同的方法。引用[2]涉及环境变量配置,可能和工具链相关,但不确定是否直接相关。引用[3]中的sys目录结构示例可能帮助用户导航到蓝牙设备节点。 用户可能需要具体步骤,比如如何通过ADB访问蓝牙设备节点,如何启用调试日志,或者使用蓝牙调试工具。需要确保命令正确,并且考虑不同Android版本的可能差异。 最后,生成相关问题,比如关于蓝牙HCI日志、BLE调试、或ADB权限问题,帮助用户进一步探索。</think>### 通过ADB查看蓝牙节点信息及调试方法 #### 1. **查看蓝牙设备节点信息** 蓝牙设备在Android系统中的节点通常位于 `/sys/class/rfkill` 或 `/sys/bus/usb/devices` 下。通过以下命令遍历相关节点: ```bash adb shell ls -l /sys/class/rfkill # 查看射频设备(如蓝牙开关) adb shell ls -l /sys/bus/bluetooth # 蓝牙总线设备列表 adb shell ls -l /sys/module/bluetooth # 蓝牙内核模块信息 ``` 若设备使用USB蓝牙适配器,可检查USB设备列表: ```bash adb shell ls -l /sys/bus/usb/devices/*/product | grep -i bluetooth ``` #### 2. **获取蓝牙服务状态** 通过 `dumpsys` 命令查看蓝牙服务详细状态: ```bash adb shell dumpsys bluetooth_manager # 显示蓝牙开关状态、适配器信息等 ``` 若蓝牙未启用,可通过以下命令强制启用: ```bash adb shell service call bluetooth_manager 8 # Android 10+启用蓝牙 ``` #### 3. **调试蓝牙协议栈(HCI层)** 使用 `hcidump` 或 `btmon` 抓取蓝牙数据包(需root权限): ```bash adb shell btmon # 实时监控蓝牙HCI流量 adb shell hcidump -Xt # 以16进制显示数据包 ``` #### 4. **查看内核层蓝牙日志** 通过 `dmesg` 过滤蓝牙相关初始化及错误信息: ```bash adb shell dmesg | grep -i bluetooth ``` #### 5. **低功耗蓝牙(BLE)调试** 使用 `hcitool` 和 `gatttool` 进行BLE设备交互: ```bash adb shell hcitool lescan # 扫描附近BLE设备 adb shell gatttool -b <设备MAC地址> --interactive # 连接并读写特征值 ``` #### 6. **启用蓝牙详细日志** 修改系统属性以增加蓝牙日志级别: ```bash adb shell setprop persist.bluetooth.btsnoopenable true adb shell setprop persist.bluetooth.btsnooppath /sdcard/btsnoop_hci.log adb reboot # 重启生效 ``` 抓取的日志可通过 `adb pull /sdcard/btsnoop_hci.log` 导出分析[^1]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值