
ART
文章平均质量分 89
Jtag特工
代码和人工智能老兵
展开
-
ART世界探险(5) - 计算指令
我们分析一下ARM, ARM v7a, ARM64 v8a, x86, x86_64, mips, mips64和Java字节码的整数和浮点运算。原创 2016-07-24 22:19:18 · 2968 阅读 · 0 评论 -
ART世界探险(16) - 快速编译器下的方法编译
QuickCompiler下的Compile函数的主要流程原创 2016-09-07 21:02:32 · 1535 阅读 · 0 评论 -
ART世界探险(15) - CompilerDriver,ClassLinker,Runtime三大组件
CompilerDriver,ClassLinker,Runtime三大组件原创 2016-09-06 20:29:36 · 2411 阅读 · 0 评论 -
ART世界探险(14) - 快速编译器和优化编译器
ART的编译器为两种,一种是QuickCompiler,快速编译器;另一种是OptimizingCompiler,优化编译器。原创 2016-09-06 13:41:38 · 7497 阅读 · 0 评论 -
ART世界探险(13) - 初入dex2oat
对于大多数人来讲,dex2oat一直是个黑盒子。那么,这个盒子中到底是些什么东西呢,我们有了前面的java,指令集,还有一点点的编译原理的知识储备,终于可以打个开看个究竟了。原创 2016-09-05 13:33:35 · 5417 阅读 · 2 评论 -
ART世界探险(18) InlineMethod
下面我们正式开始分析InlineMethod将Dalvik字节码转成MIRGraph的过程原创 2016-09-12 21:08:18 · 1511 阅读 · 0 评论 -
ART世界探险(17) - 中层中间代码MIR
中层中间代码MIR原创 2016-09-12 18:17:40 · 1582 阅读 · 0 评论 -
ART世界探险(12) - OAT文件分析(2) - ELF文件头分析(中)
ELF中的section和segment原创 2016-08-04 20:17:30 · 1905 阅读 · 0 评论 -
ART世界探险(3) - ARM 64位CPU的架构快餐教程
前面我们说过,Dalvik如果没有JIT的话,可以做到架构无关,让Dalvik指令都解释执行。但是ART是AOT,要编译成针对芯片具体的机器指令。 所以,研究Dalvik的时候可以不用太关心目标指令,而我们研究ART必须对目前最流行的微处理器的架构有个基本的了解。原创 2016-07-22 16:48:46 · 3149 阅读 · 0 评论 -
ART世界探险(11) - OAT文件格式分析
既然是要探险,咱们就保持一定的深度,起码将来可以做个基于ART的黑客之类的。 所以我们针对细节多下一些工夫,先仔细分析一下OAT文件的格式。原创 2016-08-03 18:23:25 · 2676 阅读 · 0 评论 -
ART世界探险(10) - 异常处理
对于编译Java的话,有一个问题不能不考虑,就是异常处理的问题。异常处理是基于Java的语句块的,翻译成本地代码的话,需要针对这些指令的地址进行一下重排。 我们来看下ART是如何实现异常处理的。原创 2016-07-28 18:20:33 · 1983 阅读 · 3 评论 -
ART世界探险(8) - 面向对象编程
Java字节码是支持面向对象编程的,比如new和instanceof都是一条指令。它们被编成OAT之后变成了什么样子呢?另外,从这章开始,我们开始跟ART的源代码结合了原创 2016-07-26 17:01:47 · 1789 阅读 · 0 评论 -
ART世界探险(7) - 数组
Java中有专门处理数组相关的指令,并且有对越界检查等操作。这样,OAT编译出来的数组相关的代码,与本地C++写出的类似代码之间,就有了很大的不同。原创 2016-07-25 21:13:05 · 1370 阅读 · 0 评论 -
ART世界探险(6) - 流程控制指令
java, arm, mips, x86处理分支和循环的指令原创 2016-07-25 02:36:27 · 3928 阅读 · 0 评论 -
ART世界探险(9) - 同步锁
Java是一种把同步锁写进语言和指令集的语言。 从语言层面,Java提供了synchronized关键字。 从指令集层面,Java提供了monitorenter和monitorexit两条指令。下面我们就看看它们是如何实现的吧。原创 2016-07-26 21:48:42 · 1219 阅读 · 0 评论 -
ART世界探险(19) - 优化编译器的编译流程
前面,我们对于快速编译器的知识有了一点了解,对于CompilerDriver,MIRGraph等都有了初步的印象。 下面,我们回头看一下优化编译器的编译过程。原创 2016-09-21 11:12:46 · 2287 阅读 · 0 评论