码迷,mamicode.com
首页 > 移动开发 > 详细

android ART

时间:2015-12-17 19:11:37      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:

frameworks/native/cmds/installd/commands.c

APK在安装的过程中,会通过dex2oat工具生成一个OAT文件

 

art/runtime/oat_file.c

OatFile类,通过调用它的静态成员函数Open可以在本进程中加载OAT文件;

 OatFile类的静态成员函数OpenElfFile的;

OpenElfFile创建了一个OatFile对象后,就调用它的成员函数ElfFileOpen来执行加载OAT文件的工作;ElfFile类来手动加载参数file指定的OAT文件,实际上就是按照ELF文件格式来解析参数file指定的OAT文件,并且将文件里面的oatdata段和oatexec段加载到内存中来。我们可以将ElfFile类看作是ART运行时自己实现的OAT文件动态链接器。一旦参数file指定的OAT文件指定的文件加载完成之后,我们同样是通过两个导出符号oatdata和oatlastword来获得oatdata段和oatexec段的起止位置。同样,如果参数requested_base的值不等于0,那么就要求oatdata段必须要加载到requested_base指定的位置去;

OpenElfFile最后也是调用OatFile类的成员函数Setup来解析其中的oatdata段

android ART

标签:

原文地址:http://www.cnblogs.com/vendanner/p/5054901.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!