Android Jetpack 系列全解析 -- 简介

一 What:Jetpack 是什么?

官方定义如下:

Jetpack 是一个由多个库组成的套件,可帮助开发者遵循最佳实践、减少样板代码并编写可在各种 Android 版本和设备中一致运行的代码,让开发者可将精力集中于真正重要的编码工作。

jetpack logo.png

简而言之,Jetpack 就是一种组件库、工具或者指南。使用 Jetpack 对于开发者和 Google 而言,都有一定的好处:

  • 对于开发者而言: 使用 Jetpack,能够快速构建出稳定、高性能、测试友好同时向后兼容的 APP。
  • 对于 Google 而言: 普及 Jetpack,推广自己制定的开发规范,能更好管理整个野蛮生长的 Android 开发生态。

所以,Jetpack 本质就是一个丰富的组件库,它的组件库按类别分为 4 类,分别是架构(Architecture)、用户界面(UI)、行为(behavior)和基础(foundation)。每个组件都可以单独使用,也可以配合在一起使用。每个组件都给用户提供了一个标准,能够帮助开发者遵循最佳做法,减少样板代码并编写可在各种 Android 版本和设备中一致运行的代码,让开发者能够集中精力编写重要的业务代码。

图片20230420141222.png

架构(Architecture):

由 8 个库和工具组成,它们负责构建健壮且可维护的应用程序。该组件库还有助于正确管理应用程序使用的数据以及设计应用程序架构模式。

  • Data Binding : 提供将应用数据与 XML 布局绑定的工具。数据绑定对于动态更新视图的数据非常有帮助。
  • Lifecycles : 管理 Activity 和 Fragment 生命周期,也可监听其它组件的生命周期事件。
  • LiveData : 通过观察者模式感知数据变化,类比 RxJava。
  • Navigation : 包含应用内导航所需的所有资源。
  • Paging : 从数据源逐渐加载数据到应用的 RecyclerView 中。
  • Room : 简化了在 android 应用中访问 SQLite 数据库的过程。
  • ViewModel : 以生命周期感知的方式促进与 UI 相关的数据管理。
  • WorkManager : 解决了在不同版本的 Android 中编写不同代码来管理后台任务的问题。

基础(foundation):

该组件库包含了 Android 应用程序的核心系统组件。语言支持的 Kotlin 扩展和测试库也包含在其中。此外,该组件中的库提供了向后兼容性。

  • AppCompat: v7 库的所有组件,如 RecyclerView、GridLayout、CardView 等都包含在 AppCompat 库中。
  • Android KTX : Kotlin 的扩展支持库。
  • Multidex : 提供对应用程序的集合 dex 文件的支持,突破“65,536”限制。
  • Test : 这部分包括用于运行时 UI 测试的 Espresso UI 测试框架和用于在 Android 中进行单元测试的 AndroidJUnitRunner。

行为(behavior):

该组件涵盖了那些使用户能够通过 UI 与应用程序交互的库。集成了 Android 标准的通知、下载、权限、分享、助手等服务。

  • DownloadManager : 帮助在后台下载文件。它自行管理并解决下载过程中的连接丢失、重试和系统重启等问题。
  • Media & Playback: 多媒体播放和一些向后兼容的 API。主要包含 MediaPalyer 和 AudioManager。
  • Notifications : 提供向后兼容的通知 API,支持 Wear 和 Auto
  • Permissions : 权限管理,用于检查和请求应用权限
  • Settings : Preference 相关 API。基本每个应用都会用到
  • Share Action : 促进与其他应用程序共享和接收信息/内容。
  • Slices : 可以让应用通过外部(其他 APP)显示 APP 界面(通过设备自带的搜索,语音助手等)

用户界面(UI):

包括 widgets, animations, palettes 等,以改善用户体验。它还提供可在应用程序中使用的最新 emoji。

  • Animations and Transitions : 动画,界面转场等
  • Auto : 它包括用于开发 Android Auto 应用程序的组件。这些应用程序可以使用桌面主机 (DHU) 在汽车屏幕上进行测试。。
  • Emoji : Emoji 相关
  • Fragment : 是包含 ListFragment、DialogFragment、PreferenceFragmentCompat 等可组合 UI 单元的片段支持类。
  • Layout : 包含有关不同类型布局声明的信息,如 LinearLayout、RelativeLayout、ContraintLayout。
  • Palette-Colors : 该库允许开发人员在 Palette.Builder 类的帮助下创建调色板并选择不同的颜色。
  • TV : 包括用于开发 Android TV 应用程序的组件。
  • Wear: 包含用于为智能手表等可穿戴 Android 设备开发应用程序的库和类。

二 Why:为什么使用 Jetpack?

