Jetpack初步了解
1.为何要引入Jetpack呢?
通常来说,一个Android应用程序至少需要一个Activity,当我们开发小型Android程序时,可能会将大部分代码写在Activity/Fragment中,例如业务逻辑,UI控件,数据库的CRUD等。针对小型项目而言,这并没什么问题,维护起来也很方便,但对于中大型项目而言,随着业务复杂度的增加,Activity/Fragment中的代码会变得越来越多,越来越难以维护。因此,我们需要将代码按照功能或类型的不同进行分类,并放到不同的包或类文件中,但又不能破坏彼此间正常的通信。这在软件开发中叫做解耦,为了将代码解耦以应对日益膨胀的代码量,工程师引入了“架构”的概念。使得在不影响应用程序各模块组件间通信的同时,还能保持模块的相对独立,这样不仅有利于后期的维护,也有利于代码的测试。
关于架构,相信大家多多少少也了解过一点,例如MVC,MVP以及MVVM。在Android开发中,一直有用到MVC,例如将Activity/Fragment和布局文件分开就是一种最简单的MVC思想,只是它没有很好地解决我们的问题,所以才有了MVP和MVVM。在Jetpack出来前,Android的应用架构始终处于一个混乱的阶段,Android工程师也非常的困惑,他们不清楚自己使用的架构是否真的是最佳方案,迫切希望Google官方可以推出一些关于架构的组件或指南,这样他们就可以把更多的精力放到自己的业务代码上了。Google也意识到了这个问题,于是便推出了Jetpack,Jetpack正是为了解决这些问题而诞生的。
2.什么是Jetpack?
前面提到,Jetpack是Google官方为了解决Android架构问题而引入的,但实际上,Jetpack能做的不止这些。按照Google官方的说法,Jetpack是一套库,工具和指南,可以帮助开发者遵循最佳做法,摆脱编写样板代码的工作并简化复杂的任务,以便将更多的精力集中放在业务所需的代码上。Jetpack主要包括四个方面,分别是架构,界面,行为和基础。

