gpt4 book ai didi

java - Java 是否存在通用或 "fat"类文件?

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:55:09 25 4
gpt4 key购买 nike

A fat binary是一个二进制文件,可以在多个架构上运行。基本上,它由一个编译两次的程序组成,每个体系结构一次,然后写入同一个文件。最著名的例子可能是 Apple 的“通用”二进制文件,它允许为 Intel 和 Power PC 架构编译程序,并从同一个可执行文件运行。

这对 Java 来说从来都不是问题,因为 Java 在 JVM 上运行,允许它在任何支持 JVM 的计算机上运行。但是,Android现在很流行,而Android的VM(Dalvik),与JVM不兼容。有什么方法可以将代码编译两次,并创建一个可以由 JVM 和 Dalvik 执行的类文件?如果没有,这甚至可能吗?

最佳答案

回答:是。

您可以创建一个通用的 .jar 文件,其中包含 JVM 友好的 .class 文件和 Android 友好的 classes.dex 文件.如果您使用 --keep-classes 命令行选项,Android SDK 中包含的 dx 工具将发出此类文件。

请注意,虽然此类 .jar 文件可以在 JVM 和 Android 上使用,但以这种方式打包代码并不是很有用。 Android 应用程序打包为 .apk 文件,其中包含一个 Android list XML 文件。它们使用 JVM 上不可用的特定于 Android 的 API,例如 Activity

如果您想对库进行运行时类加载,通用的 .jar 文件将非常有用。

关于java - Java 是否存在通用或 "fat"类文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11765609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com