| 摘要 | 第4-5页 |
| Abstract | 第5页 |
| 第一章 绪论 | 第9-13页 |
| 1.1 课题背景与意义 | 第9-10页 |
| 1.2 国内外研究现状 | 第10-11页 |
| 1.3 本文的主要内容和设计目标 | 第11-12页 |
| 1.4 论文组织 | 第12-13页 |
| 第二章 Android垃圾回收机制与用户体验 | 第13-25页 |
| 2.1 Android系统框架介绍 | 第13-14页 |
| 2.2 Dalvik虚拟机及其运行过程介绍 | 第14-17页 |
| 2.2.1 Dalvik字节码与dex文件 | 第15-16页 |
| 2.2.2 Dalvik虚拟机的启动过程介绍 | 第16-17页 |
| 2.3 自动内存管理技术 | 第17-21页 |
| 2.3.1 垃圾回收技术的发展 | 第17-21页 |
| 2.3.2 Dalvik中垃圾回收的特点 | 第21页 |
| 2.4 用户体验与影响用户体验的参数 | 第21-22页 |
| 2.4.1 垃圾回收对用户体验的影响 | 第21-22页 |
| 2.4.2 量化用户体验的参数 | 第22页 |
| 2.5 本章小结 | 第22-25页 |
| 第三章 Dalvik自动内存管理机制分析 | 第25-39页 |
| 3.1 Dalvik内存管理架构 | 第25-26页 |
| 3.1.1. Java堆的组织架构 | 第25-26页 |
| 3.1.2 内存管理中几个重要的数据结构 | 第26页 |
| 3.2 Dalvik虚拟机Java堆的创建过程分析 | 第26-30页 |
| 3.2.1 Zygote和Active堆的创建过程 | 第27-28页 |
| 3.2.2 位图及其创建过程 | 第28-29页 |
| 3.2.3 位图与堆的对应关系 | 第29-30页 |
| 3.3 Dalvik分配对象过程分析 | 第30-31页 |
| 3.3.1 渐进式分配对象 | 第30页 |
| 3.3.2 解释执行过程 | 第30-31页 |
| 3.4 Dalvik虚拟机垃圾收集过程分析 | 第31-38页 |
| 3.4.1 触发垃圾回收的条件 | 第31-32页 |
| 3.4.2 局部垃圾回收分析 | 第32-33页 |
| 3.4.3 并发垃圾收集分析 | 第33-35页 |
| 3.4.4 垃圾收集过程中的一些优化手段 | 第35-38页 |
| 3.5 本章小结 | 第38-39页 |
| 第四章 内存管理调度策略优化 | 第39-57页 |
| 4.1 原生垃圾回收调度策略的局限性 | 第39-41页 |
| 4.1.1 追踪对象申请和垃圾回收过程的设计与实现 | 第39-40页 |
| 4.1.2 对象申请和垃圾回收的瓶颈分析 | 第40-41页 |
| 4.2 U线程堆的设计与实现 | 第41-48页 |
| 4.2.1 实时优先级UI渲染 | 第42页 |
| 4.2.2 UI线程堆的创建 | 第42-44页 |
| 4.2.3 使用UI线程堆时机的选择 | 第44-46页 |
| 4.2.4 UI线程堆垃圾回收的设计 | 第46-47页 |
| 4.2.5 UI线程堆垃圾回收的实现 | 第47-48页 |
| 4.3 减少完全GC的设计与实现 | 第48-54页 |
| 4.3.1 产生GC的原因与其暂停时间的分析 | 第48-49页 |
| 4.3.2 使用堆目标利用率减少完全垃圾回收的设计 | 第49-52页 |
| 4.3.3 减少完全暂停垃圾回收的实现 | 第52-53页 |
| 4.3.4 紧急堆中垃圾回收的设计与实现 | 第53-54页 |
| 4.4 本章小结 | 第54-57页 |
| 第五章 实验结果与分析 | 第57-67页 |
| 5.1 实验的软硬件平台 | 第57-58页 |
| 5.1.1 实验的硬件平台 | 第57页 |
| 5.1.2 实验软件平台 | 第57-58页 |
| 5.1.3 测试方法与测试软件 | 第58页 |
| 5.2 用户体验量化方法定义 | 第58-59页 |
| 5.3 实验结果与分析 | 第59-64页 |
| 5.3.1 UI堆和URGENT堆大小的选择 | 第59-60页 |
| 5.3.2 UI堆对系统造成的影响与获得的收益 | 第60-62页 |
| 5.3.3 减少完全垃圾回收对用户体验带来的影响 | 第62-64页 |
| 5.4 本章小结 | 第64-67页 |
| 第六章 总结与展望 | 第67-69页 |
| 6.1 总结 | 第67页 |
| 6.2 展望 | 第67-69页 |
| 致谢 | 第69-71页 |
| 参考文献 | 第71-75页 |
| 攻读硕士学位期间发表的论文 | 第75页 |