Как экспортировать библиотеку AAR с ее документацией?
Мне интересно, почему моя библиотека всегда теряла свою документацию, когда она была построена в формате AAR. Кроме того, Android Studio сжимает код, то есть код, который ранее был построен, всегда отличался от кода после встроенного формата AAR, никаких оригиналов. Я хочу, чтобы моя библиотека имела собственную документацию и имеет исходный код. Вы можете увидеть ниже:
Перед построением
![before]()
После встроенного формата AAR
![после]()
Где документация?! Кроме того, вы заметите, что весь код действительно сжат и отличается.
Итак, как мне экспортировать библиотеку AAR с ее документацией без сжатия кода?
Ответы
Ответ 1
Код "сжимается", поскольку после создания AAR исходный исходный код не включен в AAR. Это всего лишь код байта Java.
Затем, когда вы используете свою библиотеку AAR в приложении. исходный код обращается в обратном порядке из байтового кода. Исходные имена переменных недоступны и могут быть некоторые различия в стиле кодирования из-за оптимизации компилятора байтового кода и еще чего-то. И, конечно, комментарии не включены в байтовый код, потому что это для компьютера и комментарии для людей.
Поэтому, когда вы используете библиотеку AAR, если вы не хотите видеть исходный код при отладке и т.д., вам необходимо доставить его с помощью AAR в качестве отдельного JAR источника и, возможно, сообщите Android Studio об использовании исходного JAR, если он 'делать это автоматически.
Мне удалось автоматизировать создание JAR-источника как часть процесса "загрузки" сгенерированного AAR/JAR в локальный репозиторий Maven. Я не знаю, какая у вас система сборки, поэтому я не буду вдаваться в эти детали.
В любом случае вы можете добавить это в свои модули build.gradle:
task sourcesJar(type: Jar) {
classifier = 'sources'
from android.sourceSets.main.java.srcDirs
}
Затем вам нужно будет запускать его отдельно, когда вы хотите создать/обновить исходный JAR:
Gradle → Задачи → Другое → sourcesJar
И, вероятно, есть способ автоматизировать задачу как часть задачи assembleRelease
, но я не очень хорошо знаком с Gradle.
Исходный JAR появится в...\MyLibrary\app\build\libs\path.
Ответ 2
Я согласен с @MarkusKauppinen.
Основная проблема после сборки jar-источников заключается в том, что вы не можете использовать эту банку в качестве ваших зависимостей. Это только исходный код, который нельзя использовать для написания кода, т.е. Вы ничего не можете импортировать, потому что в jar содержатся файлы *.java
вместо *.class
файлов. Итак, сделайте следующее:
Шаг # 1 Создайте формат AAR для вашей библиотеки. Обычно он находится в [project]/[library-module]/build/outputs/aar/library-release.aar
Шаг # 2 Добавьте файл AAR в качестве модуля. Перейдите в меню "Файл" > "Создать" > "Создать модуль..." > "Импорт пакета .JAR/.AAR" > "Далее".
![введите описание изображения здесь]()
Затем найдите файл AAR и нажмите "Готово".
![введите описание изображения здесь]()
Шаг # 3 Перейдите к структуре проекта, нажав на этот значок
и добавьте модуль, который мы только что применили к зависимостям приложений.
![введите описание изображения здесь]()
Шаг # 4 Добавить @MarkusKauppinen gradle задачу в библиотечный модуль build.gradle
и синхронизировать проект с gradle.
Шаг # 5 Перейдите в правую область Android Studio > нажмите gradle > обновить gradle задачу, щелкнув этот значок
.
Шаг # 6 Найти и запустить (двойным щелчком) sourcesJar
в :library-module
> Tasks
> other
.
![sourcesJar task]()
Шаг # 7. После завершения задачи вы найдете источники jar в
library-module\build\libs\..-sources.jar
.
Шаг # 8 Импортируйте, по меньшей мере, один класс в модуль приложения, например. в MainActivity
. Затем нажмите Ctrl + щелчок по классу. Нажмите Choose sources
и просмотрите исходную банку, как указано в шаге 7.
![просмотреть источники jar]()
Наконец, вы можете увидеть исходный код с его документацией.