Научитесь использовать муравья.
http://developer.android.com/guide/developing/projects/projects-cmdline.html
В качестве базового примера вы можете создать файл build.xml из командной строки, внутри директории проекта с помощью
android update project -p ./
Затем вы можете сделатькаталог конфигурации и хранит некоторые элементы, такие как AndroidManifest.xml и Config.java, которые вы храните в своем пакете.Замените некоторые элементы токенами, например, build-appone.properties может прочитать
config.package_name=com.me.appone
config.some_var = "foobar"
, и ваши файлы в конфигурации будут иметь токены, заменяющие оригинальный текст, например, Config.java
...
public static final String FOO_BAR = "@CONFIG.SOME_VAR@";
...
Затем вы можете отредактировать свой build.xml и добавить пользовательские цели, например
<target name="-configapp">
<copy file="config/Config.java" todir="${source.dir}/com/me/appone/"
overwrite="true" encoding="utf-8">
<filterset>
<filter token="CONFIG.SOME_VAR" value="${config.some_var}"/>
</filterset>
</copy>
</target>
<target name="release-appone">
<loadproperties srcFile="build-appone.properties"/>
<antcall target="-configapp"/>
<antcall target="release"/>
</target>
, затем вы можете создать целевой выпуск-appone, запустив
ant release-appone
или щелкнув правой кнопкой мыши по build.xml, Run As -> 2. Задача Ant ..., затем выберите цель и нажмите кнопку запуска.
Дополнительную информацию о муравьях можно найти в паутинах.
AndroidManifest.xml
Стоит отметить, что если вы собираетесь переместить имя пакета, код версии и имя версии в файл build.properties и скопировать его в корневой каталог, используя фильтры из конфигурации/AndroidManifest.xml, вам нужно учитывать разные имена пакетов.Таким образом, нет относительных путей к действиям в манифесте, и вам также потребуется настроить цель -pre-compile для перемещения сгенерированной R.java в правильный каталог (на основе имени пакета) и использовать бит ant regex, чтобы исправить имя пакета вR.java, где -pre-compile - это уже существующая пустая цель, выделенная для вашего использования google
Обновление R.java
Чтобы обновить R.java,Вы хотите переопределить цель -pre-compile, найти R.java, переместить файл и использовать replaceregexp, чтобы соответствующим образом отредактировать имя пакета внутри файла.Вы можете искать документацию для каждого вызова муравья, чтобы настроить его в соответствии с вашими потребностями.Вот пример, который может содержать ошибки с некоторыми комментариями к соответствующим частям для дальнейшего чтения в документации по муравьям.
<target name="-pre-compile">
<echo>Fixing R.java</echo>
<!-- setup a prop for reuse that points to R.java containing dir -->
<property name="config.gen_pkg" value="${gen.absolute.dir}/com/me/dir"/>
<!-- this pulls a list of directories and assigns it to a refid via "id" -->
<dirset id="config.R_loc" dir="${config.gen_pkg}" includes="*"/>
<!-- this takes the refid and pushes it into a usable property -->
<property name="prop.R_loc" refid="config.R_loc"/>
<!-- now we move the file to where we want -->
<move file="${config.gen_pkg}/${prop.R_loc}/R.java" todir="${config.gen_pkg}"
overwrite="true" encoding="utf-8"/>
<!-- use regex to update the package name -->
<replaceregexp file="${config.gen_pkg}/R.java" match="^package com.*$"
replace="package com.correct.package.name" byline="true"/>
</target>
Вам, конечно, придется адаптировать это к вашим собственным обстоятельствам.