3.Jetpack和AndroidX
在2018年的Google I/O大会上,Google宣布用AndroidX代替Android Support Library。不仅如此,Android Architecture Component中的组件也被并入了AndroidX,例如LifeCycle、LiveData、ViewModel、Room等,Android Jetpack正是在这个基础上提出的。所以说,Android Jetpack不是什么新东西,其中好多组件之前就有了,总结为一句话就是“AndroidX是对SDK以外API的内部管理包,Jetpack则是对外宣传的开发套件”,这句话出自fundroid大神。
Jetpack初步了解的更多相关文章
- 移动端之Android开发的几种方式的初步体验
目前越来越多的移动端混合开发方式,下面列举的大多数我都略微的尝试过,就初步的认识写个简单的心得: 开发方式 开发环境 是否需要AndroidSDK 支持跨平台 开发语言&技能 MUI Win+ ...
- CSharpGL(29)初步封装Texture和Framebuffer
+BIT祝威+悄悄在此留下版了个权的信息说: CSharpGL(29)初步封装Texture和Framebuffer +BIT祝威+悄悄在此留下版了个权的信息说: Texture和Framebuffe ...
- Android自定义View初步
经过上一篇的介绍,大家对于自定义View一定有了一定的认识,接下来我们就以实现一个图片下显示文字的自定义View来练习一下.废话不多说,下面进入我们的正题,首先看一下我们的思路,1.我们需要通过在va ...
- 初步认识Node 之Node为何物
很多人即便是在使用了Node之后也不知道它到底是什么,阅读完本文你应该会有一个初步的.具体的概念了. Node的目标 提供一种简单的构建可伸缩网络程序的方法.那么,什么是可伸缩网络程序呢?可伸缩 ...
- [入门级] 基于 visual studio 2010 mvc4 的图书管理系统开发初步 (二)
[入门级] 基于 visual studio 2010 mvc4 的图书管理系统开发初步 (二) Date 周六 10 一月 2015 By 钟谢伟 Category website develop ...
- 基于C/S架构的3D对战网络游戏C++框架_05搭建系统开发环境与Boost智能指针、内存池初步了解
本系列博客主要是以对战游戏为背景介绍3D对战网络游戏常用的开发技术以及C++高级编程技巧,有了这些知识,就可以开发出中小型游戏项目或3D工业仿真项目. 笔者将分为以下三个部分向大家介绍(每日更新): ...
- Azure底层架构的初步分析
之所以要写这样的一篇博文的目的是对于大多数搞IT的人来说,一般都会对这个topic很感兴趣,因为底层架构直接关乎到一个公有云平台的performance,其实最主要的原因是我们的客户对此也非常感兴趣, ...
- CozyRSS开发记录14-RSS源管理初步完工
CozyRSS开发记录14-RSS源管理初步完工 1.添加源的响应 DialogHost.Show有几个版本的重载,加一个DialogClosingEventHandler参数.我们让添加源对话框的添 ...
- Jetpack 由 WordPress.com 出品
官网:https://jetpack.com/ Jetpack 由 WordPress.com 出品. Jetpack 通过为您提供访客统计数据和安全服务.加速图像传输以及帮您获得更多浏览量,可以简化 ...
- 初步了解CPU
了解CPU By JackKing_defier 首先说明一下,本文内容主要是简单说明CPU的大致原理,所需要的前提知识我会提出,但是由于篇幅我不会再详细讲解需要的其他基础知识.默认学过工科基础课. ...
随机推荐
- Python 提取 Word 文档中的文本和图片
将内容从 Word 文档中提取出来可以方便我们对其进行其他操作,如将内容储存在数据库中.将内容导入到其他程序中.用于 AI 训练以及制作其他文档等.第三方库 Spire.Doc for Python ...
- Ruby 版本升级
一.升级原因 在开发shopify app的时候,提示我当前的Ruby版本不支持(如下图),所以需要升级Ruby. 由于Ruby 中的一些 Gem 依赖于 OpenSSL 库,所以更改 Ruby 版本 ...
- 中企网安信息科技:基于数据化大屏的BI数据分析管理系统概述
由华企网安总公司北京中企网安信息科技有限责任公司开发的<基于数据化大屏的BI数据分析管理系统>,获得国家版权局颁发的计算机软件著作权登记证书. 基于数据化大屏的BI数据分析管理系统利用大数 ...
- 若依集成knife4j实现swagger文档增强
若依集成knife4j实现swagger文档增强 本期全是干货,这里我就当你用的非常熟练了,在ruoyi-admin模块中pom文件里加入以下依赖 注:引用knife4j-spring-boot-st ...
- VisionPro学习笔记(6)——如何使用QuickBuild
如果需要了解其他图像处理的文章,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/ComputerVisionPractice ...
- 使用Bot Framework建立你的第一个聊天机器人
今天微软给我推送了一个邮件,大概是微软近期开发了很多人工智能相关的API,无意中看到了Bot Framework,就点进去看了看似乎还蛮有意思的.于是准备搭建一个环境试试. 第一步需要下载Bot Ap ...
- 斯坦福 UE4 C++ ActionRoguelike游戏实例教程 08.创建主HUD & 自定义作弊指令
斯坦福课程 UE4 C++ ActionRoguelike游戏实例教程 0.绪论 概述 本篇文章对应课程Lecture 14 ,56-58节.本篇文章将会教你将之前创建的各种UMG控件统合到一个主控件 ...
- HDU 4641 K string 后缀自动机
原题链接 题意 每个测试点,一开始给我们n,m,k然后是一个长度为n的字符串. 之后m次操作,1 c是往字符串后面添加一个字符c,2是查询字符串中出现k次以及以上的子串个数,m为2e5 思路 首先可以 ...
- 爬取Discuz!社区的教程标题
爬取Discuz!社区的教程标题-史上最详细解析(实现分页) 摘要:本文记录了爬取Discuz!社区的教程标题的详细过程,过程清晰 这是O的第一篇博客,如有排版问题请大佬见谅,O非常希望大佬能在评论区 ...
- 伯克利:serverless是下一代计算范式
摘要:Serverless技术正是云厂商的基于规模经济的一个选择. 引子 刚过去的HC2020,华为面向多样化算力的时代,发布了DC分布式计算的三个开发套件,其中一个是元戎组件.元戎是基于函数计算的分 ...