- 前言
- Jetpack 组件库
- activit
- ads
- annotation
- appcompat
- appsearch
- arch-core
- asynclayoutinflater
- autofill
- benchmark
- biometric
- browser
- car-app
- camera X
- cardview
- collection
- compose
- concurrent
- constraintlayout (*)
- contentpager
- coordinatorlayout
- core (*)
- cursoradapter
- customview
- databinding
- datastore
- documentfile
- drawerlayout
- dynamicanimation
- emoji2
- enterprise
- exifinterface
- fragment
- games (*)
- gridlayout
- health
- heifwriter
- hilt (*)
- interpolator
- jetifier
- leanback
- lifecycle (*)
- loader
- media2
- mediarouter
- multidex
- navigation
- paging (*)
- palette
- preference
- profileinstaller
- recommendation
- recyclerview
- remotecallback
- resourceinspection
- room
- savedstate
- security
- sharetarget
- slice
- slidingpanelayout
- startup
- sqlite
- swiperefreshlayout
- test
- textclassifier
- tracing
- transition
- tvprovider
- vectordrawable
- versionedparcelable
- viewpager
- viewpager2
- wear
- wear-compose
- wear-tiles
- webkit
- window
- work
- 废弃库
前言
学习各种Jetpack 的组件之前,我们得了解一下Jetpack 到底是个什么,以及都有一些什么东西。
Jetpack 是Google 推出的整合了原先的android.support.v4,v7 等同时也提供了一些新的组件库。是一个所有库的统称:Jetpack
例如我们熟悉的LiveData,ViewModel 等架构组件。
所有的Jetpack库都在androidx 的命名空间下。
Jetpack 组件库
介绍一下jetpack 之中的所有组件库。它们都是分开独立的maven库
activit
androidx.activity 基于Activitty构建的各种API。
有稳定版本
dependencies {
val activity_version = "1.2.3"
// Java 版本库
implementation("androidx.activity:activity:$activity_version")
// Kotlin 版本库
implementation("androidx.activity:activity-ktx:$activity_version")
}
ads
androidx.ads 广告ID库,google提供的关于广告的API。
当前只有alpha 版本 可能有部分功能缺少,之后会进行移除修改部分API。
dependencies {
implementation("androidx.ads:ads-identifier:1.0.0-alpha04")
implementation("com.google.guava:guava:28.0-android")
}
annotation
androidx.annotation 注解工具
dependencies {
implementation("androidx.annotation:annotation:1.2.0")
// 如果要使用java的 @Experimental 需要添加下面库的
implementation("androidx.annotation:annotation-experimental:1.1.0")
}
appcompat
androidx.appcompat API兼容库,可以在旧版API上访问新API
一般Android 项目该库都是必须依赖的
dependencies {
val appcompat_version = "1.3.0"
implementation("androidx.appcompat:appcompat:$appcompat_version")
// 如果需要在旧版本的drawables 中支持修改颜色 需要依赖
implementation("androidx.appcompat:appcompat-resources:$appcompat_version")
}
appsearch
androidx.appsearch 搜索库,用于管理本地存储的结构化数据,支持将数据编入索引通过支持搜索检索数据的API。一般用来构建自定义的应用内搜索功能。
dependencies {
val appsearch_version = "1.0.0-alpha02"
implementation("androidx.appsearch:appsearch:$appsearch_version")
// Use annotationProcessor instead of kapt if writing Java classes
kapt("androidx.appsearch:appsearch-compiler:$appsearch_version")
implementation("androidx.appsearch:appsearch-local-storage:$appsearch_version")
}
arch-core
androidx.arch-core 其他架构依赖项的帮助程序,包括可与 LiveData 配合使用的 JUnit 测试规则。
(PS:我没弄懂这个库是用来干嘛的。如果有人明白,希望能够留言指导)
dependencies {
implementation ("androidx.arch.core:core-common:2.1.0")
implementation ("androidx.arch.core:core-runtime:2.1.0")
implementation ("androidx.arch.core:core-testing:2.1.0")
}
asynclayoutinflater
androidx.asynclayoutinflater 异步膨胀布局以避免界面出现卡顿。
版本相当稳定从2018年9月21日更新至今。没有任何修改。
dependencies {
implementation("androidx.asynclayoutinflater:asynclayoutinflater:1.0.0")
}
autofill
androidx.autofill 通过扩展提示提高自动填充的准确性。
这个库在Android 8.0以后版本才能使用。
类似我们在输入用户名或者密码时,只需要输入前面部分, 后面内容自动补足填充。
dependencies {
implementation("androidx.autofill:autofill:1.1.0")
}
benchmark
androidx.benchmark 在 Android Studio 中准确衡量代码性能。
测试用例和检测工具
dependencies {
androidTestImplementation("androidx.benchmark:benchmark-junit4:1.0.0")
}
android {
...
defaultConfig {
...
testInstrumentationRunner = "androidx.benchmark.junit4.AndroidBenchmarkRunner"
}
}
还可以配合Gradle 插件,使用task等,更复杂操作可以通过官网查询最新配置方案。
biometric
androidx.biometric 生物识别特征或设备凭据进行身份验证,以及执行加密操作的API
就是调用本地的指纹识别,人脸识别等。
dependencies {
// Java language implementation
implementation("androidx.biometric:biometric:1.1.0")
// Kotlin
implementation("androidx.biometric:biometric:1.2.0-alpha03")
}
browser
androidx.browser 在用户的默认浏览器中显示网页。
用来唤起当前手机设备上设置为默认浏览器的应用。在这个浏览器中显示网页。
dependencies {
implementation("androidx.browser:browser:1.3.0")
}
car-app
androidx.car.app 构建 Android Auto 导航、停车和收费应用。
主要是用于汽车应用开发的。
dependencies {
implementation("androidx.car.app:app:1.0.0")
// For testing
implementation("androidx.car.app:app-testing:1.1.0-alpha01")
}
camera X
androidx.camera CameraX 是 Jetpack 的新增库。利用该库,可以更轻松地向应用添加相机功能。该库提供了很多兼容性修复程序和解决方法,有助于在众多设备上打造一致的开发者体验。
区域于android 原生的camera 。所以叫做CameraX
dependencies {
// CameraX core library using the camera2 implementation
val camerax_version = "1.0.0"
// The following line is optional, as the core library is included indirectly by camera-camera2
implementation("androidx.camera:camera-core:${camerax_version}")
implementation("androidx.camera:camera-camera2:${camerax_version}")
// If you want to additionally use the CameraX Lifecycle library
implementation("androidx.camera:camera-lifecycle:${camerax_version}")
// If you want to additionally use the CameraX View class
implementation("androidx.camera:camera-view:1.0.0-alpha26")
// If you want to additionally use the CameraX Extensions library
implementation("androidx.camera:camera-extensions:1.0.0-alpha26")
}
cardview
androidx.cardview 卡片布局API。用圆角和阴影实现 Material Design 卡片图案。
版本相当稳定从2018年9月21日更新至今。没有任何修改。
dependencies {
implementation("androidx.cardview:cardview:1.0.0")
}
collection
androidx.collection 降低现有和新的小型集合对内存的影响。
现在还是一个alpha版本。没有发布正式版本。
dependencies {
val collection_version = "1.2.0-alpha01"
// Java language implementation
implementation("androidx.collection:collection:$collection_version")
// Kotlin
implementation("androidx.collection:collection-ktx:$collection_version")
}
compose
androidx.compose 使用可组合函数来描述界面形状和数据依赖项,从而以编程方式定义界面。
它下面又分了6个maven 小库。
它的依赖方式不同与我们使用implementation 脚本。
默认gradle之中内置了。我们通过开关控制开启即可。
android {
buildFeatures {
compose = true
}
composeOptions {
kotlinCompilerVersion = "1.5.10"
kotlinCompilerExtensionVersion = "1.0.0-rc01"
}
kotlinOptions {
jvmTarget = "1.8"
}
}
开启之后,我们再根据需要 分别倒入不同的compose 下面的子maven库。
compose还是一个比较新的库在不断升级调试之中。
compose.animation
androidx.compose.animation 在 Jetpack Compose 应用中构建动画,丰富用户的体验。
dependencies {
implementation("androidx.compose.animation:animation:1.0.0-rc02")
}
compose.compiler
androidx.compose.compiler 借助 Kotlin 编译器插件,转换 @Composable functions(可组合函数)并启用优化功能。
dependencies {
implementation("androidx.compose.compiler:compiler:1.0.0-rc02")
}
compose.foundation
androidx.compose.foundation 使用现成可用的构建块编写 Jetpack Compose 应用,并扩展 Foundation 以构建您自己的设计系统元素。
dependencies {
implementation("androidx.compose.foundation:foundation:1.0.0-rc02")
implementation("androidx.compose.foundation:foundation-layout:1.0.0-rc02")
}
compose.material
androidx.compose.material 使用现成可用的 Material Design 组件构建 Jetpack Compose UI。这是更高层级的 Compose 入口点,旨在提供与 www.material.io 上描述的组件一致的组件。
dependencies {
implementation("androidx.compose.material:material:1.0.0")
}
compose.runtime
androidx.compose.runtime Compose 编程模型和状态管理的基本组件,以及 Compose 编译器插件的目标核心运行时。
dependencies {
implementation("androidx.compose.runtime:runtime:1.0.0-rc02")
implementation("androidx.compose.runtime:runtime-livedata:1.0.0-rc01")
implementation("androidx.compose.runtime:runtime-rxjava2:1.0.0-rc01")
}
compose.ui
androidx.compose.ui 与设备互动所需的 Compose UI 的基本组件,包括布局、绘图和输入。
dependencies {
implementation("androidx.compose.ui:ui:1.0.0")
}
concurrent
androidx.concurrent 使用协程将任务移出主线程,并充分利用 ListenableFuture。
dependencies {
//java 版本
implementation("androidx.concurrent:concurrent-futures:1.1.0")
// Kotlin 版本
implementation("androidx.concurrent:concurrent-futures-ktx:1.1.0")
}
constraintlayout (*)
androidx.constraintlayout 使用“相对定位”灵活地确定微件的位置和大小。 主要就是Constraintlayout布局库。
dependencies {
implementation("androidx.constraintlayout:constraintlayout:2.0.4")
//如果在compose 之中使用的话需要依赖下面
implementation("androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha07")
}
contentpager
androidx.contentpager 在后台线程中加载 ContentProvider 数据并进行分页。
dependencies {
implementation("androidx.contentpager:contentpager:1.0.0")
}
coordinatorlayout
androidx.coordinatorlayout 定位顶级应用微件,例如 AppBarLayout 和 FloatingActionButton。
dependencies {
implementation("androidx.coordinatorlayout:coordinatorlayout:1.1.0")
}
core (*)
androidx.core 针对最新的平台功能和 API 调整应用,同时还支持旧设备。 和appcompat 的作用类似。
dependencies {
val core_version = "1.7.0"
// Java 版本
implementation("androidx.core:core:$core_version")
// Kotlin 版本
implementation("androidx.core:core-ktx:$core_version")
// 如果使用 RoleManagerCompat
implementation("androidx.core:core-role:1.0.0")
// 如果使用 Animator APIs
implementation("androidx.core:core-animation:1.0.0-alpha02")
// 如果使用Test Animator APIs
androidTestImplementation("androidx.core:core-animation-testing:1.0.0-alpha02")
// 可选
implementation("androidx.core:core-google-shortcuts:1.0.0")
// 可选模块。 splashscreen api
implementation("androidx.core:core-splashscreen:1.0.0-alpha01")
}
cursoradapter
androidx.cursoradapter 这是一个虚类。主要是为Cursor 和ListView 提供桥接功能。
dependencies {
implementation("androidx.cursoradapter:cursoradapter:1.0.0")
}
customview
androidx.customview 实现自定义视图的库。
以前我们自定义View 都是直接继承View 或者ViewGroup。 现在可以用这个库。
节省我们一些模板代码的编写。
dependencies {
implementation("androidx.customview:customview:1.1.0")
}
databinding
androidx.databinding 使用声明性格式将布局中的界面组件绑定到应用中的数据源。
最新版本 3.5.0 2019年9月5日更新。
android {
...
buildFeatures {
dataBinding true
}
}
datastore
androidx.datastore 以异步、一致的事务方式存储数据,克服了 SharedPreferences 的一些缺点。
google尝试的SP的替代方案。当前还没有稳定版本。
DataStore 提供两种不同的实现:Preferences DataStore 和 Proto DataStore。
- Preferences DataStore 使用键存储和访问数据。此实现不需要预定义的架构,也不确保类型安全。
- Proto DataStore 将数据作为自定义数据类型的实例进行存储。此实现要求您使用协议缓冲区来定义架构,但可以确保类型安全。
Proto DataStore 类型的maven 配置方法
// Typed DataStore (Typed API surface, such as Proto)
dependencies {
implementation("androidx.datastore:datastore:1.0.0-rc01")
// optional - RxJava2 support
implementation("androidx.datastore:datastore-rxjava2:1.0.0-rc01")
// optional - RxJava3 support
implementation("androidx.datastore:datastore-rxjava3:1.0.0-rc01")
}
// Alternatively - use the following artifact without an Android dependency.
dependencies {
implementation("androidx.datastore:datastore-core:1.0.0-rc01")
}
Preferences DataStore 类型的maven 配置方法
// Preferences DataStore (SharedPreferences like APIs)
dependencies {
implementation("androidx.datastore:datastore-preferences:1.0.0-rc01")
// optional - RxJava2 support
implementation("androidx.datastore:datastore-preferences-rxjava2:1.0.0-rc01")
// optional - RxJava3 support
implementation("androidx.datastore:datastore-preferences-rxjava3:1.0.0-rc01")
}
// Alternatively - use the following artifact without an Android dependency.
dependencies {
implementation("androidx.datastore:datastore-preferences-core:1.0.0-rc01")
}
documentfile
androidx.documentfile 文件文档查看API
dependencies {
implementation("androidx.documentfile:documentfile:1.0.1")
}
drawerlayout
androidx.drawerlayout 实现 Material Design 抽屉式导航栏微件 API
dependencies {
implementation("androidx.drawerlayout:drawerlayout:1.1.1")
}
dynamicanimation
androidx.dynamicanimation 使用基于物理特性的动画 API 制作流畅的动画。
dependencies {
// Java 版本
implementation("androidx.dynamicanimation:dynamicanimation:1.1.0-alpha03")
// Kotlin 版本
implementation("androidx.dynamicanimation:dynamicanimation-ktx:1.1.0-alpha03")
}
emoji2
androidx.emoji2 emoji表情符号API。 支持在设备上显示表情
appCompat 1.4.0-alpha01 版本开始,将会默认依赖emoji2并启用。
dependencies {
val emoji2_version = "1.0.0-alpha03"
implementation("androidx.emoji2:emoji2:$emoji2_version")
implementation("androidx.emoji2:emoji2-views:$emoji2_version")
implementation("androidx.emoji2:emoji2-views-helper:$emoji2_version")
}
相对于 emoji 而言emoji2的变化
- 使用
androidx.startup
添加了新的自动配置EmojiCompatInitializer
。 - 添加了新的默认配置,该配置会根据服务位置在
DefaultEmojiCompatConfiguration
中查找可下载的字体提供程序。 - 将相应的类从
androidx.emoji
软件包移到了androidx.emoji2
。 - 将
EmojiTextView
和相关视图拆分为单独的工件emoji2-views
。这应仅在您的应用不使用 AppCompat 时使用。 - 提取用于将 EmojiCompat 集成到自定义视图中的帮助程序,并存放到单独的工件
emoji2-views-helper
中。 - 添加了可为 null 性注解。
- 现在,即使未初始化
EmojiCompat
也可以使用emoji2-views-helper
中的帮助程序,而在之前则会抛出异常。
enterprise
androidx.enterprise 创建企业专用应用。
dependencies {
val enterprise_version = "1.1.0"
implementation("androidx.enterprise:enterprise-feedback:$enterprise_version")
// For testing enterprise feedback in isolation
implementation("androidx.enterprise:enterprise-feedback-testing:$enterprise_version")
}
exifinterface
androidx.exifinterface 读取和写入图片文件 EXIF 标记。
dependencies {
implementation("androidx.exifinterface:exifinterface:1.3.2")
}
fragment
androidx.fragment Fragment的所有API库。
dependencies {
val fragment_version = "1.3.6"
// java版本
implementation("androidx.fragment:fragment:$fragment_version")
// Kotlin 版本
implementation("androidx.fragment:fragment-ktx:$fragment_version")
// 测试用例
debugImplementation("androidx.fragment:fragment-testing:$fragment_version")
}
games (*)
androidx.games 这个是Android Games SDK 库,也可以使用AndroidX 在不下载SDK 的情况下。使用。并集成到build中。
android {
...
// To use the Android Frame Pacing or Android Performance Tuner libraries, enable
// native dependencies to be imported. Libraries will be made available to your CMake build
// as packages named "games-frame-pacing" and "games-performance-tuner".
buildFeatures {
prefab = true
}
}
dependencies {
// To use the Android Frame Pacing library
implementation("androidx.games:games-frame-pacing:1.9.0")
// To use the Android Performance Tuner
implementation("androidx.games:games-performance-tuner:1.4.3")
// To use the Games Activity library
implementation("androidx.games:games-activity:1.0.0-rc01")
// To use the Games Controller Library
implementation("androidx.games:games-controller:1.0.0-rc01")
// To use the Games Text Input Library
implementation("androidx.games:games-text-input:1.0.0-rc01")
}
}
gridlayout
androidx.gridlayout 网格布局API库
dependencies {
implementation("androidx.gridlayout:gridlayout:1.0.0")
}
health
androidx.health 通过平台无关的方式构建高性能健康应用。
主要就是各种传感设备的API集合。集成了各种锻炼状态。
步行,跑步,舞蹈,水球等。
主要就是方便进行运动健身和各种身体健康监控数据的整合开发。
当前只有alpha版本。还没有正式版本。
dependencies {
implementation("androidx.health:health-services-client:1.0.0-alpha01")
}
heifwriter
androidx.heifwriter 使用 Android 设备上可用的编解码器,以 HEIF 格式对图像或图像集进行编码。
dependencies {
implementation("androidx.heifwriter:heifwriter:1.1.0-alpha01")
}
hilt (*)
androidx.hilt 扩展了 Dagger Hilt 的功能,以实现 androidx 库中某些类的依赖项注入。
dependencies {
implementation("androidx.hilt:hilt:1.0.0")
//如果需要与Compose 库交互那边需要依赖下面的库
implementation("androidx.hilt:hilt-navigation-compose:1.0.0-alpha03")
}
interpolator
androidx.interpolator 在旧版平台上使用动画插值器。
主要就是在低API 版本下使用动画插值器
dependencies {
implementation("androidx.interpolator:interpolator:1.0.0")
}
jetifier
androidx.jetifier 一款独立工具,可将某个库中对已弃用支持库的依赖项迁移到等效的 AndroidX 依赖项。
dependencies {
implementation("androidx.jetifier:jetifier-core:1.0.0-beta10")
implementation("androidx.jetifier:jetifier-processor:1.0.0-beta10")
}
leanback
androidx.leanback 使用适合 dpad 的微件和模板 Fragment 为 Android TV 设备编写应用。
dependencies {
val leanback_version = "1.1.0-rc01"
implementation("androidx.leanback:leanback:$leanback_version")
// leanback-preference is an add-on that provides a settings UI for TV apps.
implementation("androidx.leanback:leanback-preference:$leanback_version")
// leanback-paging is an add-on that simplifies adding paging support to a RecyclerView Adapter.
implementation("androidx.leanback:leanback-paging:1.1.0-alpha07")
// leanback-tab is an add-on that provides customized TabLayout to be used as the top navigation bar.
implementation("androidx.leanback:leanback-tab:1.1.0-beta01")
}
lifecycle (*)
androidx.lifecycle 生命周期感知型组件可执行操作来响应另一个组件(如 Activity 和 Fragment)的生命周期状态的变化。这些组件有助于您写出更有条理且往往更精简的代码,这样的代码更易于维护。
算是JetPack 中的一个大功能模块
Kotlin 下面的版本
dependencies {
val lifecycle_version = "2.3.1"
val arch_version = "2.1.0"
// ViewModel
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version")
// LiveData
implementation("androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version")
// Lifecycles only (without ViewModel or LiveData)
implementation("androidx.lifecycle:lifecycle-runtime-ktx:$lifecycle_version")
// Saved state module for ViewModel
implementation("androidx.lifecycle:lifecycle-viewmodel-savedstate:$lifecycle_version")
// Annotation processor
kapt("androidx.lifecycle:lifecycle-compiler:$lifecycle_version")
// 如果使用Java8,请使用下面的编译器而不是生命周期编译器
implementation("androidx.lifecycle:lifecycle-common-java8:$lifecycle_version")
// 可选项 - helpers for implementing LifecycleOwner in a Service
implementation("androidx.lifecycle:lifecycle-service:$lifecycle_version")
// 可选项 - ProcessLifecycleOwner provides a lifecycle for the whole application process
implementation("androidx.lifecycle:lifecycle-process:$lifecycle_version")
// 可选项 - ReactiveStreams support for LiveData
implementation("androidx.lifecycle:lifecycle-reactivestreams-ktx:$lifecycle_version")
// 可选项 - Test helpers for LiveData
testImplementation("androidx.arch.core:core-testing:$arch_version")
}
java 版本
dependencies {
val lifecycle_version = "2.3.1"
val arch_version = "2.1.0"
// ViewModel
implementation("androidx.lifecycle:lifecycle-viewmodel:$lifecycle_version")
// LiveData
implementation("androidx.lifecycle:lifecycle-livedata:$lifecycle_version")
// 只有生命周期(没有ViewModel或LiveData)
implementation("androidx.lifecycle:lifecycle-runtime:$lifecycle_version")
// Saved state module for ViewModel
implementation("androidx.lifecycle:lifecycle-viewmodel-savedstate:$lifecycle_version")
// Annotation processor
annotationProcessor("androidx.lifecycle:lifecycle-compiler:$lifecycle_version")
//如果使用Java8,请使用下面的编译器而不是生命周期编译器
implementation("androidx.lifecycle:lifecycle-common-java8:$lifecycle_version")
// 可选项 - helpers for implementing LifecycleOwner in a Service
implementation("androidx.lifecycle:lifecycle-service:$lifecycle_version")
// 可选项 - ProcessLifecycleOwner provides a lifecycle for the whole application process
implementation("androidx.lifecycle:lifecycle-process:$lifecycle_version")
// 可选项 - ReactiveStreams support for LiveData
implementation("androidx.lifecycle:lifecycle-reactivestreams:$lifecycle_version")
// 可选项 - Test helpers for LiveData
testImplementation("androidx.arch.core:core-testing:$arch_version")
}
loader
androidx.loader 加载在配置发生变化后继续存在的界面数据。
dependencies {
implementation("androidx.loader:loader:1.1.0")
}
media2
androidx.media2 与其他应用共享媒体内容和控件。
dependencies {
val media2_version = "1.1.3"
// Interacting with MediaSessions
implementation("androidx.media2:media2-session:$media2_version")
// optional - UI widgets for VideoView and MediaControlView
implementation("androidx.media2:media2-widget:$media2_version")
// optional - Implementation of a SessionPlayer
implementation("androidx.media2:media2-player:$media2_version")
}
mediarouter
androidx.mediarouter 利用通用界面实现在远程接收端设备上显示和播放媒体内容。
dependencies {
implementation("androidx.mediarouter:mediarouter:1.2.4")
}
multidex
androidx.multidex 分包工具。让设备支持多个dex文件的应用的部署。
主要就是为了解决65536的方法量过大的问题。
dependencies {
implementation("androidx.multidex:multidex:2.0.4")
}
navigation
androidx.navigation 是一个框架,用于在 Android 应用中的“目标”之间导航,该框架提供一致的 API,无论目标是作为 Fragment、Activity 还是其他组件实现。
顶部导航
dependencies {
val nav_version = "2.3.5"
// Java 版本
implementation("androidx.navigation:navigation-fragment:$nav_version")
implementation("androidx.navigation:navigation-ui:$nav_version")
// Kotlin 版本
implementation("androidx.navigation:navigation-fragment-ktx:$nav_version")
implementation("androidx.navigation:navigation-ui-ktx:$nav_version")
// 功能模块支持
implementation("androidx.navigation:navigation-dynamic-features-fragment:$nav_version")
// 测试用例
androidTestImplementation("androidx.navigation:navigation-testing:$nav_version")
// Jetpack Compose Integration
implementation("androidx.navigation:navigation-compose:2.4.0-alpha05")
}
paging (*)
androidx.paging 使用 Paging 库可以更轻松地在应用的 RecyclerView 中逐步妥善地加载数据。
dependencies {
val paging_version = "3.0.0"
implementation("androidx.paging:paging-runtime:$paging_version")
// alternatively - without Android dependencies for tests
testImplementation("androidx.paging:paging-common:$paging_version")
// 可选项 - RxJava2 support
implementation("androidx.paging:paging-rxjava2:$paging_version")
// 可选项 - RxJava3 support
implementation("androidx.paging:paging-rxjava3:$paging_version")
// 可选项 - Guava ListenableFuture support
implementation("androidx.paging:paging-guava:$paging_version")
// 可选项 - Jetpack Compose integration
implementation("androidx.paging:paging-compose:1.0.0-alpha11")
}
palette
androidx.palette 从图片中提取具有代表性的调色板。
主要用于获取图片的颜色。
dependencies {
implementation("androidx.palette:palette:1.0.0")
}
preference
androidx.preference 无需与设备存储空间交互,也不需要管理界面,便能构建交互式设置画面。
可以设置app 各种配置信息。
dependencies {
val preference_version = "1.1.1"
// Java language implementation
implementation("androidx.preference:preference:$preference_version")
// Kotlin
implementation("androidx.preference:preference-ktx:$preference_version")
}
androidx.print 通过您的应用打印照片、文档和其他图形及图片。
打印库。需要外置设备的支持。 当前为beta版本。还没有正式版本。
dependencies {
implementation("androidx.print:print:1.1.0-beta01")
}
profileinstaller
androidx.profileinstaller 让库能够提前预填充要由 ART 读取的编译轨迹。
当前为alpha01版本。还没有正式版本。
dependencies {
implementation("androidx.profileinstaller:profileinstaller:1.1.0-alpha01")
}
recommendation
androidx.recommendation 将内容推送到 Android TV 启动器的主屏幕。
dependencies {
implementation("androidx.recommendation:recommendation:1.0.0")
}
recyclerview
androidx.recyclerview RecyclerView 类,主要是ListView 的替换类。
在您的界面中显示大量数据,同时最大限度减少内存用量。 用于各类列表。
dependencies {
implementation("androidx.recyclerview:recyclerview:1.2.1")
//如果有鼠标驱动等 可以加载下面这个selection 库
implementation("androidx.recyclerview:recyclerview-selection:1.1.0")
}
remotecallback
androidx.remotecallback 创建一个封装容器,以便开发者更轻松地提供 PendingIntent。
dependencies {
implementation("androidx.remotecallback:remotecallback:1.0.0")
}
resourceinspection
androidx.resourceinspection 在 Android Studio 的实时布局检查器中显示自定义视图的属性。
dependencies {
implementation("androidx.resourceinspection:resourceinspection-annotation:1.0.0-alpha03")
}
room
androidx.room Room 持久性库在 SQLite 的基础上提供了一个抽象层,让用户能够在充分利用 SQLite 的强大功能的同时,获享更强健的数据库访问机制。
dependencies {
def room_version = "2.3.0"
implementation("androidx.room:room-runtime:$room_version")
annotationProcessor "androidx.room:room-compiler:$room_version"
// To use Kotlin annotation processing tool (kapt)
kapt("androidx.room:room-compiler:$room_version")
// To use Kotlin Symbolic Processing (KSP)
ksp("androidx.room:room-compiler:$room_version")
// optional - Kotlin Extensions and Coroutines support for Room
implementation("androidx.room:room-ktx:$room_version")
// optional - RxJava2 support for Room
implementation "androidx.room:room-rxjava2:$room_version"
// optional - RxJava3 support for Room
implementation "androidx.room:room-rxjava3:$room_version"
// optional - Guava support for Room, including Optional and ListenableFuture
implementation "androidx.room:room-guava:$room_version"
// optional - Test helpers
testImplementation("androidx.room:room-testing:$room_version")
}
savedstate
androidx.savedstate 编写可插入组件,这些组件会在进程终止时保存界面状态,并在进程重启时恢复界面状态。
dependencies {
// Java
implementation("androidx.savedstate:savedstate:1.1.0")
// Kotlin
implementation("androidx.savedstate:savedstate-ktx:1.1.0")
}
security
androidx.security 安全地管理密钥并对文件和 sharedpreferences 进行加密。
dependencies {
implementation("androidx.security:security-crypto:1.0.0")
// For Identity Credential APIs
implementation("androidx.security:security-identity-credential:1.0.0-alpha02")
// For App Authentication APIs
implementation("androidx.security:security-app-authenticator:1.0.0-alpha02")
// For App Authentication API testing
androidTestImplementation("androidx.security:security-app-authenticator:1.0.0-alpha01")
}
sharetarget
androidx.sharetarget 提供向后兼容性,可以将快捷方式用作直接共享目标。
dependencies {
implementation("androidx.sharetarget:sharetarget:1.1.0")
}
slice
androidx.slice 在应用外显示模板化界面元素。
dependencies {
implementation("androidx.slice:slice-builders:1.1.0-alpha02")
implementation("androidx.slice:slice-core:1.1.0-alpha02")
implementation("androidx.slice:slice-view:1.1.0-alpha02")
}
slidingpanelayout
androidx.slidingpanelayout 实现滑动窗格界面模式。 类似左侧滑动弹出新的布局
dependencies {
implementation("androidx.slidingpanelayout:slidingpanelayout:1.1.0")
}
startup
androidx.startup 可在应用启动时简单、高效地初始化组件。
dependencies {
implementation("androidx.startup:startup-runtime:1.1.0-beta01")
}
sqlite
androidx.sqlite SQLite 数据库 的抽象API。 实现构建自身的SQLite库
但是现在一般建议使用room库了。因为更强大。
dependencies {
val sqlite_version = "2.1.0"
// Java 版本
implementation("androidx.sqlite:sqlite:$sqlite_version")
// Kotlin 版本
implementation("androidx.sqlite:sqlite-ktx:$sqlite_version")
// 通过Android框架api实现AndroidX SQLite接口。
implementation("androidx.sqlite:sqlite-framework:$sqlite_version")
}
swiperefreshlayout
androidx.swiperefreshlayout 下拉刷新API 。
dependencies {
implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0")
}
test
androidx.test 单元测试API
通常情况下创建项目后,自动创建
当前最新版本 1.4.0
textclassifier
androidx.textclassifier 识别文本中的对话、链接、选定内容和其他类似构造内容。
dependencies {
implementation("androidx.textclassifier:textclassifier:1.0.0-alpha03")
}
tracing
androidx.tracing 将跟踪事件写入系统跟踪缓冲区。
dependencies {
//java 版本
implementation("androidx.tracing:tracing:1.0.0")
//kotlin 版本
implementation("androidx.tracing:tracing-ktx:1.0.0")
}
transition
androidx.transition 使用开始和结束布局为界面中的动作添加动画效果。
dependencies {
// Java
implementation("androidx.transition:transition:1.4.1")
// Kotlin
implementation("androidx.transition:transition-ktx:1.4.1")
}
tvprovider
androidx.tvprovider 提供 Android TV 频道。
当前还是测试版本。为发布稳定版本
dependencies {
implementation("androidx.tvprovider:tvprovider:1.1.0-alpha01")
}
vectordrawable
androidx.vectordrawable 渲染矢量图形。
dependencies {
implementation("androidx.vectordrawable:vectordrawable:1.1.0")
/* To be able to animate properties of a VectorDrawable, add the following. Useful for
* illustration purposes or state changes in response to user events
*/
implementation("androidx.vectordrawable:vectordrawable-animated:1.1.0")
/* To use a seekable alternative for `androidx.vectordrawable:vectordrawable-animated` add the
* following
*/
implementation("androidx.vectordrawable:vectordrawable-seekable:1.0.0-alpha02")
}
versionedparcelable
androidx.versionedparcelable 提供稳定且紧凑的二进制序列化格式,该格式可跨进程传递或安全保留。
dependencies {
implementation("androidx.versionedparcelable:versionedparcelable:1.1.1")
}
viewpager
androidx.viewpager 以可滑动的格式显示视图或 Fragment。
如果可能,请改用 viewpager2。
当前这个类还没有废弃,但是以后还是建议
dependencies {
implementation("androidx.viewpager:viewpager:1.0.0")
}
viewpager2
androidx.viewpager 以可滑动的格式显示视图或 Fragment。
dependencies {
implementation("androidx.viewpager2:viewpager2:1.0.0")
}
wear
androidx.wear 打造适用于 Wear OS by Google 谷歌智能手表的应用。
dependencies {
implementation("androidx.wear:wear:1.1.0")
// Add support for wearable specific inputs
implementation("androidx.wear:wear-input:1.0.0")
implementation("androidx.wear:wear-input-testing:1.0.0")
// Use to implement wear watchface complications
implementation("androidx.wear:wear-complications-provider:1.0.0-alpha17")
// Use to implement wear watchfaces
implementation("androidx.wear:wear-watchface:1.0.0-alpha17")
}
wear-compose
androidx.wear.compose 编写适用于穿戴式设备的 Jetpack Compose 应用,提供相关功能来支持穿戴式设备以及该类设备专属的尺寸、形状和导航手势。
dependencies {
implementation("androidx.wear.compose:compose-foundation:1.0.0-alpha01")
// For Wear Material Design UX guidelines and specifications
implementation("androidx.wear.compose:compose-material:1.0.0-alpha01")
}
wear-tiles
androidx.wear.tiles 打造适用于 Wear OS by Google 谷歌智能手表的应用。
dependencies {
// Use to implement support for wear tiles
implementation("androidx.wear.tiles:tiles:1.0.0-alpha08")
// Use to preview wear tiles in your own app
debugImplementation("androidx.wear.tiles:tiles-renderer:1.0.0-alpha08")
}
webkit
androidx.webkit 在 Android 5 及更高版本上使用新式 WebView API。 webView 的API
dependencies {
implementation("androidx.webkit:webkit:1.4.0")
}
window
androidx.window Window Manager 旨在帮助应用开发者为新的设备类型提供支持,并为新旧版本平台上的不同 Window Manager 功能提供通用的 API 接口。初始版本以可折叠设备为目标,未来版本将扩展到更多屏幕类型和窗口功能。
dependencies {
implementation("androidx.window:window:1.0.0-alpha09")
// For RxJava2 integration
implementation("androidx.window:window-rxjava2:1.0.0-alpha09")
// For RxJava3 integration
implementation("androidx.window:window-rxjava3:1.0.0-alpha09")
// For testing
implementation("androidx.window:window-testing:1.0.0-alpha09")
}
work
androidx.work 使用 WorkManager API 可以轻松地调度那些必须可靠运行的可延期异步任务。通过这些 API,您可以创建任务并提交给 WorkManager,以便在满足工作约束条件时运行。
WorkManager 需要 compileSdk
版本 28 或更高版本。
dependencies {
val work_version = "2.5.0"
// 只适用java 的版本
implementation("androidx.work:work-runtime:$work_version")
//Kotlin +Java 混编版本。
implementation("androidx.work:work-runtime-ktx:$work_version")
//可选 - RxJava2 support
implementation("androidx.work:work-rxjava2:$work_version")
// 可选 - GCMNetworkManager support
implementation("androidx.work:work-gcm:$work_version")
// 可选 - Test helpers
androidTestImplementation("androidx.work:work-testing:$work_version")
// 可选 - Multiprocess support
implementation "androidx.work:work-multiprocess:$work_version"
}
废弃库
emoji
androidx.emoji emoji表情符号API。 支持在设备上显示表情。已经被emoji2替代了。
dependencies {
implementation("androidx.emoji:emoji:1.1.0")
implementation("androidx.emoji:emoji-appcompat:1.1.0")
implementation("androidx.emoji:emoji-bundled:1.1.0")
}
legacy
androidx.legacy 使用适合 dpad 的微件和模板 Fragment 为 Android TV 设备编写应用。
Andrroid 8 以后 。后台检查限制会使此类不再有用。
dependencies {
implementation("androidx.legacy:legacy:1.0.0")
}
localbroadcastmanager
androidx.localbroadcastmanager 这个类也废弃了。 建议LiveData 替代使用。
dependencies {
implementation("androidx.localbroadcastmanager:localbroadcastmanager:1.0.0")
}
media
androidx.media 与其他应用共享媒体内容和控件。已被 media2 取代。
dependencies {
implementation("androidx.media:media:1.3.1")
}
percentlayout
androidx.percentlayout
此工件及其类已弃用。请改用 ConstraintLayout 和关联布局。
dependencies {
implementation("androidx.percentlayout:percentlayout:1.0.0")
}
评论区