ADB(Android Debug Bridge)调试 一、Ubuntu adb 环境配置 1. 安装 adb 下载代码编译完成后,会在/home/apuser/6810_ts_code/out/host/linux-x 86/bin/生成 adb 文件,需要拷贝到/usr/bin 目录下,并更改权限。在终端运行 adb help,查看 adb 是否安装 成功。 命令: sudo cp /home/apuser/6810_ts_code/out/host/linux-x86/bin/adb sudo chmod a+x /usr/bin/adb adb help 2. 创建 spreadtrum usb 专有 VID 命令: [ -d ~/.android ] || mkdir ~/.android; echo 0x1782 >~/.android/adb_usb.ini 可以查看/home/apuser/.android/adb_usb.ini 是否生成成功,且内容为 0x1782 3. 添加列表到:/etc/udev/rules.d/51-android.rules 命令: cd /etc/udev/rules.d sudo vim /etc/udev/rules.d/51-android.rules 添加 SUBSYSTEM=="usb", SYSFS{idVendor}=="1782", MODE="0666" 其中 1782 为展讯设备号,也可以通过 lsusb 来查看所有 usb 设备。 不添加此文件会报错: 1.error: insufficient permissions for device (但可用 sudo adb <option>) 2.List of devices attached ???????????? no permissions /usr/bin
4. 手机侧配置 插入 USB 线后,在弹出 “USB 设定” 窗口选择 “USB 调试” 5. 如果上述设置无误,但是还是不能使用 adb,现象一般为:
执行 adb shell error: device not found 执行 adb devices List of devices attached 执行 lsusb 没有任何输出 则请检查 USB 线是否有问题/手机是否进入 sleep 模式。测试发现,手机线过长,可能 由于供电问题而导致连接不稳定;手机进入 sleep 模式(屏幕黑),也会连接不上。 二、adb 常用命令 adb devices 查看设备或模拟器(打开模拟器 declare -x ANDROID_PRODUCT_OUT=<img 所在路径>;
emulator 启动)
$ adb devices List of devices attached 19761202 device
emulator-5554 device adb -s <serialNumber> <command> adb start-server 打开 adb 服务 adb kill-server 关闭 adb 服务 adb push <local> <remote> adb pull <remote> [<local>] adb shell adb shell <command> adb logcat 把本地文件<local>上传到手机<remote>目录下 把手机<remote>文件下载到本地<local>目录下<remote> 打开一个 shell 运行一个 shell 命令 多设备选择
打印出 android log 信息
adb forward <local> <remote> 设置任意的端口号,作为主机向模拟器或设备通信端口 adb install <*.apk>
adb bugreport
安装 apk 包
adb uninstall < package> 卸载软件(package 获取/data/data) 查看 BUG 报告
三、adb 常用命令 基本的 linux 命令(如:ls,cat,chmod,dmesg ……) 特有的命令: getprop 查看机器的所有硬件参数
logcat 查看 android 打印的调试信息 logcat –b radio 打印出无线通讯日志
logcat -b events 查看和事件相关的的缓冲区 logcat -b main logcat *:V
sqlite3
查看主要的日志缓冲区(默认)
过滤输出 android LOG 信息(V,D,I,W,E,F,S) 访问 squlite3 数据库(ctrl+d 退出)
procrank 查看内存占用 VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存) RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存) PSS - Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存) USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)
dumpsys 显示系统数据信息 dumpsys wifi dumpsys cpuinfo 显示 wifi 信息 显示 cpu 信息
dumpsys meminfo com.android.launcher2 显示 launcher2 的内存使用情况
三、adb 常用命令 有时候会发现手机按任何键都没有反应,屏幕也不会刷新,通过 usb 连接到 pc, pc 也没有反应,俗称‘砖头’的情况, 可能是 kernel 发生了 panic。 现在加入了一个机制, 可以将 panic 时的 message 存储到 flash 上, 下次开机可以获 取出来。方法:
发生 panic 后, 重新开机: 1) adb pull /data/dontpanic/apanic_console 2) adb pull /data/dontpanic/apanic_threads 以上两个文件如果发生了 panic,就会有 log 存储下来。 3) adb pull /proc/last_kmsg (这个不一定有,只有在 reboot 的情况下才会有这个文件)