系统调试

串口调试

1. SecureCRT串口工具

将LKD3399开发板的Debug口连接到PC端的USB口,打开设备管理器获取USB Serial Port的端口号,如下图所示:

../_images/SecureCRT_list.png

2. Minicom串口工具

1、将LKD3399开发板的Debug口连接到主机端的USB口。

2、以root权限打开minicom: sudo minicom -s。

3、打开Minicom菜单:输入CTRL-A + z。

4、进入Minicom配置界面:输入“O”选择“cOnfigure Minicom”。

5、进入串口设置:选择“Serial port setup”。

6、设置串口设备:输入“A”,写入“/dev/ttyUSB0”,按回车确定。

7、禁止流控:输入“F”,按回车确定。

8、设置波特率:输入“E”,再输入“A”直到显示“Current 1500000 8N1”,然后回车确定。

9、保存设置:选择“Save setup as dfl”。

10、退出设置:选择“Exit”。

adb调试

Adb 介绍

Adb 是 Android Debug Bridge 的简称,是 Android 的命令行调试工具,可以完成多种功能,如跟踪系统日志、上传下载文件、安装应用等。

Adb 在 Windows 下的安装

  1. 安装 [Rockusb 驱动]。

  2. 下载 adb.zip,然后解压到 C:\adb

打开 cmd 窗口然后运行:

C:\adb\adb shell

若成功就会进入 adb shell 。

Adb 在 Ubuntu 下的安装

  1. 安装 adb 工具:

    sudo apt-get install android-tools-adb
    
  2. 添加设备 ID:

    mkdir -p ~/.android
    vi ~/.android/adb_usb.ini
    # add the following line:
    0x2207
    
  3. 为非 root 用户添加 udev 规则:

    sudo vi /etc/udev/rules.d/51-android.rules
    # add the following line:
    SUBSYSTEM=="usb", ATTR{idVendor}=="2207", MODE="0666"
    
  4. 重载 udev 规则:

    sudo udevadm control --reload-rules
    sudo udevadm trigger
    
  5. 普通用户下重启 adb:

    sudo adb kill-server
    adb start-server
    

然后就可以直接使用 adb 了, 如:

adb shell

常用 Adb 命令

连接管理

列出所有连接设备以及它们的序列号:

adb devices

若没有多连接设备,就必须用序列号来区分:

export ANDROID_SERIAL=<device serial number>
adb shell ls

也可以用 TCP/IP 网络连接 Adb :

adb tcpip 5555

Adb 会在设备上重启并监听 5555 TCP 端口, 这个时候就可以拔出 USB 线了。

如果设备的 IP 地址为 192.168.1.100,执行以下命令连接:

adb connect 192.168.1.100:5555

一旦连接,就可以执行 adb 命令了:

adb shell ps
adb logcat

直到断开 adb 连接:

adb disconnect 192.168.1.100:5555

调试

查询系统日志

用法:

adb logcat [option] [Application label]

示例:

# 查看所有日志
adb logcat

# 仅查看部分日志
adb logcat -s WifiStateMachine StateMachine

收集 Bug 报告

adb bugreport 用来收集错误报告和一些系统信息。

adb bugreport

# 保存到本地,易于编辑和查看
adb bugreport >bugreport.txt

运行 shell

打开一个交互的 shell:

adb shell

执行 shell 命令:

adb shell ps

Apk 管理

安装 Apk
adb install [option] example.apk

选项:
-l 转发锁定
-r 重新安装应用程序以保留原始数据
-s 安装到SD卡而不是内部存储

示例:

# 安装 facebook.apk
adb install facebook.apk

# 升级 twitter.apk
adb install -r twitter.apk

若安装失败,检查下常见原因:

  • INSTALL_FAILED_ALREADY_EXISTS: 尝试添加 -r 参数再次安装。

  • INSTALL_FAILED_SIGNATURE_ERROR: APK 签名不一致,这可能是由于签名和调试版本的不同导致的。如果确认APK文件签名是正常的,可以使用 adb uninstall 命令卸载旧的应用程序,然后重新安装。

  • INSTALL_FAILED_INSUFFICIENT_STORAGE: 存储空间不够。

卸载 Apk
adb uninstall apk_name

示例:

adb uninstall com.android.chrome

apk 包的名称可以用下面的命令列出:

adb shell pm list packages -f
...
package:/system/app/Bluetooth.apk=com.android.bluetooth
...