Можно ли создать несколько целей для проекта Android, таких как Xcode Target - PullRequest
10 голосов
/ 02 февраля 2012

Я работал с iPhone Xcode Traget , чтобы создать несколько приложений для iPhone с единой базой кода.Мой вопрос, возможно ли создать несколько целей для проекта Android.Если да, возможно ли это с Eclipse?

Редактировать:

Цель Xcode: один проект может содержать одну или несколько целей, каждая из которых производит один продукт (приложение).У него всегда есть только один проект, в котором мы можем выбрать конкретную цель и запустить нужное приложение.

У iPhone есть только один проект для многих продуктов (App1, App2, App3 и т. Д.). Теперь я могу иметь такой же, как этот, одинAndroid Project и несколько продуктов (App1, App2, App3 и т. Д.)

Заранее спасибо

Ответы [ 4 ]

11 голосов
/ 30 сентября 2015

Немного поздно, но для тех, кто все еще ищет решение:

Gradle Build System использует вариант сборки и комбинацию вариантов продукта для создания различных приложений с общей / общей базой кода и ресурсами.

Согласно Справочнику разработчика Android:

Система сборки использует разные варианты продуктов для создания различных версий продуктов вашего приложения.Каждая версия вашего приложения может иметь различные функции или требования к устройству.Система сборки также использует типы сборки для применения различных настроек сборки и упаковки к каждой версии продукта.Каждая комбинация аромата продукта и типа сборки формирует вариант сборки.Система сборки генерирует разные APK для каждого варианта сборки вашего приложения.

Теперь можно иметь два или более вариантов продукта, например (платный, бесплатный / демонстрационный) и т. Д. Для одного проекта с одним и тем же проектом.код базы.

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

10 голосов
/ 17 февраля 2012

После широкого исследования я понял, Проект библиотеки Android предоставит решение для моего требования

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

Примечание: Вам необходим SDK Tools r14 или более поздней версии, чтобы использовать новую функцию проекта библиотеки, которая генерируеткаждая библиотека проекта в свой собственный файл JAR.Вы можете загрузить инструменты и платформы с помощью Android SDK и AVD Manager, как описано в разделе Добавление компонентов SDK.

• Если у вас есть исходный код и ресурсы, общие для нескольких проектов Android, вы можете переместить их впроект библиотеки, чтобы его было проще поддерживать между приложениями и версиями.Вот несколько распространенных сценариев, в которых вы можете использовать библиотечные проекты:

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

0 голосов
/ 02 февраля 2012

Вы можете контролировать, какую версию кто-то установил и запускать ту или иную деятельность в зависимости от этого.Вы можете использовать что-то вроде этого:

private static boolean version= android.os.Build.VERSION.SDK_INT>=android.os.Build.VERSION_CODES.HONEYCOMB;

И затем сделать что-то вроде:

 public void onCreate(Bundle savedInstanceState){
 Intent startActivity =null;
 if(version)
            startActivityIntent = new Intent( this, newVersionActivity.class );
 else
         startActivityIntent = new Intent( this, oldVersionActivity.class );

 finish();}

Этот пример взят из видео ввода-вывода Google (мин. 5 ~): http://www.google.com/events/io/2011/sessions/android-protips-advanced-topics-for-expert-android-app-developers.html. Таким образом, вы должны указать minSdkVersion и maxSdkVersion, а затем управлять тем, какие действия начинать.

0 голосов
/ 02 февраля 2012

В одном проекте в Android есть только одна цель сборки.Совместимость с обратными словами контролируется во время установки с помощью minSdkVersion, targetSdkVersion и maxSdkVersion в файле манифеста

http://developer.android.com/guide/topics/manifest/uses-sdk-element.html

Кроме того, на рынке Android убедитесь, что если ваше приложение имеет собственный код и построено для архитектуры ARM, его не видно наУстройство x86

...