Подтвердить что ты не робот

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

Я создал бесплатную версию игрового приложения, которое теперь находится на рынке с именем com.mycompany.myfreegame. Теперь я хочу сделать платную версию. Несомненно, будут исправления и исправления ошибок для обеих версий, требуемых на долгие годы, поэтому я хочу инкапсулировать кодировку бесплатной и оплаченной информации как можно компактнее, чтобы я мог по существу исправлять ошибки в обеих версиях одновременно.

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

  • Название пакета должно быть разным между двумя версиями.
  • Некоторые xml должны быть разными. Например, бесплатной версии нужны линейные макеты для размещения рекламы, а платная версия - нет.

Каков самый простой способ достижения этой цели?

4b9b3361

Ответ 1

Я думаю, что первый подход, который я попробовал, - использовать 3 проекта в Eclipse: один для любой версии игры и проект библиотеки со всем общим кодом. Проект библиотеки будет содержать весь код для вашего основного игрового процесса, а проекты, зависящие от версии, управляют загрузкой различных макетов, размещением рекламы в бесплатной версии и добавлением уровней/функций/шляп в платную версию.

Возможно, вы сможете достичь своей цели единой базы кода с флагом компилятора с помощью задачи ant, но это вне меня.

Ответ 2

Я думаю, что вы ищете проект библиотеки http://developer.android.com/guide/developing/projects/index.html#LibraryProjects

С этой веб-страницы:

If you are creating an application that exists in both free and paid versions. You move the part of the application that is common to both versions into a library project. The two dependent projects, with their different package names, will reference the library project and provide only the difference between the two application versions.

Другой вопрос, очень похожий на этот, кажется, имеет достойное обсуждение и ответ: Несколько приложений с общей базой кода

Изменить: Вот ссылка о том, как реализовать проект библиотеки. http://developer.android.com/guide/developing/projects/projects-eclipse.html

Что касается разных версий, которые немного отличаются друг от друга, может быть реализован проект библиотеки. Сначала создается проект библиотеки, затем родительский (проект, который использует библиотеку) строится последним, и они объединяются вместе. Оба проекта могут определять одни и те же идентификаторы ресурсов и последний построенный проект (родительский проект), получает приоритет (перезаписывает). По существу, вы можете переопределить строки/макеты (возможно, больше, не уверены?) В родительском/вызывающем приложении.

Например: скажем, у вас есть два проекта: бесплатный и платный. Вы можете создать строку с реализацией по умолчанию (бесплатную версию) и переопределить ее в своей платной версии (родительское приложение).

Код в общих библиотеках Файл Strings.xml:

<string name="AppName">My Application (Free)</string>

Код в родительском приложении Файл Strings.xml:

<string name="AppName">My Application Premium</string>

Ответ 3

Я бы пошел с Maven. Вы можете определить родительский проект с тремя подпроектами, например:

  • Общие
  • Платные
  • Free

Maven позволяет иметь разные конфигурационные файлы с одинаковой базой кода.

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

Кроме того, это лишь одно из тысяч преимуществ maven!

EDIT: я только что узнал, у вас есть android-plugin для maven, а также интересные функции

Ответ 4

Может быть, лучше всего использовать Android Studio + gradle. Этот случай позволяет создавать как платные, так и бесплатные версии с помощью одной команды в консоли. Подробнее в этом сообщении: fooobar.com/questions/109694/...

Ответ 5

Я думаю, вы ищете что-то похожее на это:

Несколько файлов приложения .kk для приложений Android из одного исходного кода

В принципе, самый простой способ состоит в том, чтобы иметь два разных файла манифеста и два разных основных действия и переключать компиляцию с помощью Ant, хотя последнее необязательно.

Надеюсь, что это поможет.