Android Jetpack
Jetpack – это набор библиотек, которые позволяют разработчикам следовать рекомендациям, сокращать объем шаблонного кода и создавать приложения и игры, которые будут стабильно работать на любых устройствах Android, независимо от версии ОС и типа устройства. Благодаря возможностям этого пакета вы сможете сосредоточиться на написании основного кода.
Jetpack Compose
Как разрабатывать интерфейсы с помощью Compose
Современный набор инструментов для создания нативного пользовательского интерфейса, который позволяет упростить и ускорить разработку интерфейса на Android.
Зачем использовать Android Jetpack
Следуйте нашим рекомендациям
Библиотеки Android Jetpack созданы с учетом современных принципов проектирования. Они позволяют снизить количество сбоев и утечек памяти, а также обеспечивают обратную совместимость.
Устранение шаблонного кода
Android Jetpack берет на себя рутинные задачи, такие как управление фоновыми процессами, навигацией и жизненным циклом объекта activity, чтобы вы могли сосредоточиться на создании отличного приложения.
Уменьшение фрагментации
Библиотеки, которые стабильно работают на любых устройствах Android, независимо от версии ОС, упрощают разработку.
Создавайте приложения для экранов любого размера
Библиотеки Jetpack, такие как androidx.compose.material3.adaptive.layout, упрощают разработку адаптивных макетов, оптимизированных для всех размеров экрана.
Как использовать Jetpack
Базовый тренинг
Изучите основные библиотеки Jetpack на курсе "Основы Android с Compose" и сократите количество стандартного кода в своем приложении
Практическое руководство
Познакомьтесь с тремя библиотеками Jetpack, которые упрощают работу с уровнем данных: LiveData, ViewModel и Room.
Пример приложения Now in Android
Узнайте, как современная архитектура Android реализована в реальном приложении
Библиотеки Jetpack Посмотреть все библиотеки
* Популярные и часто используемые библиотеки перечислены в начале списка.
| activity * | Доступ к составным API, созданным на основе Activity. |
| Адаптивные компоненты Material Design 3 | Создавайте адаптивные интерфейсы с помощью компонентов Material Design 3. |
| appcompat * | Предоставляет доступ к новым API в более ранних версиях API платформы (многие из них используют Material Design). |
| appsearch * | Создавайте собственные функции поиска в приложении для пользователей. |
| камера * | Создавать приложения для мобильных камер. |
| compose * | Определяйте интерфейс программно с помощью composable-функций, которые описывают его форму и зависимости данных. |
| databinding * | Связывайте компоненты интерфейса в макетах с источниками данных в приложении, используя декларативный формат. |
| фрагмент * | Разделите приложение на несколько независимых экранов, размещенных в Activity. |
| hilt * | Расширьте функциональность Dagger Hilt, чтобы включить внедрение зависимостей определенных классов из библиотек androidx. |
| lifecycle * | Создавайте компоненты, учитывающие жизненный цикл, которые могут корректировать поведение в зависимости от текущего состояния жизненного цикла объекта activity или фрагмента. |
| Компоненты Material Design * | Модульные и настраиваемые компоненты интерфейса Material Design для Android. |
| navigation * | Создавайте и структурируйте интерфейс приложения, обрабатывайте ссылки на контент и переходите между экранами. |
| paging * | Загружайте данные на страницы и представляйте их в RecyclerView. |
| комната * | Создавайте, храните и управляйте постоянными данными, поддерживаемыми базой данных SQLite. |
| room3 * | Создавайте, храните и управляйте постоянными данными, поддерживаемыми базой данных SQLite. |
| тест * | Тестирование на Android. |
| работа * | Планирование и выполнение фоновых задач с возможностью отсрочки и на основе ограничений. |
| a2ui | Рендерер Jetpack Compose Agent-to-UI (A2UI) реализует протокол A2UI, позволяя ИИ-агентам создавать интерактивные пользовательские интерфейсы с компонентами Compose без выполнения произвольного кода. |
| a2ui.compose | Рендерер Jetpack Compose Agent-to-UI (A2UI) реализует протокол A2UI, позволяя ИИ-агентам создавать интерактивные пользовательские интерфейсы с компонентами Compose без выполнения произвольного кода. |
| ads | Получите рекламный идентификатор с сервисами Google Play или без них. |
| annotation.keep | TODO |
| annotation | Добавьте метаданные, которые помогут другим разработчикам и инструментам понять код вашего приложения. |
| appfunctions | Позволяет приложениям делиться функциями и данными с ИИ-помощниками, чтобы те могли находить и выполнять задачи прямо на устройстве по запросу пользователя. |
| arch.core | Вспомогательный инструмент для других зависимостей архитектуры, включая правила тестирования JUnit, которые можно использовать с LiveData. |
| asynclayoutinflater | Наполняйте макеты асинхронно, чтобы избежать временных зависаний в интерфейсе. |
| автозаполнение | Повышение точности автозаполнения за счет расширения подсказок. |
| контрольный показатель | Точно измеряйте производительность кода в Android Studio. |
| biometric | Выполните аутентификацию с помощью биометрических данных или учетных данных устройства и выполните криптографические операции. |
| Bluetooth | Используйте функции Bluetooth платформы Android с API, поддерживающими обратную совместимость. |
| браузер | Показывать веб-страницы в браузере по умолчанию. |
| camera.featurecombinationquery | Отправка запросов о возможностях камеры |
| camera.media3 | TODO |
| camera.viewfinder | Автономный видоискатель на основе Composable и View для камеры" |
| car-app | Как создавать приложения на основе шаблонов для Android Auto и Android Automotive OS |
| cardview | Реализуйте шаблон карточки Material Design с закругленными углами и тенями. |
| подборка | Уменьшить влияние на память существующих и новых небольших коллекций. |
| compose.animation | Создавать анимации в приложениях Jetpack Compose, чтобы улучшить пользовательский опыт. |
| compose.compiler | Преобразуйте composable-функции и включите оптимизацию с помощью плагина компилятора Kotlin. |
| compose.foundation | Создавайте приложения Jetpack Compose с помощью готовых блоков и расширяйте их, чтобы создавать собственные элементы системы проектирования. |
| compose.material | Создавайте интерфейсы Jetpack Compose с помощью готовых компонентов Material Design. Это точка входа более высокого уровня для Compose, предназначенная для предоставления компонентов, соответствующих описанным на сайте www.material.io. |
| compose.material3 | Создавайте интерфейсы Jetpack Compose с помощью компонентов Material Design 3 – следующего поколения Material Design. В Material 3 обновлены темы и компоненты, а также добавлены функции персонализации Material You, например динамический цвет. Все это позволяет создавать интерфейсы, которые гармонично сочетаются с новым визуальным стилем Android 12 и интерфейсом системы. |
| compose.material3.adaptive | Используйте адаптивную библиотеку Material 3, чтобы создавать адаптивные интерфейсы, которые автоматически подстраиваются под конфигурации окон, например классы размеров окон или положения устройств. Библиотека предоставляет реализации каркаса по умолчанию и компонуемые блоки для создания собственных интерфейсов. |
| compose.remote.foundation | TODO |
| compose.remote | Remote Compose – это фреймворк для создания интерфейса на удаленных поверхностях. |
| compose.runtime | Основные структурные элементы модели программирования и управления состоянием Compose, а также базовая среда выполнения для плагина компилятора Compose. |
| compose.ui | Основные компоненты Compose UI, необходимые для взаимодействия с устройством, в том числе макет, отрисовка и ввод. |
| concurrent | Перемещайте задачи из основного потока с помощью сопрограмм и используйте ListenableFuture. |
| constraintlayout | Гибко размещайте виджеты, используя относительное позиционирование. |
| contentpager | Загружайте данные ContentProvider и переходите между страницами в фоновом потоке. |
| coordinatorlayout | Располагать виджеты приложений верхнего уровня, такие как AppBarLayout и FloatingActionButton. |
| locationbutton | |
| core | Используйте новейшие функции и API платформы, но при этом поддерживайте более старые устройства. |
| core.uwb | Внедрите поддержку сверхширокополосной связи (СШП) на совместимых устройствах. |
| credentials | Эта библиотека предоставляет унифицированный доступ к учетным данным пользователя. Это могут быть пароли, ключи доступа и федеративные учетные данные. Эта библиотека позволяет сделать вход в аккаунт удобным и безопасным. |
| credentials.providerevents | Эта библиотека предоставляет набор API, позволяющих поставщикам учетных данных участвовать в событиях поставщика, таких как передача учетных данных и изменение учетных данных сигнала. |
| credentials.registry | Чтобы решить эти проблемы, мы добавляем новый механизм реестра, который позволяет приложению предоставлять цифровые удостоверения с обеспечением конфиденциальности. В общих чертах это работает так: приложение поставщика предварительно регистрирует все цифровые удостоверения в Менеджере учетных данных. Когда Менеджер учетных данных получает запрос на определенное цифровое удостоверение, он запускает сопоставление удостоверений и интерфейс выбора пользователя в изолированной среде. |
| cursoradapter | Предоставьте данные курсора виджету ListView. |
| customview | Реализуйте специальные представления. |
| datastore | Асинхронное, согласованное и транзакционное хранение данных, которое позволяет преодолеть некоторые недостатки SharedPreferences. |
| documentfile; | Просматривать документ. |
| draganddrop | Поддерживать перетаскивание данных из другого приложения или в пределах одного приложения и показывать согласованную область перетаскивания. |
| drawerlayout | Реализуйте виджет панели навигации Material Design. |
| dynamicanimation | Создавайте плавные анимации с помощью API анимации на основе физики. |
| эмодзи | Показывать эмодзи на текущих и более старых устройствах. |
| emoji2 | Отображение эмодзи на новых и старых устройствах. |
| enterprise | Создавайте приложения корпоративного уровня. |
| exifinterface | Чтение и запись тегов EXIF в графических файлах. |
| игры | Используйте Android Game SDK в своем приложении, чтобы выполнять сложные задачи, например синхронизацию кадров. |
| glance.adaptive | TODO |
| glance | Создавайте макеты для удаленных поверхностей с помощью API в стиле Jetpack Compose. |
| glance.wear | Glance Wear – это библиотека для создания виджетов для Wear OS. |
| graphics | Как использовать графические возможности в разных версиях платформы Android |
| gridlayout | Реализуйте макет сетки. |
| здоровье | Создавайте эффективные приложения для здоровья на любой платформе. |
| health.connect | Разрешает разработчикам считывать и записывать данные о здоровье и физической активности пользователя. |
| heifwriter | Кодировать изображение или коллекцию изображений в формате HEIF, используя доступные на устройстве Android кодеки. |
| ink | Создавайте лучшие приложения для работы со стилусом. Снизить порог входа для разработчиков, чтобы они могли создавать красивые и эффективные приложения для рисования. Поддерживает рукописный ввод на Android и серверную JVM (в настоящее время поддерживается на Linux для x86_64). |
| input | Уменьшение задержки при взаимодействии с экраном за счет прогнозирования будущих событий MotionEvent |
| interpolator | Используйте интерполяторы анимации на старых платформах. |
| javascriptengine | Включите в приложении для Android возможность оценивать JavaScript. |
| Jetifier | Отдельный инструмент, который переносит зависимости библиотеки от устаревшей библиотеки поддержки на эквивалентные зависимости AndroidX. |
| leanback | Автономный инструмент, который переносит зависимости библиотеки от устаревшей библиотеки поддержки в эквивалентные зависимости AndroidX. |
| legacy | Этот объект и его классы устарели. Начиная с Android 8, ограничения на фоновые проверки делают этот класс бесполезным. |
| lint | Проверки Lint для подтверждения использования Gradle API |
| loader | Загрузка данных для интерфейса, которые сохраняются при изменении конфигурации. |
| localbroadcastmanager | Этот артефакт и его классы устарели. Вместо этого используйте LiveData или реактивные потоки. |
| media | Предоставлять другим приложениям доступ к медиаконтенту и элементам управления. Заменен библиотекой Media3. |
| media3 * | Библиотеки поддержки для работы с медиаконтентом. |
| mediarouter | Позволяет показывать и воспроизводить медиаконтент на удаленных устройствах-получателях с помощью общего пользовательского интерфейса. |
| multidex | Развертывание приложений с несколькими DEX-файлами на устройствах с версией Android ниже 5.0. |
| показатели | Отслеживайте и регистрируйте различные показатели времени выполнения для своего приложения. |
| navigation3 | Navigation 3 – это новая библиотека навигации, предназначенная для работы с Compose. |
| navigationevent | Библиотека Navigation Event предоставляет API, в первую очередь предназначенный для KMP, для обработки системного жеста "Назад" и [жеста "Назад" с прогнозированием](/guide/navigation/custom-back/predictive-back-gesture). |
| Палитра | Извлекайте из изображений репрезентативные цветовые палитры. |
| Библиотека для добавления в приложения возможности просмотра PDF-файлов. | |
| percentlayout | Этот объект и его классы устарели. Вместо этого используйте ConstraintLayout и связанные макеты. |
| эффективность | Предоставляет аннотации к исходному коду для оптимизации производительности. |
| photopicker | Эта библиотека обеспечивает интеграцию Compose и Android Views для встроенного инструмента выбора фотографий. |
| preference | Создавайте интерактивные экраны настроек без необходимости взаимодействовать с хранилищем устройства или управлять интерфейсом. |
| Печатайте фотографии, документы и другие изображения из приложения. | |
| privacysandbox.activity | TODO |
| privacysandbox.ads | Эта библиотека позволяет интегрировать API с защитой конфиденциальности, которые входят в Privacy Sandbox для Android. |
| privacysandbox.plugins | Плагин Android Privacy Sandbox Sdk Library Gradle |
| privacysandbox.sdkruntime | Эта библиотека предоставляет компоненты для потребителей, поддерживающих SdkRuntime. |
| privacysandbox.tools | Библиотека для использования функций Privacy Sandbox в Android |
| privacysandbox.ui | TODO |
| profileinstaller | Позволяет библиотекам заранее заполнять трассировки компиляции, которые будут считываться ART. |
| recommendation | Продвигайте контент на главном экране Android TV Launcher. |
| recyclerview | Показывайте большие наборы данных в интерфейсе, минимизируя использование памяти. |
| remotecallback | Создайте оболочку, которая упростит разработчикам предоставление PendingIntent. |
| resourceinspection | Просматривайте атрибуты специальных представлений в Live Layout Inspector в Android Studio. |
| savedstate | Напишите подключаемые компоненты, которые сохраняют состояние пользовательского интерфейса при завершении процесса и восстанавливают его при перезапуске процесса. |
| Безопасность | Безопасное управление ключами и шифрование файлов и SharedPreferences. |
| sharetarget | Обеспечьте обратную совместимость для использования ярлыков в качестве целей прямой отправки. |
| slice | Показывайте элементы интерфейса на основе шаблонов за пределами приложения. |
| slidingpanelayout | Реализуйте интерфейс со скользящей панелью. |
| startup | Реализуйте простой и эффективный способ инициализации компонентов при запуске приложения. |
| sqlite | Работать с локальными базами данных SQLite. По возможности используйте Room. |
| swiperefreshlayout | Реализуйте интерфейс с функцией обновления с помощью пролистывания. |
| test.backup | Фреймворк для автоматического тестирования, который позволяет убедиться, что пользовательские данные и учетные данные аккаунта не будут утеряны при обновлении устройства и восстановлении из облака. |
| test.ext | TODO |
| test.uiautomator | Фреймворк для функционального тестирования пользовательского интерфейса в разных приложениях |
| text-vertical | TODO |
| textclassifier | Определяет в тексте диалоги, ссылки, выделенные фрагменты и другие подобные элементы. |
| трассировка | Записывать события трассировки в буфер системной трассировки. |
| transition | Анимируйте движение в пользовательском интерфейсе с помощью начального и конечного макетов. |
| tv | Предоставляет разработчикам функции Compose и Material Design для создания приложений для телевизоров. |
| tvprovider | Предоставлять каналы Android TV. |
| vectordrawable | Отрисовка векторной графики. |
| versionedparcelable | Предоставляет стабильный и компактный формат двоичной сериализации, который можно передавать между процессами или безопасно сохранять. |
| viewpager | Показывайте представления или фрагменты в формате, который можно пролистывать. По возможности используйте viewpager2. |
| viewpager2 | Показывайте представления или фрагменты в формате, который можно пролистывать. |
| wear | Создавайте приложения для умных часов Wear OS by Google. |
| wear.compose | Писать приложения Jetpack Compose для устройств Wear OS, обеспечивая поддержку разных размеров устройств и жестов навигации. |
| wear.compose.remote | Создавайте виджеты и другие элементы удаленного интерфейса для Wear OS, используя систему проектирования Material 3 Expressive. |
| wear.protolayout | Эта библиотека позволяет определять набор макетов интерфейса и выражений, не относящихся к интерфейсу, для отрисовки или оценки на удаленных поверхностях. |
| wear.tiles | Создавайте приложения для умных часов с Wear OS by Google. |
| wear.watchface | Создавайте приложения для умных часов Wear OS by Google. |
| wear.watchfacepush | Watch Face Push позволяет приложению для Wear OS программно устанавливать циферблат на часы. |
| webgpu | Современный API графического процессора для графики и вычислений на языке Kotlin. |
| webkit | Работать с современными API WebView на устройствах с Android 5 и более поздних версий. |
| window | Поддержка разных типов устройств, например складных. |
| window.extensions.core | Основные API для расширений библиотеки Window Manager |
| xr.arcore | Переносите цифровой контент в реальный мир с помощью функций восприятия. |
| xr.compose | Создавайте пространственные макеты интерфейса, используя возможности Android XR. |
| xr.compose.material3 | Создание адаптивных макетов и компонентов Material для XR |
| xr.glimmer | Система дизайна и набор инструментов пользовательского интерфейса для создания приложений Android XR с дополненной реальностью |
| xr.projected | Создавайте приложения, которые используют уникальные возможности подключенных XR-устройств. |
| xr.runtime | Запускайте сеансы дополненной реальности или 3D с помощью нашего встроенного времени выполнения. |
| xr.scenecore | Создавать граф сцены Android XR с 3D-контентом и управлять им. |