2014-12-30 4 views
0

Итак, вот что. Я хочу создать несколько приложений, которые все они должны выглядеть одинаково, но только одна переменная должна измениться. Я ищу способ создать одну библиотеку и импортировать ее во всех других приложениях, и вместо обновления большого количества приложений я смог бы обновить только библиотеку.Создание шаблона для нескольких приложений для Android

Любые идеи о том, как это можно сделать? Может быть, использовать метаданные?

Благодаря

ответ

2

В дополнение к CommonsWear's answer, который является правильным если вы используете Android Studio, что вам требуется также может быть достигнуто в Eclipse, - хотя и с немного больше работы.

Вам нужно будет создать «приложение библиотеки» (см. Изображение ниже), которое должно быть вашим базовым приложением - это приложение, которое вы хотите стать общей базой для всех дочерних приложений.

Source: Vogella.com

После этого будет завершена, и вы должны создать новый Android проекта (ребенок приложение), которая использует базовую библиотеку приложений (см пример изображения ниже)

Source: Vogella.com http://www.vogella.com/tutorials/AndroidLibraryProjects/images/xlibrary30.png.pagespeed.ic.C6oekZBznQ.png

Любые значения в дочернем приложении (т.е. строки, стили и т. Д.) Наследуются от родителя библиотечное приложение/res папка, если вы не указали новые значения в приложении для детей/res папка.

например. если libraryapp/res/strings.xml содержит

<string name="override_me">Hello</string>

и childapp/res/strings.xml содержит <string name="override_me">Bonjour</string>

затем запустить ребенка приложение будет возвращать "Bonjour", а не то, что было определено в библиотеке.

Как ребенок приложение в основном пустой проект без деятельности, манифест вашего ребенка приложения в основном должна быть калькой, что библиотеки кроме от <manifest> тега, который должен содержать ребенок приложение package, android:versionCode и android:versionName.Он может начать свою библиотеку с этими измененными значениями как это:

<activity 
     android:name="com.example.library.MainActivity" 
     android:label="@string/app_name" 
     android:launchMode="singleTop"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

Being Eclipse, это является немного более запутанным, но если вам удастся настроить правильно, это делает создание ребенка приложений легко и быстро (но просто не так просто, как с градием!).

+0

А как насчет деятельности? Как определить их в манифесте? –

+0

@ Erez.info см. Изменения в моем ответе. В основном вы копируете манифест из проекта библиотеки –

+0

thx man! он отлично работает. Я даже могу задать разные темы для каждого приложения без проблем :) –

1

Создание одного приложения с помощью Android Studio и Gradle для Android. Создайте несколько product flavors для этого приложения. Use buildConfigField, чтобы определить «переменную», которая изменяется в зависимости от вкуса. Когда вы создаете для своего вкуса, вы получаете приложение с определением переменной, которое вы ищете, а также все остальное, что вы переопределили в этом вкусе продукта (например, значок, app_name).

+0

он выглядит точно, что я ищу, но я никогда не работал с градиентом, поэтому я буду в этом только как последний вариант. –