Android AOSP单步调试与效率提升

源码级单步调试的效率提升,排错更干脆。你能看见每一行跑到哪,变量怎么变。遇到玄学问题也不慌,停住看一眼,思路就顺。

编译完成的 AOSP 产物在 out/target/product/generic,常用镜像有 system.img、ramdisk.img、userdata.img,好找还好记。

模拟器启动的命令行比较简单,指定三块镜像就行。端口别占用,CPU 虚拟化开着,响应也快。常用写法放下面,你拷贝就能跑:

emulator -system system.img -userdata userdata.img -ramdisk ramdisk.img

IDE 导入源码的姿势挺随意,Android Studio 和 Eclipse 都还不错。走老路配 DDMS,新路用远程调试,哪个顺手用哪个。

远程调试的关键是 JDWP。类型选 Socket Attach,主机写 localhost,端口常见 8616 或 8700,连上就能断点。

源码映射要加全,点 Source 把 AOSP 目录加进来。嗯,断点命中后多看调用栈,参数变化也盯一眼,异常能提前暴露。

日志联动蛮香,logcat 过滤包名,信噪比高。性能抖动?看方法耗时,必要时加 Trace 标记,定位更快。

进阶建议也补上:想追 native 层,用 lldb 或 gdbserver;连不上端口,试试 adb forward tcp:8700 jdwp:;如果你想自动断点,就写脚本。

docx 文件大小:13.28KB