侧边栏壁纸
  • 累计撰写 379 篇文章
  • 累计创建 60 个标签
  • 累计收到 109 条评论

目 录CONTENT

文章目录

Android Jetpack 库介绍

Z同学
2021-08-04 / 0 评论 / 0 点赞 / 1,071 阅读 / 39,415 字
温馨提示:
本文最后更新于 2021-08-09,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

前言

学习各种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")
}

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")
}

print

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")
}
0

评论区