Обзор библиотеки подкачки . Часть Android Jetpack .
Библиотека подкачки помогает загружать и отображать страницы данных из более крупного набора данных из локального хранилища или по сети. Такой подход позволяет вашему приложению более эффективно использовать пропускную способность сети и системные ресурсы. Компоненты библиотеки подкачки разработаны с учетом рекомендуемой архитектуры приложений Android , четко интегрируются с другими компонентами Jetpack и обеспечивают первоклассную поддержку Kotlin.
Преимущества использования библиотеки подкачки
Библиотека подкачки включает в себя следующие функции:
- Кэширование в памяти для выгружаемых данных. Это помогает гарантировать, что ваше приложение эффективно использует системные ресурсы при работе с выгружаемыми данными.
- Встроенная дедупликация запросов, которая помогает обеспечить эффективное использование пропускной способности сети и системных ресурсов вашим приложением.
- Настраиваемые адаптеры
RecyclerView
, которые автоматически запрашивают данные, когда пользователь прокручивает данные к концу загруженных данных. - Первоклассная поддержка сопрограмм и потоков Kotlin, а также
LiveData
и RxJava. - Встроенная поддержка обработки ошибок, включая возможности обновления и повтора.
Оставьте отзыв
Ваши отзывы помогают сделать Jetpack лучше. Дайте нам знать, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Проверьте существующие проблемы для этой библиотеки, прежде чем создавать новую. Вы можете добавить свой голос к существующей проблеме, нажав кнопку со звездочкой.
Дополнительную информацию об отправке отзывов см . в документации по системе отслеживания проблем .
Настраивать
Чтобы импортировать компоненты подкачки в приложение Android, добавьте следующие зависимости в файл build.gradle
вашего приложения:
Groovy
dependencies { def paging_version = "3.3.5" implementation "androidx.paging:paging-runtime:$paging_version" // alternatively - without Android dependencies for tests testImplementation "androidx.paging:paging-common:$paging_version" // optional - RxJava2 support implementation "androidx.paging:paging-rxjava2:$paging_version" // optional - RxJava3 support implementation "androidx.paging:paging-rxjava3:$paging_version" // optional - Guava ListenableFuture support implementation "androidx.paging:paging-guava:$paging_version" // optional - Jetpack Compose integration implementation "androidx.paging:paging-compose:3.3.5" }
Kotlin
dependencies { val paging_version = "3.3.5" implementation("androidx.paging:paging-runtime:$paging_version") // alternatively - without Android dependencies for tests testImplementation("androidx.paging:paging-common:$paging_version") // optional - RxJava2 support implementation("androidx.paging:paging-rxjava2:$paging_version") // optional - RxJava3 support implementation("androidx.paging:paging-rxjava3:$paging_version") // optional - Guava ListenableFuture support implementation("androidx.paging:paging-guava:$paging_version") // optional - Jetpack Compose integration implementation("androidx.paging:paging-compose:3.3.5") }
Библиотечная архитектура
Компоненты библиотеки подкачки работают на трех уровнях вашего приложения:
- Уровень репозитория
- Слой
ViewModel
- Уровень пользовательского интерфейса
В этом разделе описываются компоненты библиотеки подкачки, которые работают на каждом уровне, и то, как они работают вместе для загрузки и отображения постраничных данных.
Уровень репозитория
Основным компонентом библиотеки подкачки на уровне репозитория является PagingSource
. Каждый объект PagingSource
определяет источник данных и способ получения данных из этого источника. Объект PagingSource
может загружать данные из любого источника, включая сетевые источники и локальные базы данных.
Еще один компонент библиотеки подкачки, который вы можете использовать, — RemoteMediator
. Объект RemoteMediator
обрабатывает подкачку из многоуровневого источника данных, например сетевого источника данных с кэшем локальной базы данных.
Слой ViewModel
Компонент Pager
предоставляет общедоступный API для создания экземпляров PagingData
, которые предоставляются в реактивных потоках, на основе объекта PagingSource
и объекта конфигурации PagingConfig
.
Компонентом, который соединяет уровень ViewModel
с пользовательским интерфейсом, является PagingData
. Объект PagingData
— это контейнер для моментального снимка данных с разбивкой на страницы. Он запрашивает объект PagingSource
и сохраняет результат.
Уровень пользовательского интерфейса
Основным компонентом библиотеки подкачки на уровне пользовательского интерфейса является PagingDataAdapter
, адаптер RecyclerView
, который обрабатывает данные с разбивкой на страницы.
Альтернативно вы можете использовать включенный компонент AsyncPagingDataDiffer
для создания собственного адаптера.
Дополнительные ресурсы
Чтобы узнать больше о библиотеке подкачки, см. следующие дополнительные ресурсы:
Кодлабы
{% дословно %}Рекомендуется для вас
- Примечание. Текст ссылки отображается, когда JavaScript отключен.
- Загрузка и отображение постраничных данных
- Перейти на страницу 3
- Страница из сети и базы данных