Створення модуля (бібліотеки)
Для створення модуля в Android Studio вибираєте
Далі є 2 варіанти. Якщо ви плануєте створити «чисту» java-бібліотеку, як тип вказуйте Java Library. в результаті код такої бібліотеки скомпілюється в JAR файл. Це зручно, так як ви зможете використовувати її не тільки в Android додатках. Якщо ж ви збираєтеся використовувати android-специфічні речі і вам знадобляться класи з пакетів android. *. то створюйте Android Library. яка при компіляції збирається в AAR файл. В даному випадку вам понядобітся останній варіант.
ВАЖЛИВО: У minSDKVersion (файли build.gradle модулів) додатки повинен збігатися або бути більше, ніж зазначений в модулі бібліотекі.Указанние buildToolsVersion повинні бути встановлені в Android-SDK. Кожен модуль бібліотеки генерує свій клас ресурсів (* .R.class). Коли Android бібліотеки додаються в проект і відбувається його збірка, то їх ресурси зливаються, що може призвести до конфліктів. Тому в документації визначено такі угоди:
- Якщо ID ресурсу додатка збігається з ID ресурсу в бібліотеці, то використовується ресурс додатка
- Якщо ID ресурсу збігається в різних бібліотеках, то використовується ресурс бібліотеки, яка вказана першою в списку залежностей (знаходиться вище в блоці dependecies)
- Для уникнення описаних вище конфліктів рекомендується використовувати префікс або іншу послідовну схему іменування ресурсів, яка буде унікальна для кожного з модулів (або унікальна для всього програми в цілому)
Підключення Android бібліотеки
Підключаються Android бібліотеки як залежності (якщо бібліотека була створена як окремий проект в AndroidStudio). Тут є так само 2 варіанти:
1.Лібо додати скомпільований AAR (або JAR) файл:
2.Лібо імпортувати бібліотеку з вихідних:
ВАЖЛИВО: переконатися, що ім'я Android бібліотеки було додано в settings.gradle
і з'явилася в блоці dependencies файлу build.gradle додатки
Android бібліотеки можуть містити в собі ресурси, інші JAR бібліотеки, власний AndroidManifest.xml.
Структура компільованою Android бібліотеки
Скомпільована Android бібліотека являє собою звичайний zip архів з розширенням .arr. який містить такі обов'язкові файли і директорії:
- / Assets /
- / Libs / name .jar
- / Jni / abi_name / name .so (де abi_name один з підтримуваних Android ABIs)
- /proguard.txt
- /lint.jar