基于Android的Quick编译技术分析与优化
摘要 | 第5-6页 |
abstract | 第6页 |
第1章 绪论 | 第9-15页 |
1.1 研究背景和意义 | 第9-10页 |
1.2 国内外研究现状 | 第10-13页 |
1.2.1 国内研究现状 | 第11-12页 |
1.2.2 国外研究现状 | 第12-13页 |
1.3 论文的主要工作 | 第13-14页 |
1.4 论文的组织结构 | 第14-15页 |
第2章 Android虚拟机与其编译器研究 | 第15-25页 |
2.1 Android系统层级架构简介 | 第15-17页 |
2.1.1 应用程序层 | 第16页 |
2.1.2 应用程序框架层 | 第16页 |
2.1.3 系统运行库层 | 第16页 |
2.1.4 Linux内核层 | 第16-17页 |
2.2 Dalvik虚拟机与ART虚拟机 | 第17-22页 |
2.2.1 Android虚拟机概述 | 第17-18页 |
2.2.2 Dalvik虚拟机与JIT | 第18-20页 |
2.2.3 ART虚拟机与Quick | 第20-21页 |
2.2.4 Dex字节码 | 第21-22页 |
2.3 冗余数组边界检查消除 | 第22-23页 |
2.4 本章小结 | 第23-25页 |
第3章 Quick体系结构与设计原理分析 | 第25-41页 |
3.1 Quick总体功能及体系结构 | 第25-30页 |
3.1.1 dex2oat模块 | 第25-26页 |
3.1.2 Quick框架体系 | 第26-27页 |
3.1.3 Quick函数调用流程 | 第27-30页 |
3.2 前端架构及原理分析 | 第30-36页 |
3.2.1 前端功能 | 第30页 |
3.2.2 Dex字节码转MIR | 第30-31页 |
3.2.3 构造基本块 | 第31-32页 |
3.2.4 构建控制流图 | 第32-33页 |
3.2.5 SSA形式转换 | 第33-36页 |
3.3 后端架构及原理分析 | 第36-39页 |
3.3.1 后端功能 | 第36-37页 |
3.3.2 LIR生成 | 第37-38页 |
3.3.3 机器码生成 | 第38-39页 |
3.4 本章小结 | 第39-41页 |
第4章 部分冗余数组边界检查消除优化 | 第41-53页 |
4.1 Quick编译实例文件及分析 | 第41-44页 |
4.2 部分冗余数组边界检查消除算法简介 | 第44-46页 |
4.2.1 算法设计基本思路 | 第44-45页 |
4.2.2 算法流程简介 | 第45-46页 |
4.3 PABCE算法实现 | 第46-51页 |
4.3.1 循环识别与数组访问指令识别 | 第46-48页 |
4.3.2 循环体数据量定义与运算规则 | 第48-49页 |
4.3.3 索引表达式树建立 | 第49-50页 |
4.3.4 部分冗余数组边界检查消除 | 第50-51页 |
4.4 本章小结 | 第51-53页 |
第5章 测试与结果分析 | 第53-61页 |
5.1 实验软硬件环境 | 第53-54页 |
5.2 测试用例设计与结果分析 | 第54-59页 |
5.2.1 测试用例设计 | 第54-56页 |
5.2.2 测试结果分析 | 第56-59页 |
5.3 本章小结 | 第59-61页 |
结论 | 第61-63页 |
参考文献 | 第63-67页 |
攻读硕士学位期间发表的论文和取得的科研成果 | 第67-69页 |
致谢 | 第69页 |