Переключение пробных и профессиональных сборок с приложениями для Android в Eclipse: как сделать его менее болезненным? - PullRequest
14 голосов
/ 26 марта 2011

У меня есть приложение для Android, которое поставляется в двух формах: пробная версия и платная «про» версия. Две версии сосуществуют в Android Market и имеют разные имена пакетов (назовем их com.app.trial и com.app.pro). Они имеют одну и ту же кодовую базу. Когда мне приходится переключаться между пробной и профессиональной сборками в Eclispe, мне приходится тратить не менее 20 минут каждый раз на редактирование кода, чтобы он собрал правильную версию. Моя процедура выглядит так:

  1. Переименование имени пакета в AndroidManifest.xml (также переименуйте приложение versionName и versionCode).

  2. Нажмите на название основного пакета "com.app.pro" (если pro была самой последней сборкой, а теперь я хочу сделать пробную сборку) и выберите Refactor-> Rename (отметьте «Обновить ссылки» и «Переименовать» subpackages ') и пусть Eclipse сделает переименование.

  3. После этого наступает сложная часть: в моем коде многие файлы по-прежнему импортируют «старое» имя пакета, «com.app.pro», вместо того, чтобы автоматически изменяться на «com.app.trial». В некоторых случаях Eclipse добавляет эти ссылки во время переименования без видимых причин (в данном Java-файле нет ссылок на этот конкретный пакет). Я должен вручную редактировать все экземпляры.

Мой вопрос:

Как сделать эту процедуру менее трудоемкой? Я также использовал NetBeans, где есть удобная поддержка #ifdefs (иначе способностей), которая действительно делает переключение между сборками легким. Eclipse, к сожалению, не поддерживает (по крайней мере, не поддерживает) # ifdefs.

Любые предложения будут с благодарностью.

P.S. Для справки я использую Eclipse Ganymede версии 3.4.2, но также пробовал более новую версию, она делает то же самое.

1 Ответ

22 голосов
/ 26 марта 2011

Отличным решением для этого является разделение ваших приложений на три проекта:

  • Один проект библиотеки , который будет содержать весь общий код
    • на самом деле, создание двух версий (облегченная и платная) одного приложения является одним из распространенных сценариев , о котором идет речь на этой странице; -)
  • Один проект для пробной версии,
  • и один проект для про версии.

Каждая пробная и профессиональная версия будет:

  • Ссылка на проект библиотеки (которая содержит почти весь код)
  • Определите, что характерно для пробной или профессиональной версии (например, манифест, некоторые строки, некоторый дополнительный код, ...)

При этом создание пробной или профессиональной версии так же просто, как создание одного проекта или другого: не нужно ничего менять!


Несколько ссылок, которые могут помочь:

...