2016-04-14 3 views
1

Возможно ли сделать все приложение для Android комплектом для включения в другое приложение для Android?Могу ли я упаковать все приложение Android в библиотеку?

Я не говорю только о простом Java-коде, скомпилированном в файл .jar. Я имею в виду включение всего: код Java, макеты и т. Д. Затем используйте намерения для связи с этой «библиотекой». Я не хочу иметь отдельное приложение apk или отдельное приложение. Это похоже на то, что один полный apk включен в другой, и все это делает новым приложением. Вероятно, манифест нужно обрабатывать по-разному.

Я посмотрел на этот учебник, но просто перечисляет обычный .jar с открытым кодом Java.

http://www.vogella.com/tutorials/AndroidLibraryProjects/article.html

любые указатели с благодарностью. thx!

+1

Вы, безусловно, можете создавать [библиотечные модули] (http://developer.android.com/tools/projects/index.html#LibraryModules). Это описано в учебнике, к которому вы привязались, вкрапленном с некоторыми более старыми материалами, ориентированными на JAR. Если вы «используете намерения для общения» зависит от вас, так как вы будете писать как библиотеку, так и приложение. – CommonsWare

+0

выглядит как я на самом деле. Файлы aar. http://tools.android.com/tech-docs/new-build-system/aar-format https://androidbycode.wordpress.com/2015/02/23/building-an-aar-library -в-андроид-студия / – gmmo

ответ

0

Вы можете создать архив .aar, да. Несколько вещей, чтобы знать об этом:

  • ААР построен как проект библиотеки, с Gradle плагин «com.android.library»
  • Вы все еще должны иметь проект приложения оболочки, объявляющий зависимость на ааре, построенном из библиотеки.
  • У ара будет свой собственный манифест и ресурсы. Манифест и ресурсы получат , объединенный в манифест приложения оболочки. Вы лучше всего понимаете процесс явного слияния.
  • У аара будет свой код, конечно, и приложение оболочки не сможет дублировать классы, содержащиеся в aar.
  • Приложение оболочки должно объявить свой собственный идентификатор приложения в своем собственном build.gradle, а также другие требуемые свойства, ожидаемые от приложений, созданных с помощью плагина com.android.application.
  • Ни один из параметров приложения не может конфликтовать с настройками из aar. Например, вы не можете нацелиться на более низкий уровень API, чем минимум в aar.
  • Приложение не может переопределить любые ресурсы, определенные в aar. Это наоборот - библиотеки переопределяют ресурсы, определенные в приложении.

Если вы в том числе AAR непосредственно в файловой структуре приложения, вам необходимо объявить зависимость от него, как это (или аналогичный):

repositories { 
    flatDir { 
     dirs 'libs' // place the aar in here 
    } 
} 
dependencies { 
    compile(name:'fileNameOfAarWithoutExtension', ext:'aar') 
} 

Но если вы распространять aar как зависимость от maven, вы можете просто использовать координаты maven.

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

Смежные вопросы