借用官方文档解释,使用 Jetpack 有如下好处:

  • 遵循最佳做法: Android Jetpack 组件采用最新的设计方法构建,具有向后兼容性,可以减少崩溃和内存泄露。
  • 消除样板代码:Android Jetpack 可以管理各种繁琐的 Activity(如后台任务、导航和生命周期管理),以便您可以专注于打造出色的应用。
  • 减少不一致:这些库可在各种 Android 版本和设备中以一致的方式运作,助您降低复杂性。

三 Where:什么场景下使用 Jetpack?

Jetpack 适用于开发各种类型的 Android 应用程序,包括单页面应用程序、多页面应用程序、后台任务应用程序等。下面是一些适合使用 Jetpack 的场景:

  • 构建大型应用程序:Jetpack 提供了一些库,如 ViewModel、LiveData 和 Navigation,可以帮助开发者更好地管理应用程序的生命周期、状态和导航,使得构建大型应用程序更加容易。
  • 处理后台任务:Jetpack 中的 WorkManager 库提供了一种简单、可靠的方式来管理后台任务,如数据同步、推送通知、文件上传等。
  • 数据库访问:Jetpack 中的 Room 库提供了一个抽象层,可以让开发者方便地访问和管理 SQLite 数据库,使得数据存储和访问更加容易。
  • 响应式编程:Jetpack 中的 LiveData 和 Data Binding 库提供了响应式编程的功能,可以让数据在数据源发生变化时自动更新 UI,提高应用程序的性能和可靠性。
  • 代码重用:Jetpack 中的各种库都旨在解决 Android 应用程序开发中的常见问题,并提供一致的 API 和开发体验,使得代码重用更加容易。

四 How:如何使用 Jetpack?

以下是使用 Jetpack 的一般步骤:

  1. 添加 Jetpack 库:Jetpack 库可以通过在 build.gradle 文件中添加依赖项的方式进行添加。例如,添加 Lifecycle 库的依赖项:
  dependencies {
      def lifecycle_version = "2.3.1"// ViewModel
      implementation "androidx.lifecycle:lifecycle-viewmodel:$lifecycle_version"// LiveData
      implementation "androidx.lifecycle:lifecycle-livedata:$lifecycle_version"// Lifecycle
      implementation "androidx.lifecycle:lifecycle-runtime:$lifecycle_version"
  }

使用 Jetpack 库:在添加 Jetpack 库后,就可以在应用程序中使用 Jetpack 库提供的功能了。例如,使用 ViewModel 库创建一个 ViewModel 类:

import androidx.lifecycle.ViewModel
class MyViewModel : ViewModel() {
       // Add ViewModel logic here
}

结合 Jetpack 组件使用:Jetpack 库提供的组件可以结合使用,以提高应用程序的开发效率和可维护性。例如,使用 ViewModel 库和 LiveData 库实现一个响应式的用户界面:

class MyActivity : AppCompatActivity() {

    private lateinit var viewModel: MyViewModel

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_my)

        // Get a reference to the ViewModel
        viewModel = ViewModelProvider(this).get(MyViewModel::class.java)

        // Observe a LiveData object in the ViewModel
        viewModel.someData.observe(this, Observer {
            // Update the UI with the new data
        })
    }
}

以上是使用 Jetpack 的一般步骤。需要根据具体的 Jetpack 库和应用程序需求进行相应的配置和代码实现。

五 参考文献

Android Jetpack

Android业务架构 · 基础篇 · Jetpack四件套

  • 23
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是Android项目中最常用的框架: 1. Retrofit:网络请求框架,使用简单,支持多种数据格式。 2. OkHttp:网络请求框架,可以与Retrofit结合使用,支持拦截器、缓存等功能。 3. Gson:JSON数据解析框架,将JSON数据转换为Java对象。 4. Glide:图片加载框架,支持GIF动图、缩略图、占位图等功能。 5. EventBus:事件总线框架,用于组件间的通信,简化代码。 6. ButterKnife:View注入框架,简化findViewById操作。 7. LeakCanary:内存泄露检测框架,可以及时发现内存泄漏问题。 8. RxJava:响应式编程框架,可以简化异步操作,提高代码可读性。 9. Dagger2:依赖注入框架,可以实现解耦、模块化开发。 10. ARouter:路由框架,用于组件之间的跳转和通信。 11. Room:数据库框架,支持SQLite数据库的访问和管理。 12. Timber:日志框架,可以将日志输出到控制台、文件、日志服务器等位置。 13. Material Design:Google推出的设计规范,可以为应用提供美观的UI设计。 14. MVP、MVVM:常见的MVC派生模式,可以简化代码结构,提高代码可维护性。 15. Jetpack:Google推出的Android开发组件库,包含多个组件,如LiveData、ViewModel、Navigation等,可以提高开发效率和代码质量。 以上是Android项目中最常用的框架,不同的项目会有不同的需求和选择,开发者应根据具体情况选择合适的框架。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值