Часто разработчикам приходится переносить один и тот же код между проектами, и лучший способ избежать дублирования — сделать библиотеку. В Android для этого предусмотрен отдельный тип модуля, который собирается в файл с расширением AAR. Если вы работаете в Android Studio, весь процесс сводится к нескольким простым шагам. В этом руководстве мы подробно разберём, как сделать собственную библиотеку и использовать её в любом приложении.
Понятие Android-библиотеки
Библиотека в контексте Android — это модуль, который упаковывается в .aar-файл. В отличие от обычного JAR, в AAR можно включать не только классы на Kotlin или Java, но и ресурсы: разметки, строки, изображения. Это делает библиотеку полноценным переиспользуемым компонентом. Когда вы сделаете такой модуль, его можно подключить к любому проекту, и весь код будет доступен так, будто он написан непосредственно в приложении.
Создание модуля в Android Studio
Первый шаг — открыть Android Studio и перейти в меню File → New → New Module. В списке шаблонов выберите Android Library и нажмите Next. Задайте имя, например mylibrary, и укажите минимальную версию SDK. После завершения мастера в проекте появится новая папка, а в её build.gradle.kts будет применяться плагин com.android.library. Именно этот плагин заставляет сборку выдавать AAR вместо APK.
Структура библиотечного модуля
Новый модуль по структуре похож на обычное приложение: внутри есть src/main/java для кода и src/main/res для ресурсов. Отличие в манифесте: в библиотечном AndroidManifest.xml нет тегов <application> с иконкой и лейблом. Все эти атрибуты добавляются позже в манифесте основного приложения. Так что, если вы решите сделать библиотеку, не забудьте, что её манифест служит лишь для декларации компонентов.
Пишем полезный код в библиотеке
Чтобы продемонстрировать, как сделать библиотеку полезной, добавим в неё класс для конвертации температур. Он будет находиться в пакете нашего модуля и сможет использоваться в любом приложении после подключения.
package com.example.mylibrary
object TemperatureConverter {
fun celsiusToFahrenheit(celsius: Double): Double {
return celsius * 9 / 5 + 32
}
fun fahrenheitToCelsius(fahrenheit: Double): Double {
return (fahrenheit - 32) * 5 / 9
}
}
Можно также добавить кастомное View. Например, квадратный ImageView, который сохраняет пропорции независимо от заданных размеров. Такой компонент наглядно показывает, что библиотека для Android может содержать не только логику, но и элементы интерфейса.
package com.example.mylibrary
import android.content.Context
import android.util.AttributeSet
import androidx.appcompat.widget.AppCompatImageView
class SquareImageView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : AppCompatImageView(context, attrs, defStyleAttr) {
override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec)
val size = measuredWidth
setMeasuredDimension(size, size)
}
}
Сборка AAR-файла
Когда код готов, нужно получить сам файл библиотеки. В правой части Android Studio откройте вкладку Gradle, найдите задачи вашего модуля и запустите build → assembleRelease. Через несколько секунд в папке mylibrary/build/outputs/aar/ появится готовый .aar-файл. Этот файл и есть библиотека, которую можно распространять.
Подключение библиотеки к другому проекту
Самый простой способ использовать собранную библиотеку — скопировать AAR-файл в папку libs вашего приложения и добавить зависимость в build.gradle.kts.
dependencies {
implementation(files("libs/mylibrary-release.aar"))
implementation("androidx.appcompat:appcompat:1.6.1")
}
После синхронизации Gradle классы и ресурсы библиотеки станут доступны в коде. Если же модуль находится в том же проекте, можно подключить его напрямую через implementation(project(":mylibrary")), что упрощает совместную разработку.
Что полезно помнить
- Не добавляйте лишних зависимостей. Чем меньше обязательных библиотек требуется вашему модулю, тем проще его будет использовать в других проектах.
- Документируйте публичный API. KDoc-комментарии сэкономят время тем, кто будет пользоваться вашей библиотекой.
- Задайте префикс для ресурсов. Чтобы избежать конфликтов, укажите
resourcePrefixвbuild.gradle.ktsмодуля библиотеки. - Тестируйте на разных API. Убедитесь, что библиотека работает на всех версиях Android, заявленных в
minSdk.
Подводя итог
Мы разобрали, как сделать библиотеку для Android в Android Studio: создали модуль, добавили в него код и собрали AAR. Теперь вы можете выносить повторяющуюся логику в отдельные переиспользуемые компоненты и делиться ими между своими проектами. Это важный навык, который делает архитектуру приложений чище, а разработку — быстрее. Попробуйте прямо сейчас превратить пару утилит из текущего проекта в библиотеку — практика закрепит результат.