當我在Eclipse中編譯一個Android項目時,它不會生成任何Ant腳本或任何內容,所以我假設它使用Eclipse編譯器生成.class文件,並使用dx
將這些文件翻譯爲.dex。所以這很好,我知道Eclipse編譯器與javac
不同,不能更改。Android使用什麼編譯器,我可以改變它嗎?
但是,當我使用android
生成build.xml
文件時,我看到它引用了其他Ant文件,最終我能夠追蹤到javac
的實際調用。所以我對此有幾個問題。
- 我是一個螞蟻新手。
<javac>
Ant命令是否對應於由我的JAVA_HOME
env變量引用的javac
?或者是別的什麼? - 當您在Eclipse中使用「導出應用程序」選項時,它是否仍然使用Eclipse編譯器?我會一直被迫在Ant和Eclipse中使用不同的編譯器嗎?
- 如果我更改
build.xml
文件並更改「編譯」目標,我可以指定我想要的任何編譯器嗎?
我真的不太關心我使用的編譯器,我只是好奇。我所追求的主要目的是確保我使用的是現代編譯器,並且我可以期待所有常見的優化(例如字符串文字的實習)。 我是否正確地承認這一點?
P.S.談到優化,dx
做什麼比僅僅將一個字節碼轉換爲另一個更花哨?
源文件首先編譯爲java字節碼。據我所知,這是用你安裝的任何JDK完成的,而不是通過eclipse本身。然後通過android sdk工具(可能是dx)將java字節碼轉換爲Dalvik字節碼。 – 2010-11-23 18:25:46
通常的做法是設置%JAVA_HOME%ant%ANT_HOME%的環境變量並將%JAVA_HOME%\ bin和%ANT_HOME%\ bin添加到您的路徑。據我所知,Eclipse沒有單獨的'javac'。它只是一個支持多種語言的IDE。您將%JAVA_HOME%設置爲您的JDK,而不是JRE – NickT 2010-11-23 18:31:12