| 摘要 | 第5-6页 |
| ABSTRACT | 第6页 |
| 第一章 绪论 | 第9-14页 |
| 1.1 研究背景 | 第9-10页 |
| 1.2 研究现状 | 第10-11页 |
| 1.3 研究内容 | 第11-12页 |
| 1.4 文章组织 | 第12-14页 |
| 第二章 相关技术 | 第14-27页 |
| 2.1 Android的分层结构 | 第14-19页 |
| 2.2 Dalvik虚拟机工作原理 | 第19-21页 |
| 2.3 JDI调试技术 | 第21-23页 |
| 2.4 Gdb调试技术 | 第23-26页 |
| 2.5 本章小结 | 第26-27页 |
| 第三章 Android应用Java层无源码调试器的设计与实现 | 第27-59页 |
| 3.1 Java层调试器的设计目标 | 第27-29页 |
| 3.2 Java层调试器的设计 | 第29-34页 |
| 3.2.1 总调试框架设计 | 第29-30页 |
| 3.2.2 事件管理模块设计 | 第30-32页 |
| 3.2.3 虚拟机请求发起器模块设计 | 第32-34页 |
| 3.2.4 数据管理模块设计 | 第34页 |
| 3.3 Java层调试器的实现 | 第34-52页 |
| 3.3.1 Activity启动功能的实现 | 第34-40页 |
| 3.3.2 建立连接功能的实现 | 第40-42页 |
| 3.3.3 Dex文件解析功能的实现 | 第42-47页 |
| 3.3.4 调试器状态管理模块的实现 | 第47-49页 |
| 3.3.5 断点的实现 | 第49-51页 |
| 3.3.6 Dalvik寄存器观察模块的实现 | 第51-52页 |
| 3.4 实验测试与结果验证 | 第52-57页 |
| 3.5 本章小结 | 第57-59页 |
| 第四章 Android应用Native层无源码调试器的设计与实现 | 第59-86页 |
| 4.1 Native层调试器的设计目标 | 第59-60页 |
| 4.2 Native层调试器的设计 | 第60-61页 |
| 4.3 Native层被调试端的实现 | 第61-71页 |
| 4.3.1 Native模拟环境的实现 | 第61-64页 |
| 4.3.2 so文件信息模块的实现 | 第64-66页 |
| 4.3.3 JNI调用功能的实现 | 第66-68页 |
| 4.3.4 so文件加载模块的实现 | 第68-69页 |
| 4.3.5 配置文件结构 | 第69-71页 |
| 4.4 Native层调试端的实现 | 第71-79页 |
| 4.4.1 调试端主控制模块的实现 | 第71-72页 |
| 4.4.2 启动调试进程功能的实现 | 第72-74页 |
| 4.4.3 JNI扩展功能的实现 | 第74-79页 |
| 4.5 实验测试与结果验证 | 第79-84页 |
| 4.6 本章小结 | 第84-86页 |
| 第五章 结论 | 第86-88页 |
| 致谢 | 第88-89页 |
| 参考文献 | 第89-91页 |