Макет проекта Eclipse для Android с расширенными функциями - PullRequest
0 голосов
/ 07 сентября 2010

Я собираюсь начать проект для Android, который будет иметь бесплатную версию и премиум-версию.

В земле VC ++ вы могли бы сделать это, добавив теги препроцессора вокруг разделов премиум-класса (или там, где код попадет в раздел премиум-класса).

У меня может быть два проекта с отдельными исходными деревьями, но ошибка в одном может потребовать исправления в другом.

Однако в Java нет препроцессора, так как мне это сделать? Скажем, у вас есть экран с дополнительной кнопкой, которая является премиальной функцией, как это будет обрабатываться?

Я буду использовать Eclipse в качестве своей IDE, поэтому Eclipse-центричный ответ приветствуется.

Ответы [ 3 ]

2 голосов
/ 16 февраля 2011

Android SDK формально решает проблему общей или общей кодовой базы с чем-то, называемым библиотечным проектом.

http://developer.android.com/guide/developing/eclipse-adt.html#libraryProject

По сути, общий код определяется как библиотечный проект,затем бесплатная и премиум-версия - это просто два разных проекта в вашей рабочей среде eclipse, которые ссылаются на вышеупомянутый библиотечный проект.

Во время сборки библиотечный проект объединяется с любым из ваших выпусков, что вам и нужно.

Пример исходного кода Android SDK содержит проект TicTacToe, который поможет вам начать работу с библиотечными проектами.

Удачи.

Даниэль

1 голос
/ 07 сентября 2010

Я бы предпочел поместить продвинутые вещи в другую банку и использовать IOC для их запроса, а не полагаться на if (bool) для этого.

Для вашей облегченной версии вы просто не распространяете премиальные банки.

0 голосов
/ 07 сентября 2010

Если это просто кнопки или другие компоненты View, вы можете просто скрыть их в «облегченной» версии, например,

public static final boolean LITE_VERSION = true;

... 

if (LITE_VERSION) {
   premiumButton.setVisibility(View.INVISIBLE);
}
...