Пользовательская сборка Android с использованием Ant
Эти 4 файла (build.xml, local.properties, projects.properties, proguard.cfg) автоматически генерируются при запуске:
Проект обновления Android - имя TestApp --target 10 -p.
Обновлено project.properties
Обновлено local.properties
Добавлен файл. /build.xml
Обновлен файл. /proguard.cfg
Но я хочу, чтобы "auto-gen" build.xml также включал следующий код "pre-compile", есть ли способ сделать это? Есть ли какой-нибудь файл "include" или "шаблон", который может включать это?
<target name="config">
<property name="config-target-path" value="${source.dir}/com/androidengineer/antbuild"/>
<!-- Copy the configuration file, replacing tokens in the file. -->
<copy file="config/Config.java" todir="${config-target-path}"
overwrite="true" encoding="utf-8">
<filterset>
<filter token="CONFIG.LOGGING" value="${config.logging}"/>
</filterset>
</copy>
</target>
Ответы
Ответ 1
build.xml
, созданный инструментом android
(по крайней мере, при использовании Android SDK r20) содержит этот фрагмент кода:
<!--
Import per project custom build rules if present at the root of the project.
This is the place to put custom intermediary targets such as:
-pre-build
-pre-compile
-post-compile (This is typically used for code obfuscation.
Compiled code location: ${out.classes.absolute.dir}
If this is not done in place, override ${out.dex.input.absolute.dir})
-post-package
-post-build
-pre-clean
-->
<import file="custom_rules.xml" optional="true" />
Итак, что я делаю для создания дополнительных целей или для настройки существующих целей, нужно создать файл custom_rules.xml
с этими новыми целями. Обратите внимание, что в моих тестах целевые объекты должны быть вложены в тег <project>
, поэтому просто скопируйте первые две строки вашего сгенерированного build.xml
в custom_rules.xml
и не забудьте о закрытии тега </project>
в конец. Поскольку custom_rules.xml
не будет перезаписано android update
, ваши изменения будут постоянными и могут быть проверены в выбранном вами инструменте SCM.
Ответ 2
Возможно, вы можете проверить ответ на этот вопрос:
Плагин ADT автоматически создает файл сборки ant?
в ответе есть абзац, говорящий...
Кроме того, вы можете просто скопировать шаблон build.xml непосредственно из $ANDROID_HOME/tools/lib/build.template, а затем просто изменить название проекта.
Измените этот файл и запустите команды, чтобы увидеть, работает ли он.
Обновление
Также проверьте "Настройка сборки" этой статьи: http://www.androidengineer.com/2010/06/using-ant-to-automate-building-android.html
Ответ 3
В build.xml
, он сообщает вам, как это сделать. См. Следующий комментарий из файла:
<!--
***********************
****** IMPORTANT ******
***********************
In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
in order to avoid having your file be overridden by tools such as "android update project"
-->
<!-- version-tag: 1 -->