Я создаю приложение для Android в Eclipse и имею два похожих приложения, основанных на одной и той же базе кода, "London" и "UK". Чтобы создать каждое приложение, я просто переименовал основной пакет и изменил статический int в классе Application. Приложение использует значение этого int для отображения правильного пользовательского интерфейса, ограничения поведения пользователя и т.д.
У меня есть два файла значков, по одному для каждого приложения:
Есть ли способ условно использовать правильный файл значков для приложения и видов деятельности в зависимости от какой-либо настройки конфигурации проекта? В противном случае техническое обслуживание проекта увеличивается, так как мне придется менять свой манифест каждый раз, когда изменяется база кода, например
<application
android:icon="@drawable/icon_london"
...
>
<activity
android:name="com.company.MainActivity"
android:logo="@drawable/icon_london"
>
</activity>
... и так далее, для всех видов деятельности.
У меня была аналогичная проблема, и я закончил создание сценария custon Ant для создания приложений. Вы можете запускать макросы или регулярные выражения для назначения одного ресурса или другого.
РЕДАКТИРОВАТЬ:
Сначала добавьте build.xml в проект:
Откройте командную строку и перейдите в каталог вашего проекта:
android update project --path
Затем вы можете переопределить существующий файл build.xml, например, следующим образом.
ПРИМЕЧАНИЕ. Этот скрипт Ant является всего лишь примером, я его не тестировал:
<?xml version="1.0" encoding="UTF-8"?>
<project name="Example" default="help">
<property file="local.properties" />
<property file="ant.properties" />
<loadproperties srcFile="project.properties" />
<!-- quick check on sdk.dir -->
<fail
message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through an env var"
unless="sdk.dir"/>
<!-- IMPORT ANT?S BUILD.XML -->
<import file="${sdk.dir}/tools/ant/build.xml" />
<property name="app.icon" value="${icon}" />
<property name="icon.file" location="res/drawable/icon.png" />
<target name="test-release">
<antcall target="test-pre-release" />
<antcall target="release" />
</target>
<target name="test-pre-release">
<copy file="${app.icon}" tofile="${icon.file}" overwrite="true"/>
</target>
</project>
Затем, чтобы создать этот проект с помощью специального значка, откройте командную строку и перейдите в каталог проекта:
CALL ant -f build.xml test-release -Dicon=path/to/your/icon.png
Как сказано, это очень простой пример. Чтобы создать хороший скрипт, вам придется немного изучить синтаксис Ant, но это не сложно.