Преимущества модуля aar и простого модуля

если у меня есть проект со многими связанными библиотечными проектами, могу ли я улучшить производительность сборки, упаковав каждый из них в AAR и включив его в основной проект? Или это не будет иметь никакого значения, поскольку, когда компилятору нужно собрать apk, ему все равно нужно упаковать все вместе?

Спасибо любому, кто объяснит мне разницу в производительности между двумя подходами.


person Apperside    schedule 11.07.2016    source источник


Ответы (2)


Я не думаю, что вы сэкономите время сборки, обернув существующий файл .jar в файл .aar и используя его вместо исходного файла .jar.

Как эти заметки SO, файлы .aar в основном просто zip, которые могут содержать файл jar и некоторые ресурсы Android.

Кроме того, поскольку файлы .aar не компилируются в байт-код Dalvik, процесс сборки вашего apk-файла все же должен выполнить этот шаг хотя бы один раз. Таким образом, вы не сэкономите время на dexing, просто обернув файл .jar в файл .aar.

Если вы создаете типичный проект Android Studio (с некоторыми зависимостями библиотеки Android, указанными в файле сборки gradle), вы можете увидеть каталог под app/build/intermediates/exploded-aar, где эти файлы были разархивированы. Эта работа все еще должна выполняться вашей сборочной машиной, даже если вы используете файл .aar.

Наконец, как вы указали, работа по упаковке .apk должна быть выполнена в конце сборки.

person albert c braun    schedule 11.07.2016

Я считаю, что проекты библиотеки (которые вы используете) - лучший способ по двум причинам:

  1. Проект библиотеки дает прямой доступ к кодовой базе библиотек, которые могут быть скомпилированы и упакованы вместе с основным кодом приложения.
  2. В случае, если в проекте есть ссылки на несколько файлов .aar, то во время создания apk распаковка, объединение ресурсов и файла манифеста увеличат время сборки.
person abhay anand    schedule 16.08.2018
comment
+1 за то, что во время создания apk распаковка, объединение ресурсов и файла манифеста увеличат время сборки Спасибо @abhay - person PravyNandas; 20.04.2019