深入理解Android:Java虚拟机ART 读书笔记 以下内容均来自书中内容 建议看原书哦
ELF是Executable and Linkable Format的缩写,它是Unix(包括Linux这样的类Unix)平台上最通用的二进制文件格式。
c/.c++文件编译后得到的.o(或.obj)文件就是ELF文件。动态库.so文件是ELF文件。.o文件和.so文件链接后得到的二进制可执行文件也是ELF文件。
.oat是一种定制化的ELF文件,所以EFL文件是oat文件的基础,但是oat文件包含的内容和art虚拟机密切相关。
4.1 ELF文件格式介绍
ELF是Executable andLinkable Format的缩写。其名称中的“Executable”和“Linkable”表明ELF文件有两种重要的特性。
Executable:可执行。ELF文件将参与程序的执行(Execution)工作。包括二进制程序的运行以及动态库.so文件的加载。
Linkable:可链接。ELF文件是编译链接工作的重要参与者。
Linking View:链接视图,它是从编译链接的角度来观察一个ELF文件应该包含什么内容。
Execution View:执行视图,它是从执行的角度(可执行文件或动态库文件)来观察一个ELF文件应该包含什么信息。
4.1.1 ELF文件头结构介绍
ELF文件头结构前16个字节由e_ident数组描述。
todo:elf的东西太多了枯燥,以后再看吧