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 * | Связывайте компоненты интерфейса в макетах с источниками данных в приложении, используя декларативный формат. |
| fragment * | Разделите приложение на несколько независимых экранов, размещенных в рамках одного действия. |
| hilt * | Расширьте функциональность Dagger Hilt, чтобы включить внедрение зависимостей определенных классов из библиотек androidx. |
| lifecycle * | Создавайте компоненты, учитывающие жизненный цикл, которые могут корректировать поведение в зависимости от текущего состояния жизненного цикла объекта activity или фрагмента. |
| Компоненты Material Design * | Модульные и настраиваемые компоненты интерфейса Material Design для Android. |
| navigation * | Создавайте и структурируйте интерфейс приложения, обрабатывайте ссылки на контент и переходите между экранами. |
| paging * | Загружайте данные на страницы и представляйте их в RecyclerView. |
| room * | Создавайте, храните и управляйте постоянными данными, поддерживаемыми базой данных SQLite. |
| room3 * | Создавайте, храните и управляйте постоянными данными, поддерживаемыми базой данных SQLite. |
| test * | Тестирование на Android. |
| работа * | Планируйте и выполняйте фоновые задачи, которые можно отложить и которые зависят от ограничений. |
| a2ui | Рендерер Jetpack Compose Agent-to-UI (A2UI) реализует протокол A2UI, позволяя ИИ-агентам генерировать интерактивные пользовательские интерфейсы, которые отрисовывают нативные компоненты Compose без выполнения произвольного кода. |
| a2ui.compose | Рендерер Jetpack Compose Agent-to-UI (A2UI) реализует протокол A2UI, позволяя ИИ-агентам генерировать интерактивные пользовательские интерфейсы, которые отрисовывают нативные компоненты Compose без выполнения произвольного кода. |
| объявления | Получите рекламный идентификатор с сервисами 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 с закругленными углами и тенями. |
| collection | Уменьшите объем памяти, занимаемый существующими и новыми небольшими коллекциями. |
| 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 | Предоставьте данные Cursor виджету 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. |
| графика | Используйте графические возможности в разных версиях платформы 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). |
| palette | Извлекайте из изображений репрезентативные цветовые палитры. |
| Библиотека для добавления в приложения функций просмотра PDF-файлов. | |
| percentlayout | Этот артефакт и его классы устарели. Используйте ConstraintLayout и связанные макеты. |
| эффективность | Предоставляет аннотации к исходному коду для оптимизации производительности. |
| photopicker | Эта библиотека обеспечивает интеграцию со встроенным инструментом выбора фотографий для Compose и Android Views. |
| preference | Создавайте интерактивные экраны настроек без необходимости взаимодействовать с хранилищем устройства или управлять интерфейсом. |
| Печатайте фотографии, документы и другие графические материалы и изображения из приложения. | |
| privacysandbox.activity | TODO |
| privacysandbox.ads | Эта библиотека позволяет интегрировать Privacy Preserving 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 | Просматривайте атрибуты пользовательских представлений в инспекторе макетов 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 | Работайте с современными WebView API на устройствах с 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-контентом и управлять им. |