美文网首页
Android Jetpack简介

Android Jetpack简介

作者: 因为我的心 | 来源:发表于2020-07-02 09:36 被阅读0次

    一、前言:

    2018年谷歌I/O 发布了一系列辅助android开发者的实用工具,合称Jetpack,以帮助开发者构建出色的 Android 应用。

    Jetpack 是一套库、工具和指南,可帮助开发者更轻松地编写优质应用。这些组件可帮助您遵循最佳做法、让您摆脱编写样板代码的工作并简化复杂任务,以便您将精力集中放在所需的代码上。

    二、简介:

    1. Jetpack主要特性

    ①加速开发:组件可单独使用,也可以协同工作,当使用kotlin语言特性时,可以提高效率。

    ②消除样板代码:Android Jetpack可管理繁琐的Activity(如后台任务、导航和生命周期管理)。

    ③构建高质量的强大应用:Android Jetpack组件围绕现代化设计实践构建而成,具有向后兼容性,可以减少崩溃和内存泄漏。

    2. Jetpack分类

    其实Jetpack中的很多组件并非新开发的,Goole I/O 2017大会时推出了 Android Architecture Component(AAC),它包括了LifeCycle、LiveData、ViewModel、Room。在Goole I/O 2018大会上,用AndroidX替代了Android Support Library,并在Android Architecture Component的基础上发布了Android Jetpack,AndroidX也是属于Android Jetpack。

    Android Jetpack分类有4种,分别是Architecture、Foundationy、Behavior、UI,下面分别介绍下:

    图片.png

    3. Architecture(架构组件)

    Architecture指的是架构组件,帮助开发者设计稳健、可测试且易维护的应用。架构组件可以说是对应用开发帮助最大的组件,本系列也是围绕着架构组件进行讲解。

    • \color{red}{DataBinding:}以声明方式将可观察数据绑定到界面元素,通常和ViewModel配合使用。

    • \color{red}{Lifecycle:}用于管理Activity和Fragment的生命周期,可帮助开发者生成更易于维护的轻量级代码。

    • \color{red}{LiveData:} 在底层数据库更改时通知视图。它是一个可观察的数据持有者,与常规observable不同,LiveData是生命周期感知的。

    • \color{red}{Navigation:}处理应用内导航。

    • \color{red}{Paging:}可以帮助开发者一次加载和显示小块数据,按需加载部分数据可减少网络带宽和系统资源的使用。

    • \color{red}{Room:}友好、流畅的访问SQLite数据库。它在SQLite的基础上提供了一个抽象层,允许更强大的数据库访问。

    • \color{red}{ViewModel: }以生命周期的方式管理界面相关的数据,通常和DataBinding配合使用,为开发者实现MVVM架构提供了强有力的支持。

    • \color{red}{WorkManager: }管理Android的后台的作业,即使应用程序退出或设备重新启动也可以运行可延迟的异步任务。

    官方推荐的Android应用架构如下图所示。

    image

    这些架构组件既可以配合使用,也可以单独使用,这里建议还是尽量按照官方推荐的来。

    4. Foundationy(基础组件)

    基础组件提供横向功能,例如向后兼容性、测试、安全、Kotlin 语言支持,并包括多个多个平台开发的组件。

    • \color{red}{Android KTX:}优化了供Kotlin使用的Jetpack和Android平台API。帮助开发者以更简洁、更愉悦、更惯用的方式使用Kotlin进行Android开发。

    • \color{red}{AppCompat:}帮助较低版本的Android系统进行兼容。

    • \color{red}{Auto: }开发Android Auto应用的组件,提供了适用于所有车辆的标准化界面和用户交互。

    • \color{red}{检测:}从AndroidStudio中快速检测基于Kotlin或Java的代码。

    • \color{red}{多Dex处理:}为具有多个Dex文件应用提供支持。

    • \color{red}{安全:}安全的读写加密文件和共享偏好设置。

    • \color{red}{测试:}用于单元和运行时界面测试的Android 测试框架。

    • \color{red}{TV: }构建可让用户在大屏幕上体验沉浸式内容的应用。

    • \color{red}{Wear OS:}开发Wear应用的组件。

    5. Behavior(行为组件)

    行为组件可帮助开发者的应用与标准Android服务(如通知、权限、分享)相集成。

    • \color{red}{CameraX:}帮助开发简化相机应用的开发工作。它提供一致且易于使用的界面,适用于大多数Android。设备,并可向后兼容至Android 5.0(API 21)。

    • \color{red}{DownloadManager:}处理长时间运行的HTTP下载的系统服务。

    • \color{red}{媒体和播放:}用于媒体播放和路由(包括Google Cast)的向后兼容API。

    • \color{red}{通知:}提供向后兼容的通知API,支持Wear和Auto。

    • \color{red}{权限:}用于检查和请求应用权限的兼容性API。

    • \color{red}{设置:}创建交互式设置,建议使用AndroidX Preference Library库将用户可配置设置集成到应用中。

    • \color{red}{分享操作:}可以更轻松地实现友好的用户分享操作。

    • \color{red}{切片:}切片是一种UI模板,创建可在应用外部显示应用数据的灵活界面元素。

    6. UI(界面组件)

    • \color{red}{Animation and Transition:}该框架包含用于常见效果的内置动画,并允许开发者创建自定义动画和生命周期回调。

    • \color{red}{Emoji Compatibility:}即便用户没有更新Android系统也可以获取最新的表情符号。

    • \color{red}{Fragment:}组件化界面的基本单位。

    • \color{red}{布局:}用XML中声明UI元素或者在代码中实例化UI元素。

    • \color{red}{调色板:}从调色板中提取出有用的信息。

    三、在项目中使用Jetpack

    所有 Jetpack 组件都可在 Google Maven 代码库中找到。

    打开项目build.gradle 文件并添加 google()代码库,如下所示:

    allprojects {
          repositories {
              google()
              jcenter()
         }
    }
    

    然后,您可以添加 Jetpack 组件,例如作为 Lifecycles 库的一部分的 LiveDataViewModel 等架构组件,如下所示:

    dependencies {
        def lifecycle_version = "2.0.0"
        implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
        // Optional : Kotlin extension (https://d.android.com/kotlin/ktx)
        implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
        ...
    }
    

    官方参考文章

    相关文章

      网友评论

          本文标题:Android Jetpack简介

          本文链接:https://www.haomeiwen.com/subject/ludlqktx.html