• Android Jetpack的组件介绍,常见组件解析


    jetpack组件有哪些

    Android Jetpack是一个集成Android应用程序组件的一站式解决方案。它使开发人员能够专注于他们的应用程序的真正创新部分,而不会受到Android平台特定的限制。Jetpack组件可分为四个类别:

    • 架构组件(Architecture Components)
    • UI组件(UI Components)
    • 行为组件(Behavior Components)
    • 基础组件(Foundation Components)

    架构组件包括Room, LiveData, ViewModel和Data Binding。UI组件包括RecyclerView、Paging、Navigation等等。行为组件包括WorkManager和Notifications。基础组件包括AppCompat、Multidex、Test、安全等等。

    jetpack常用组件

    1. Room

    Room 是一个 SQLite 对象映射库,让您能够在应用中使用数据库,同时充分利用 LiveData、ViewModel 和协程等现代化库。

    @Entity
    data class User(
        @PrimaryKey val uid: Int,
        @ColumnInfo(name = "first_name") val firstName: String?,
        @ColumnInfo(name = "last_name") val lastName: String?
    )
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    2. LiveData

    LiveData是一个生命周期感知的可观察数据存储器类,可帮助您构建响应式,健壮和可测试的界面。LiveData经常与ViewModel一起使用,使数据更新后可以自动更新UI。

    val mutableLiveData = MutableLiveData("Hello World")
    mutableLiveData.observe(this, Observer { s -> text_view.text = s })
    
    • 1
    • 2

    3. ViewModel

    ViewModel是一个专门为UI层开发的类,通过保存数据的方式,解决了UI层重建,数据丢失的问题。ViewModel可以确保当配置更改、活动终止并重新创建时,数据会立即恢复。

    class MyViewModel : ViewModel() {
        private val users: MutableLiveData> by lazy {
            MutableLiveData>().also {
                loadUsers()
            }
        }
    
        fun getUsers(): LiveData> {
            return users
        }
    
        private fun loadUsers() {
            // Do an asynchronous operation to fetch users.
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    4. Data Binding

    数据绑定库(Data Binding Library)可以让您以声明方式将可观察对象绑定到界面元素。它的出现,让每一个具有一定业务逻辑的界面都可以得到简化,以减少代码的编写以及针对Eclipse, ADT 和 Android Studio 等不同工具,提供了最方便的开发环境的支持工具。

    Jetpack 的存在意义

    1、提高开发效率

    • Jetpack 提供了 大量 现成 的 组件 和 工具 , 可以快速 构建 高质量 / 高性能 的 Android 工程 , 并且可以 提高 代码的 稳定性 , 可维护性 ;
    • 使用 Jetpack 库 , 减少了很多 重复性的 代码工作 , 提高了开发效率 ;

    2、最佳架构方案

    • Jetpack 是 Google 推荐的最佳的架构方案 , 一直在 不断更新 , 并且 兼容之前的 Android 系统版本 ;
    • 使用 Jetpack 可以减少 架构带来 内存泄漏 和 崩溃 ;

    3、消除样本代码

    • 使用 Jetpack 开发套件 , 可以轻松进行 工程架构 , 减少不必要的 架构相关的样板代码 , 开发者只需要专心开发自己的逻辑代码即可 ;
    • Jetpack 提供了一套 UI , 行为 , 架构 相关的解决方案 , 开发者可以不用再架构上浪费时间 , 专心开发自己的逻辑 ;
    • 样板代码示例 : Activity 中管理各种生命周期 ;

    4、设备系统兼容性

    • 开发 Android 应用 , 需要 考虑到 Android 的各个版本的特性 , 以及 各个 Android 手机厂商的适配问题 , 需要花费大量的时间精力进行适配工作 ;
    • 使用 Jetpack 可以保证 在 各个 Android 版本 , 各种 Android 设备中 , 保持运行一致 , 可以降低 测试 , 适配 的 工作量 ;
    • Jetpack 自带设备系统兼容性解决方案 ;

    5、改善应用性能

    • 使用 Jetpack 提供的 一系列的 组件 和 工具 , 可以
    • 提高 应用的 性能 ,
    • 提高 代码稳定性 ,
    • 提高 代码可维护性 ,
    • 减少应用崩溃 ,
    • 减少应用内存泄漏 ;

    6、测试支持

    • Jetpack 提供了一系列的 测试组件 ,
    • 借助 Espresso , UI Automator , JUnit 测试组件 ,
    • 可以快速 创建 Android 自动化测试 功能 ,
    • 提高 程序的 质量 , 提高代码的稳定性 ;

    jetpack组件库

    Jetpack还有一些组件库,比如Hilt, WorkManager, CameraX和Compose等等。

    1. Hilt

    Hilt是Android的依赖注入库,用于定义应用程序中的类之间的依赖关系。它简化了和Dagger2一样的依赖注入过程,并简化了注入实例的进程。

    @InstallIn(SingletonComponent::class)
    @Module
    class MyModule {
        @Provides
        fun provideFoo(): Foo = Foo() 
    }
    
    class Foo @Inject constructor()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    2. WorkManager

    WorkManager是一个API,它让您能够安排后台任务,即使应用已经退出或设备已经重启。有了WorkManager,您可以针对应用使用情况定义灵活且轻量化的任务,并确保在设备单独的线程上以可靠、一致的方式运行。

    val uploadWorkRequest = OneTimeWorkRequestBuilder().build()
    WorkManager
        .getInstance(context)
        .enqueue(uploadWorkRequest)
    
    • 1
    • 2
    • 3
    • 4

    3. CameraX

    CameraX是一组相机API,可让您轻松访问设备的摄像头。它有着简单易用的API,便于开发者使用。CameraX 支持多种设备,版本兼容,可读性高。

    val preview = Preview.Builder().build()
    val analysisUseCase = ImageAnalysis.Builder().build()
    val imageCapture = ImageCapture.Builder()
        .setTargetRotation(previewView.display.rotation)
        .build()
    
    • 1
    • 2
    • 3
    • 4
    • 5

    本文就主要讲解了,在Android Jetpack中的组件有哪些,常用的组件介绍,更多Android Jetpack的学习可以参考《Android Jetpack笔记》点击就可以查看详细的类目板块,也可以拿取。

    結尾

    到目前为止,Jetpack包含80多个库的组件。每个库都是专为 Android 开发而设计的,涵盖了各种开发过程中的各个方面。

  • 相关阅读:
    插入排序.
    电脑白屏桌面循环切换,硬盘bitlocker重要数据无法导出
    [Java安全]—Interceptor内存马
    Charles 抓包工具教程(五) Charles 如何进行Mock
    [C++][算法基础]求组合数(III)
    SHAP 和 LIME 解释模型
    AI学习指南机器学习篇-深度确定性策略梯度(Deep Deterministic Policy Gradient,DDPG)
    动静图结合——冒泡排序
    代码案例详解!如何让机器学习模型自解释!⛵
    产品设计与用户体验 优漫动游
  • 原文地址:https://blog.csdn.net/m0_70748845/article/details/134448263