Подтвердить что ты не робот

Android-зависимости: apklib vs aar files

Из моего понимания, apklib содержит код + ресурс, общий с Maven. aar файлы распространяются Gradle.

aar отличаются от апклиба одним основным способом: классы компилируются и включаются в class.jar в корень aar. В то время как apklib не может содержать скомпилированные файлы классов или банки.

1 Может ли кто-нибудь объяснить основные различия между apklib vs aar файлами?

2 Может ли Maven использовать aar? Может ли Gradle использовать apklib?

3 Какой формат "лучше"?

4b9b3361

Ответ 1

1 Может кто-нибудь объяснить основные различия между apklib vs aar файлов?

Пара различий, которые приходят мне на ум, в дополнение к тому, что вы сказали:

  • aar не может содержать исходный код и java-банку внутри папки libs, если вы не хотите предоставлять исходный код (например, службы Google Play);
  • aar может содержать пользовательский файл proguard и пользовательские правила lint, хотя я не уверен, что они учитываются на данный момент.

2 Может ли Maven использовать aar? Может ли Gradle использовать apklib?

Плагин Android Maven поддерживает aar начиная с версии 3.7.0. Gradle не поддерживает использование зависимостей apklib, но вы можете экспортировать android-library как apklib (см. этот пост).