У вас есть пара различных вариантов.
Одним из вариантов является сохранение ваших библиотек в виде отдельных проектов и их компиляция в формат архива, такой как JAR или AAR; Файлы JAR предназначены для чистых библиотек Java, а AAR - для Android-библиотек (которые содержат код, который обращается к API Android и/или имеет ресурсы Android). Как отмечалось в комментариях, AAR не заставляет вас публиковать свой код в мире больше, чем файлы JAR; это просто формат архивного файла, файлы которого могут быть локальными для вашего компьютера или вашей организации.
С помощью этого архивного файла вы можете включить его в другие проекты.Если вы являетесь частью организации с несколькими разработчиками, вам может быть удобно использовать диспетчер репозитория для публикации и поддержки этих библиотек в вашей организации, и вы можете использовать спецификации координат Maven для включения библиотек в ваши проекты, которые вам не нужно вручную копировать на вашу машину разработки.
Недостатком такого подхода является то, что ему немного сложнее внести изменения в эти библиотеки: вам нужно загрузить проект, внести изменения, создать архив и распространить архив.
Другой подход - сохранить библиотеку в качестве исходного модуля, как в Eclipse. Вы заметили, что Android Studio сделает копию модуля, если вы импортируете его через пользовательский интерфейс, но если вы обойдете пользовательский интерфейс и внесите изменения в скрипты сборки напрямую, вы можете делать то, что хотите, а именно использовать модуль на месте и делиться одна копия нескольких проектов. Чтобы сделать это, работа в вашем settings.gradle файл и добавьте это:
include ':module_name'
project(':module_name').projectDir = new File(settingsDir, '../relative/path/to/module')
Я бы настоятельно рекомендуем вам не использовать чистый относительный путь здесь; в этом примере путь привязан к переменной settingsDir
, предоставленной Gradle, которая определена как каталог, в котором установлено settings.gradle. Если вы используете чистый относительный путь (т. Е. Не привязаны ни к чему), вы зависите от того, что рабочий каталог является одинаковым во всех средах, где выполняется файл сборки (командная строка против Android Studio против сервера CI) что нехорошо предположить.
Я редактировал вопрос с более точным объяснением того, что было возможно с Eclipse. –
@greenapps, ваш комментарий не является конструктивным. Сначала задайте свой вопрос, и если по какой-то странной причине вы ничего не найдете в библиотечных проектах, вернитесь сюда и задайте вопрос. – 323go
Генерация AAR НЕ выставляет код. Проверьте [мой собственный вопрос об этом] (http://stackoverflow.com/questions/26531709/create-android-library-aar-including-javadoc-and-sources) – jmm