android art elf和Linux elf文件之间有什么区别?
艺术维基中已对其进行了描述: ,该ART在安装时将apk文件编译为ELF文件 GNU/Linux上的GCC也会创建ELF文件作为输出,而不是.out格式 我知道两种环境中的API和Architectural都有差异,但这两种格式在结构上或其他方面是否有显著差异android art elf和Linux elf文件之间有什么区别?,android,linux,gcc,runtime,elf,Android,Linux,Gcc,Runtime,Elf,艺术维基中已对其进行了描述: ,该ART在安装时将apk文件编译为ELF文件 GNU/Linux上的GCC也会创建ELF文件作为输出,而不是.out格式 我知道两种环境中的API和Architectural都有差异,但这两种格式在结构上或其他方面是否有显著差异 如果架构相同(android已经移植到x86),那么这些格式彼此兼容吗 或者这两种文件格式完全不同?自制说明:在中,您可以发现“文件实际上嵌入在ELF对象文件中”(在PDF的第16页,您可以看到OAT结构)。文件结构与上的相同。这是可能的
如果架构相同(android已经移植到x86),那么这些格式彼此兼容吗 或者这两种文件格式完全不同?自制说明:在中,您可以发现“文件实际上嵌入在ELF对象文件中”(在PDF的第16页,您可以看到OAT结构)。文件结构与上的相同。这是可能的,因为“在设计上是灵活和可扩展的,并且它不受任何特定处理器或体系结构的约束” From:使用Android运行时(ART),这是自Android 5.0“棒棒糖”以来的默认设置,所有应用程序在安装时都编译成本地ELF二进制文件 结论:您的问题的答案是gcc elf和android elf是相同的文件格式。有关格式的更多信息,请参见 更新 如果架构相同,这些格式是否相互兼容
对于android oat文件(通过我的一个应用程序进行检查)显示oat文件类型为“DYN(共享对象文件)”。它类似于.so文件,所以如果您的项目使用JNI libs,您可以看到这些文件。由于“bionic的系统库函数和动态链接器”(在android中使用),这些elf文件与通常的GNU/Linux elf文件不兼容,即使它们是为相同的体系结构构建的。您可以找到有关它们不兼容原因的更多说明。仿生开启。如果架构相同(android已移植到x86),这些格式是否相互兼容?。。该问题尚未回答。我在问题更新中添加了更多内容(没有在评论中发布,因为我试图添加更多描述,这在评论中看起来很尴尬)。解释是6:30-10:00