1. 基本方法:断点+单步
①快捷键与VC有差别
DEBUG:F11
加断点:Shift + Ctrl + B
Step Into: F5
Step Over: F6
Resume: F8
②可以选择设备,模拟器和真机都可以使用
2. 进阶:DDMS使用
①功能强大
可以进行手机屏幕截图、查看文件系统、看LOG等。
②模拟器可以模拟打电话、发短信等基本功能
二. Target的编译和下载
1. Target的编译
./mk -h:帮助
./mk -lp:列出所有可编译的工程
./mk sp6820 n:new
./mk sp6820 u [Modules]:编译模块
./mk sp6820 u adr XXX/XXX:编译指定路径下的模块
2. Target的下载
①Window上使用ResearchDownload下载
② Ubuntu上使用fastboot下载
通过长按“HOME”键和“POWER”键,当手机屏上出现“fastboot mode”字样时,即进入了fastboot模式,连接电脑,执行如下命令:
sudo ./fastboot devices:列出所有连接上的设备
sudo ./fastboot erase Partition_Name :擦除相应模块
sudo ./fastboot flash Partition_Name Flash_File:下载相应模块
sudo ./fastboot reboot:重启手机
模块及对应.bin或.img文件如下所示:
2ndbl ----------- u-boot.bin
params----------- u-boot parameters
boot ------------ boot.img
recovery -------- recovery.img
system ---------- system.img
userdata -------- userdata.img
三. Target的调试
1.准备工作
①拷贝adb到usr/bin目录下,并修改可执行权限
sudo cp /home/apuser/6810_ts_code/out/host/linux-x86/bin/adb /usr/bin
sudo chmod a+x /usr/bin/adb
② 创建spreadtrum usb 专有VID
命令:
[ -d ~/.android ] || mkdir ~/.android; echo 0x1782
>~/.android/adb_usb.ini
可以查看/home/apuser/.android/adb_usb.ini是否生成成功,且内容为0x1782
③ 执行adb shell,看能否连接上手机
④ 如果发生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"
2. adb使用
① 基本命令
adb help:帮助
adb devices:列出所有设备
adb shell:使用设备上的shell, 查看设备文件系统,建议使用ash,有自动补齐功能
adb push:将电脑上的文件传到设备上
adb pull:将设备上的文件传到电脑上
② LOG抓取
代码中使用Log.v() Log.d() Log.i() Log.w() and Log.e()等接口来输出Android LOG,
使用printk来输出Kernel LOG。
连接adb shell后,使用如下命令抓取LOG
dmesg >/data/anr/kernel.log :开始抓kernel LOG
logcat *:V >/data/anr/Android.log :开始抓Android LOG
按ctrl+c停止输出log后,
adb pull /data/anr ./log/ :将Android.log和kernel.log 传到电脑上的log文件夹