gpt4 book ai didi

java - Android 使用什么编译器?我可以更改它吗?

转载 作者:行者123 更新时间:2023-11-30 05:58:29 25 4
gpt4 key购买 nike

当我在 Eclipse 中编译 Android 项目时,它不会生成任何 Ant 脚本或任何内容,因此我假设它使用 Eclipse 编译器生成 .class 文件,并使用 dx将它们转换为 .dex。所以没关系,我知道 Eclipse 编译器与 javac 不同。并且无法更改。

但是当我使用android时生成 build.xml文件中,我看到它引用了其他 Ant 文件,最终我能够追踪到 javac 的实际调用。 。所以我有几个问题。

  1. 我是 Ant 新手。是否 <javac> Ant命令对应javac由我的JAVA_HOME引用环境变量?还是别的什么?
  2. 当您在 Eclipse 中使用“导出应用程序”选项时,它是否仍然使用 Eclipse 编译器?我是否总是被迫在 Ant 和 Eclipse 中使用不同的编译器?
  3. 如果我更改build.xml,我可以指定我想要的任何编译器吗?文件并更改“编译”目标?

我不太关心我使用的是什么编译器,我只是好奇。我要做的主要事情是确保我使用的是现代编译器,并且我可以期待所有常见的优化(例如字符串文字的驻留)。 我的假设正确吗?

附注说到优化,dx 确实如此吗?除了简单地将一个字节码转换为另一种字节码之外,还有什么更奇特的事情吗?

最佳答案

回答问题1,是的,它必须使用JAVA_HOME引用的那个。证据是:我可以使用 Ant 成功构建项目,我的 JAVA_HOME 设置为 c:\dev\tools\JDK6_20。我的路径包括c:\dev\tools\JDK6_20\bin。

我暂时将 JAVA_HOME 设置为不存在的 c:\dev\tools\JDK6_201。当我尝试 ANT 构建时,我得到:

构建失败C:\dev\projects\Eclipse\AndroidWorkspace\MapProject48\build.xml:390: 无法找到 javac 编译器;com.sun.tools.javac.Main 不在类路径中。也许JAVA_HOME没有指向JDK。当前设置为“C:\dev\tools\JRE\6_20_64bit”

我不知道它从哪里得到最后一行,我猜它一定是我的 JRE,因为它出现在注册表中。

我认为回答你的大胆问题:编译器和你的 JDK 中的 javac 一样现代

关于java - Android 使用什么编译器?我可以更改它吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4259236/

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