Jetpack架构组件_1.基本知识

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.mzph.cn/web/18310.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pcdn服务器应该怎么配?

要配置PCDN(Private Content Delivery Network)服务器,可以按照以下步骤进行: 需求分析:明确业务需求,确定所需的CDN功能和性能参数。这包括预期的流量、负载、内容类型、目标用户群体等。 硬件选择&#…

VCRUNTIME140_1.dll丢失是怎么回事?vcruntime140_1.dll无法继续执行代码的处理方法

VCRUNTIME140_1.dll丢失是怎么回事?问出这样的问题的人,一般是遇到vcruntime140_1.dll无法继续执行代码的问题了,找不到VCRUNTIME140_1.dll文件,那么程序就肯定是启动不了的,程序的启动是需要VCRUNTIME140_1.dll文件的…

Java进阶学习笔记1——课程介绍

课程适合学习的人员: 1)具备一定java基础的人员; 2)想深刻体会Java编程思想,成为大牛的人员; 学完有什么收获? 1)掌握完整的Java基础技术体系; 2)极强的编…

行为设计模式之状态模式

文章目录 概述定义结构图 2.代码示例小结 概述 定义 状态模式(state pattern)的定义: 允许一个对象在其内部状态改变时改变它的行为。 对象看起来似乎修改了它的类。 状态模式就是用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题.。状态模式将一个对象的状态…

New Phytologist:杨树特有miRNA在调控杨树抗旱中的分子机制

2024年3月6日,林木遗传育种全国重点实验室、北京林业大学生物科学与技术学院尹伟伦与夏新莉教授课题组在New Phytologist(中科院一区,影响因子9.4)期刊发表了题为“The miR6445-NAC029 module regulates drought tolerance by reg…

selenium 学习笔记(一)

pip的安装 新建一个txt curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py 把上面的代码复制进去后,把后缀名改为.bat然后双击运行 当前目录会出现一个这个文件 然后在命令行pyhon get-pip.py等它下好就可以了selenium安装 需要安装到工程目…

云计算-Lambda事件 (Lambda Events)

检索事件信息 (Retrieving Event Information) 在上一个主题中,我们已经看到了如何创建一个Lambda函数、添加handler、添加触发器和配置执行策略。在本主题中,我们将对其进行扩展。到目前为止,我们看到的handler应用非常简单,但我…

linux 定时执行shell、python脚本

在linux里设置定时执行一般是用crontab,如果没有的话,可以先安装: 安装 查看是否安装 cron -v # 对于基于Debian的系统(如Ubuntu) sudo apt-get install cron# 对于基于RedHat的系统(如CentOS&#xff…

【5】:三维到二维变换(模型、视图、投影)

观测变换 物体上某一点的坐标变换顺序:M->V->P MVP变换用来描述视图变换的任务,即将虚拟世界中的三维物体映射(变换)到二维坐标中。 1.Model Transformation 模型变换 场景中每个物体上的某一点,从局部坐标系…

YoloV8实战:各种图绘制汇总(mAP50、mAP50-95、loss、PR_curve、F1_curve)|科研必备|绘图神器

摘要 本文的内容是告诉大家如何绘制mAP50、mAP50-95、loss、PR_curve、F1_curve等图像,方便大家写论文。 绘制mAP50、mAP50-95、loss等图。 先上效果,如下图: 首先将,训练的result.csv汇总到一个文件夹下面(这样方便寻找),要不然找起来太麻烦。如下图: 我都放到re…

Pyinstaller打包exe文件解决指南

打包命令 打包 Python 文件 输入如下格式的命令即可 默认命令 Pyinstaller 文件名.py Pyinstaller -option1 -option2 -... 要打包的文件 Pyinstaller 文件名.pyPyinstaller -option1 -option2 -... 要打包的文件 参数选项比较多,这里我列一个表:…

[C#]winform部署官方yolov10目标检测的onnx模型

【框架地址】 https://github.com/THU-MIG/yolov10 【算法介绍】 今天为大家介绍的是 YOLOv10,这是由清华大学研究团队最新提出的,同样遵循 YOLO 系列设计原则,致力于打造实时端到端的高性能目标检测器。 方法 创新 双标签分配策略 众所…

灯塔工厂产业数字化平台解决方案(50页PPT)

方案介绍: 随着工业4.0和智能制造的快速发展,传统工厂正面临着转型升级的迫切需求。为了提升生产效率、优化资源配置、增强市场竞争力,我们推出了灯塔工厂产业数字化平台解决方案。该方案旨在通过先进的信息技术手段,将传统工厂转…

蒙特卡洛法求解机械臂工作空间(以IRB4600型工业机械臂为例)

1. 概念 工作空间是衡量机器人工作能力的一个重要的运动学指标,蒙特卡洛法是一种随机模拟方法,用于在计算机上估计某些统计量,对于要估计的统计量,通过模拟大量的随机抽样,并计算这些样本的随机值来估算这个统计量的值…

数字信号处理实验三:IIR数字滤波器设计及软件实现

一、实验目的 1. 掌握MATLAB中进行IIR模拟滤波器的设计的相关函数的应用; 2. 掌握MATLAB的工具箱中提供的常用IIR数字滤波器的设计函数的应用; 3.掌握MATLAB的工具箱中提供的模拟滤波器转数字滤波器的相关的设计函数的应用。 二、实验内容 本实验为…

CC1310 Debug interface is locked

XDS110连接CC1310板子,打开Smart RF 弹出窗口如下: 解决办法: 1 打开SmartRF Flash Programmer 2 选择连接的设备CC1310, 弹出如下窗口,点击OK。 3 点击Tools图标,选择CC26XX/CC13XX Forced Mass Erase。 4 在弹出的…

Windows11系统安装QEMU虚拟化软件

Windows11系统安装QEMU虚拟化软件 QEMU软件是一个通用的开源机器模拟器和虚拟机。本文档适用于在Windows 11系统平台上安装QEMU软件。 1. 安装准备 1.1 安装平台 Windows 11 1.2. 软件信息 软件名称软件版本安装路径QEMUQEMU-8.2.93D:\qemu 1.3软件下载 QEMU官网官网下…

【全开源】西陆家政系统源码小程序(FastAdmin+ThinkPHP+原生微信小程序)

打造高效便捷的家政服务平台 一、引言:家政服务的数字化转型 随着人们生活节奏的加快,家政服务需求日益增长。为了满足广大用户对高效、便捷的家政服务的需求,家政小程序系统源码应运而生。这款源码不仅能够帮助家政服务提供商快速搭建自己…

关于本人VIP付费文章说明

郑重声明:我写博客只是为了记录分享经验 自从上次写完数据结构系列后我就一直没有登陆,目前也没打算继续开新内容。今天偶然发现我之前写的文章被设为vip文章,要vip解锁才能看,我很确定当初我发布的时候选择的是公开,…

FastGPT + OneAPI 构建知识库

云端text-embedding模型 这个在前面的文章FastGPT私有化部署OneAPI配置大模型中其实已经说过,大概就是部署完成OneAPI后,分别新建令牌和渠道,并完成FastGPT的配置。 新建渠道 选择模型的类型并配置对应的词向量模型即可,这里我…