Jetpack架构组件_1.基本知识

embedded/2024/11/15 5:44:27/

1.什么是Jetpack?

        Jetpack 是一个由多个库组成的套件,可帮助开发者遵循最佳做法、减少样板代码并编写可在各种 Android 版本和设备中一致运行的代码,让开发者可将精力集中于真正重要的编码工作。Jetpack 包含一系列 Android 库,它们都采用最佳做法并在 Android 应用中提供向后兼容性。Jetpack 库是与 Android OS 分开提供的,因此可以独立更新,并且更新频率也可以更高。

        Jetpack是Google为了解决Android架构问题而引入的,但实际上Jetpack能做的不止这些。按照Google官方的说法,“Jetpack是一套库、工具和指南,可以帮助开发者更轻松地编写应用程序。Jetpack中的组件可以帮助开发者遵循最佳做法、摆脱编写样板代码的工作并简化复杂的任务,以便他们能将精力集中放在业务所需的代码上”。 

        Jetpack主要包括4个方面,如下图所示,分别是架构(Architecture)、界面(UI)、行为(Behavior)和基础(Foundation)

2.安卓架构组件库AAC与Jetpack

        Android 架构组件集合提供关于应用架构的指南,其中包括生命周期管理和数据存留等常见任务的库。使用架构组件可帮助您以稳健、可测试和易维护的方式组织应用结构,且所需样板代码较少。

        架构组件库是 Android Jetpack 的一部分。如下图对应AAC。

3. Jetpack与AndroidX

        在2018年的Google I/O大会上,Google宣布用AndroidX代替Android SupportLibrary,Android Support Library在版本28之后就不再更新了,未来的更新会在AndroidX中进行。不仅如此,AAC(Android Architecture Component)中的组件也被并入AndroidX。所以,当使用Jetpack的组件时,经常会看到以“androidx”开头的包名。如下图所示,从包名的变化,我们便可以看出,Android Support Library与AAC中的各种组件已经迁移到了AndroidX中。         

        Jetpack是AndroidX包下的一部分库,工具类。它和AndroidX中的支持库一样,将频繁更新、长期维护,向后兼容,它并没有归入到Framework层,简单的说它的地位就是一个附加的SDK库。

        Androidx处于System Apps和Java API Framework的位置,它不是Framework的一部分。

4.使用条件

        在AndroidStudio创建一个AndroidX项目时,要注意编译SDK版本设置为Android9.0(API Level 28),Android studio版本要大于等于3.2。如下图使用的是Iguana版本,CompileSDK是34版本是满足的,可以看到扩展包中有许多是androidx开头的。

        

5.JetPack组成介绍

(1)Architecture(架构) 

  •         Data Binding(数据绑定):属于支持库可使用声明式将布局中的界面组件绑定到应用中的数据源。
  •         Lifecycles:管理和感知Activity和Fragment生命周期
  •         LiveData:是一个可观察的数据持有者类。与常规observable不同,LiveData是有生命周期感知的。
  •         Navigation:处理应用内导航所需的一切。
  •         Paging:一次加载or按需加载&显示小块数据。
  •         Room:帮助开发者更友好、流畅的访问SQLite数据库。
  •         ViewModel:以生命周期感知的方式存储和管理与UI相关的数据。
  •         WorkManager:调度预期将要运行的可延迟异步任务。(即便应用程序推出or重启)。

(2)基础-Foundation

  •         Android KTX:一组Kotlin扩展程序;优化了供Kotlin使用的Jetpack和Android API。以更简洁的方式使用Kotlin进行Android开发。
  •         Appcompat:提供向后兼容的API。
  •         Security:按照最佳的安全做法读取加密文件和共享偏好设置。
  •         Multidex:当方法数超过64K时启用多dex文件。
  •         Test:测试框架。

(3)Behavior

  •         相机-CameraX:简化相机应用的开发工作,可向后兼容至Android5.0(API Level21)
  •         下载-DownloadManager:可处理长时间运行的HTTP下载&超时重连。
  •         多媒体-Media&playback:用于媒体播放&路由的向后兼容API。
  •         通知-Notifications:提供向后兼容的通知API,支持Wear和Auto。
  •         权限-Permissions:用于检查和请求应用权限的兼容性API。

(4)UI

  •         动画-Animation&Transitions:提供各类内置动画,也可以自定义动画效果。
  •         表情-Emoji:使用户在未更新系统版本的情况下也可以使用表情符号。
  •         Fragment:组件化界面的基本单位。
  •         布局-Layout:xml书写的界面布局或者使用Compose完成的界面。
  •         调色板-Palette:从调色板中提取出有用的信息。

         


http://www.ppmy.cn/embedded/43291.html

相关文章

点击登录按钮先检测输入框的规则检测(vue组合式)

<template><el-form :model"user" :rules"rules" ref"loginForm" label-width"auto" style"max-width: 600px"><el-form-item label"用户名" prop"name"><el-input v-model"…

GoldenEye-v1(vulnhub)靶机练习实践报告

GoldenEye-v1****靶机练习实践报告 一、安装靶机 靶机是.ova文件&#xff0c;需要用VirtualBox打开&#xff0c;但我习惯于使用VMWare,因此修改靶机文件&#xff0c;使其适用于VMWare打开。 解压ova文件&#xff0c;得到.ovf文件和.vmdk文件。 用记事本打开.ovf文件并修改“…

[Halcon学习笔记]Halcon窗口进行等比例显示图像

目录 需求分析Halcon显示原理显示实现具体实现Halcon代码 需求分析 在使用Halcon加载图像时&#xff0c;点击Halcon的适应窗口&#xff0c;图像都会按照窗口大小对图像进行拉伸后显示&#xff0c;实际项目中&#xff0c;需要等比例显示图像&#xff0c;体现图像原本的尺寸细节…

Marvelous Designer12 解锁版安装教程 (3D服装设计软件)

前言 Marvelous Designer允许您使用我们的尖端设计软件创建美丽的3D虚拟服装。最后&#xff0c;使用工具在提高质量的同时节省时间&#xff0c;为您的设计注入活力。从基本衬衫到复杂的褶皱连衣裙和粗糙的制服&#xff0c;Marvelous Designer几乎可以将织物纹理和物理特性复制…

idea中快速找到当前git地址

idea中快速找到当前git地址 然后双击就可以看到地址了

他用AI,抄袭了我的AI作品

《大话西游》里面有一句经典台词&#xff1a;每个人都有一个妈&#xff0c;但是“你妈就一定是你妈吗&#xff1f;” 用AI创作的艺术作品&#xff0c;也走进类似的困境&#xff1a;如何证明你用AI生成的作品&#xff0c;就是你的作品&#xff1f; 近日&#xff0c;腾讯科技独…

Kotlin基础之面向对象编程

1. 类与对象 介绍 类&#xff1a;类是对象的蓝图或模板&#xff0c;它定义了对象的属性和方法。对象&#xff1a;对象是类的实例&#xff0c;具有类的属性和方法。 使用 // 定义一个类 class Person { var name: String "" var age: Int 0 // 方法 fun introdu…

WebGL学习(一)渲染关系

学习webgl 开发理解渲染关系是必须的&#xff0c;也非常重要&#xff0c;很多人忽视了这个过程。 我这里先简单写一下&#xff0c;后面尽量用通俗易懂的方式&#xff0c;举例讲解。 WebGL&#xff0c;全称Web Graphics Library&#xff0c;是一种在网页上渲染3D图形的技术。它…