Когда я компилирую проект Android в Eclipse, он не генерирует никаких скриптов Ant или что-то еще, поэтому я предполагаю, что он использует компилятор Eclipse для генерации файлов .class и используя dx
для перевода их в .dex. Так что все в порядке, и я знаю, что компилятор Eclipse отличается от javac
и не может быть изменен.Какой компилятор использует Android, и я могу его изменить?
Но когда я использую android
для создания файла build.xml
, я вижу, что он ссылается на другие файлы Ant, и в итоге я могу отследить фактический вызов до javac
. Поэтому у меня есть несколько вопросов об этом.
- Я новичок в Ant. Выполняет ли команда
<javac>
Ant командуjavac
, на которую ссылается переменная envJAVA_HOME
? Или что-то еще? - Когда вы используете параметр «Экспорт приложения» в Eclipse, все еще использует компилятор Eclipse? Будет ли я всегда вынужден использовать другой компилятор в Ant против Eclipse?
- Могу ли я указать любой компилятор, который я хочу, если я изменил файл
build.xml
и изменил цель «скомпилировать»?
Мне все равно, какой компилятор я использую, мне просто интересно. Главное, что мне нужно, это убедиться, что я использую современный компилятор, и я могу ожидать всех обычных оптимизаций (например, интернирование строковых литералов). Правильно ли я принимаю это?
P.S. Говоря об оптимизации, делает dx
делать что-нибудь более фантастическое, чем просто перевод одного байт-кода в другой?
Исходные файлы сначала скомпилированы в java-байтовый код. Насколько я знаю, это было сделано с помощью любого JDK, который вы установили, а не с помощью самого затмения. Затем байт-код Java преобразуется в байтовый код Dalvik с помощью инструментов android sdk (возможно, dx) – 2010-11-23 18:25:46
Обычно принято устанавливать переменные среды% JAVA_HOME% ant% ANT_HOME% и добавлять% JAVA_HOME% \ bin и% ANT_HOME% \ bin в ваш дорожка. Насколько я знаю, для Eclipse нет отдельного «javac». Это просто среда, которая поддерживает многие языки. Вы устанавливаете% JAVA_HOME% вашему JDK, а не JRE – NickT 2010-11-23 18:31:12