Android杂谈:Jetpack简介
一、什么是Jetpack
Jetpack 是一套库、工具和指南,可帮助开发者更轻松地编写优质应用。这些组件可帮助开发者遵循最佳做法、让开发者摆脱编写样板代码的工作并简化复杂任务,以便开发者将精力集中放在所需的代码上。
Jetpack被Google推出的原因在于:规范开发者更快更好的开发出优质应用。
二、Jetpack有什么(简单介绍)
那么Jetpack有什么工具呢?来一张总览图。
对上述的工具,下面只简单的介绍普通Android常用的工具如下表。
工具 | 简介 |
Android KTX | 包含在Android Jetpack及其他Android库中的一组Kotlin扩展程序,提供简洁的惯用Kotlin代码 |
AppCompat | 主要包含对Material Design界面实现的支持,相类似的还包括ActionBar,AppCompatDialog和ShareActionProvider(用于在菜单栏集成分享功能) |
检测 | 在AS中快速对Kotlin或Java代码进行基准化分析,可处理预测,衡量代码性能。 |
多dex处理 | Android5.0以下,需要添加MultiDex支持库。具体做法就是引入库,启用MultiDex,修改Application。Android 5.0以上默认启动,原因在于ART本身支持从APK文件加载多个DEX文件,而Dalvik不支持。ART在应用安装时执行预编译,扫描classesN.dex文件,并将它们编译成单个.oat 文件,以供Android设备执行。 |
测试 | 包括功能测试、集成测试和单元测试,这里主要说的是通过代码的形式编写测试用例,测试应用的稳定性、完整性等。 |
数据绑定 | 在MVVM框架中,需要databinding进行数据绑定,单向或者双向。Viewmodel进行数据管理,绑定view和数据。Llifecycle进行生命周期管理。LiveData进行数据的及时反馈。 这里的数据绑定库是一种支持库,主要指DataBinding。 |
Lifecycles | 称为生命周期感知型组件,可以感知和相应另一个组件(如Activity和Fragment)的生命周期状态的变化。 |
LiveData | 一种可观察的数据存储器类,具有生命周期感知能力,确保LiveData仅更新处于活跃生命周期状态的应用组件观察者 |
Navigation | 用于具有一个主Activity和多个Fragment的应用,是一个Fragment的管理框架。 |
Room | 数据库框架——持久性库,在SQLite的基础上提供一个抽象层。(具备性能优势并且支持其他Jetpack组件以及RxJava) |
Paging | 分页库,主要用于Recycleview列表展示 |
ViewModel | 旨在以注重生命周期的方式存储和管理界面相关的数据。将数据也View进行解耦。 |
下载管理器 | 一个处理长时间运行的HTTP下载的系统服务。 |
媒体和播放 | 主要涉及MediaPlayer和ExoPlayer。 ExoPlayer是一个Google开源的媒体播放器项目,可以与IJKPlayer媲美,只是使用复杂 |
通知 | 指Android在应用的界面之外显示的消息,旨在向用户提供提醒、来自他人的通知信息或者应用中的其他实时信息 |
权限 | 作用是保护用户的隐私。Android应用必须请求权限才能访问敏感的用户数据。 |
动画和过渡 | 这里分为:位图动画、界面可见性和动作动画、物理特性动画、布局更改动画、Activity之间转场动画。 |
表情符号EmojiCompat | EmojiCompat支持库旨在让Android设备及时兼容最新的表情符号。 |
Fragment和布局 | Fragment也被归于Jetpack。布局则主要注意ConstraintLayout和MotionLayout(可管理应用中的运动和控件动画)。 |
对于每个库的进一步简单了解可以参考博客:是时候更新手里的武器了——Jetpack最全简析。
参考资料:是时候更新手里的武器了——Jetpack最全简析 Android Jetpack(1):Jetpack介绍