Создание демо и полной версии приложения на основе одной базы кода / проекта

Я разработал одно приложение для Android в одном проекте с Eclipse - оно структурировано (пришло из iPhone), поэтому одна константа определяет, будет ли это демо или полная версия.

Теперь у меня проблема в том, что каждый раз, когда я хочу создать демо-версию, мне нужно изменить константу, но мне также нужно сделать копию проекта с другим именем пакета.

Очевидно, что изменение кода в оригинальной полной версии необходимо скопировать в демонстрационную версию, иначе мне придется повторять создание демонстрационного приложения каждый раз, когда я отправляю свое приложение.

Я вижу три возможных подхода:

1. Хотя я изучал библиотечные проекты, мне все еще неясно, как это действительно обеспечивает хорошее решение в этом случае.

Например, если у меня есть полная версия со структурой деятельности:

A1
A2
A3

используя служебные классы U1, U2

Конечно, U1 и U2 могут быть в проекте библиотеки и ссылаться на них из обоих проектов - но действия, strings.xml, графика, макеты должны дублироваться (или есть другой способ, которого я не вижу?) Это не похоже на быть хорошим путем вперед и, к сожалению, не было объяснено в подобных вопросах по этой теме, когда был предложен такой подход.

2. Другим способом было бы создание разных имен пакетов на основе разных настроек сборки (аналогично iPhone), однако это не представляется возможным в Eclipse, а не с использованием некоторых внешних скриптов (чего, честно говоря, я скорее избегаю, так как это кажется довольно подверженным ошибкам) в то время как компиляция также должна вызываться вне Eclipse

3. Вероятно, наиболее простой подход (а также в настоящее время с минимальными усилиями) состоит в том, чтобы просто вручную скопировать проект, изменить одну константу, переименовать пакет и скомпилировать / экспортировать каждый раз, когда я отправляю. Это - однако - кажется довольно "базовым" и, конечно, не выглядит профессионально (по сравнению с настройкой / целевым решением сборки iPhone / xCode)

Каков наилучший подход (требующий минимального количества изменений и при этом стабильный и простой в использовании)?

Большое спасибо!

РЕДАКТИРОВАТЬ

Для всех, кто пробовал решение Тима - оно работает нормально, однако я столкнулся с проблемой с пользовательскими атрибутами.

Проверь это:Как решить пользовательские атрибуты библиотек Android и переназначение имен пакетов во время сборки? это решит проблему для библиотек

Ответы на вопрос(3)

Ваш ответ на вопрос