全新版Jetpack进阶提升,系统性落地短视频App不知细叶谁裁出
suiw9 2024-10-29 16:41 18 浏览 0 评论
全新版Jetpack进阶提升,系统性落地短视频App
download:https://www.666xit.com/4111/
一、Android JetPack——Google多么痛的领悟
最近好几个小伙伴问我什么是Android JetPack,听说这个包好像有点牛,帅哥你会不?
我心想什么鬼!Android JetPack这货不是一个库,是一整套的库,是一种信仰一种态度好么。从前,Android开发者基本都是被放养的。生态基本全靠自建,代表有Square全家桶,Glide,Google自己也肯定是出力的,但是并没有明确Android开发的几个大方向,所以安卓的开发生态一直是百花齐放百家争鸣。带来的问题就是常常出现包引用莫名报错。
作业从2017年发生了起色,在Google IO 2017,官方终于正视了这个问题开始尝试办理这个混乱的Android开发环境,并推出了Architecture Component,首要有以下几项:
Room: 官方的ORM库(个人认为比GreenDao好用)ViewModel/LiveData:生命周期办理东西,自此Android才真正的运用上了MVVM(BTW,DataBinding也归到了JetPack里)
在2018年,AndroidX横空出世,而且从1开始,目的取代常常自己打自己脸的Support Lib。
一张图来看看Google对JetPack有多垂青
那JetPack到底是啥呢?
Jetpack is a suite of libraries, tools, and guidance to help developers write high-quality apps easier. These components help you follow best practices, free you from writing boilerplate code, and simplify complex tasks, so you can focus on the code you care about.
Jetpack 是一套库、东西和指南,可协助开发者更轻松地编写优质运用。这些组件可协助您遵循最佳做法、让您脱节编写样板代码的作业并简化复杂使命,以便您将精力集中放在所需的代码上。
二、JetPack里的组件
上图就是JetPack中包含的组件列表,每个组件都是相对独立的,能够被独自运用和构建。其中像被介绍的最多,也是最常被运用的LiveData, ViewModel, Room, Navigation, WorkManager之类的都发布了正式版,而CameraX, Compose之类的还处在Alpha版别,未正式发布,官方并不主张在出产环境中运用。
然后说下,JetPack所有的组件都是根据AndroidX构建的,如果想在项目中运用JetPack需要先将项目中对Support Lib的依靠悉数换成AndroidX。
Android现在现已发展了11年,能够说是比较成熟的技术了,一开始时结构很少,也没有什么规范,所有的代码都是要自己写,比方网络请求,数据库请求,数据解析等等。后来出现了一些结构来协助开发者快速进行开发,比方XUtils、Volley、OKHttp、EventBus等,跟着结构越来越多,一个运用能够有多种技术选型,直接导致运用开发越来越不规范,导致做出来的运用质量参差不齐,这明显不是谷歌想看到的。谷歌随后推出了MVP和MVVM相关的官方例子,作用很一般,而且覆盖面只是在架构上,Goole I/O 2018大会上推出的Android Jetpack有望解决以上的问题。
三、Android Jetpack简介
Jetpack并不是一个结构或许组件,它是一套库、东西和指南的调集,可协助开发者更轻松地编写优质运用。这些组件可协助开发者遵循最佳做法、脱节编写样板代码的作业并简化复杂使命,以便将精力集中放在所需的代码上。
Android Jetpack中的许多组件并不都是新开发的,而是很早就有了,比方在Goole I/O 2017大会时推出了 Android Architecture Component(AAC),它包含了LifeCycle、LiveData、ViewModel、Room。在Goole I/O 2018大会上, 用AndroidX替代了Android Support Library,并在Android Architecture Component的根底上发布了Android Jetpack,AndroidX也是归于Android Jetpack。
Jetpack首要特性有以下三点:
1.加速开发 组件可独自运用,也能够协同作业,当运用kotlin言语特性时,能够提高效率。
2.消除样板代码 Android Jetpack可办理繁琐的Activity(如后台使命、导航和生命周期办理)。
3.构建高质量的强壮运用 Android Jetpack组件围绕现代化规划实践构建而成,具有向后兼容性,能够减少溃散和内存泄漏。
四、Android Jetpack分类
下图是Jetpack的分类。
谷歌仍旧不断的完善Android Jetpack,截至到2019年8月现已有许多新加的组件并没有显现在上图中,比方CameraX等。Android Jetpack分类有4种,分别是Architecture、Foundationy、Behavior、UI,下面分别介绍下。
1. Architecture(架构组件)
Architecture指的是架构组件,协助开发者规划稳健、可测验且易维护的运用。架构组件能够说是对运用开发协助最大的组件,本系列也是围绕着架构组件进行解说。
DataBinding:以声明方法将可调查数据绑定到界面元素,一般和ViewModel合作运用。
Lifecycle:用于办理Activity和Fragment的生命周期,可协助开发者生成更易于维护的轻量级代码。
LiveData: 在底层数据库更改时告诉视图。它是一个可调查的数据持有者,与常规observable不同,LiveData是生命周期感知的。 Navigation:处理运用内导航。
Paging:能够协助开发者一次加载和显现小块数据,按需加载部分数据可减少网络带宽和体系资源的运用。
Room:友爱、流畅的访问SQLite数据库。它在SQLite的根底上供给了一个抽象层,答应更强壮的数据库访问。
ViewModel: 以生命周期的方法办理界面相关的数据,一般和DataBinding合作运用,为开发者完成MVVM架构供给了强有力的支撑。
WorkManager: 办理Android的后台的作业,即使运用程序退出或设备重新启动也能够运转可延迟的异步使命。
官方引荐的Android运用架构如下图所示。
这些架构组件既能够合作运用,也能够独自运用,这里主张还是尽量按照官方引荐的来。
2. Foundationy(根底组件)
根底组件供给横向功能,例如向后兼容性、测验、安全、Kotlin 言语支撑,并包含多个多个渠道开发的组件。
Android KTX:优化了供Kotlin运用的Jetpack和Android渠道API。协助开发者以更简洁、更愉悦、更惯用的方法运用Kotlin进行Android开发。 AppCompat:协助较低版别的Android体系进行兼容。 Auto: 开发Android Auto运用的组件,供给了适用于所有车辆的标准化界面和用户交互。 检测:从AndroidStudio中快速检测根据Kotlin或Java的代码。 多Dex处理:为具有多个Dex文件运用供给支撑。 安全:安全的读写加密文件和共享偏好设置。 测验:用于单元和运转时界面测验的Android 测验结构。 TV: 构建可让用户在大屏幕上体验沉溺式内容的运用。 Wear OS:开发Wear运用的组件。
3. Behavior(行为组件)
行为组件可协助开发者的运用与标准Android服务(如告诉、权限、共享)相集成。 CameraX:协助开发简化相机运用的开发作业。它供给一致且易于运用的界面,适用于大多数Android。 设备,并可向后兼容至Android 5.0(API 21)。 DownloadManager:处理长期运转的HTTP下载的体系服务。 媒体和播映:用于媒体播映和路由(包含Google Cast)的向后兼容API。 告诉:供给向后兼容的告诉API,支撑Wear和Auto。 权限:用于查看和请求运用权限的兼容性API。 设置:创立交互式设置,主张运用AndroidX Preference Library库将用户可装备设置集成到运用中。 共享操作:能够更轻松地完成友爱的用户共享操作。 切片:切片是一种UI模板,创立可在运用外部显现运用数据的灵活界面元素。
4. UI(界面组件)Animation and Transition:该结构包含用于常见作用的内置动画,并答应开发者创立自定义动画和生命周期回调。 Emoji Compatibility:即便用户没有更新Android体系也能够获取最新的表情符号。 Fragment:组件化界面的基本单位。 布局:用XML中声明UI元素或许在代码中实例化UI元素。 调色板:从调色板中提取出有用的信息。
相关推荐
- 5款Syslog集中系统日志常用工具对比推荐
-
一、为何要集中管理Syslog?Syslog由Linux/Unix系统及其他网络设备生成,广泛分布于整个网络。因其包含关键信息,可用于识别网络中的恶意活动,所以必须对其进行持续监控。将Sys...
- 跨平台、多数据库支持的开源数据库管理工具——DBeaver
-
简介今天给大家推荐一个开源的数据库管理工具——DBeaver。它支持多种数据库系统,包括Mysql、Oracle、PostgreSQL、SLQLite、SQLServer等。DBeaver的界面友好...
- 强烈推荐!数据库管理工具:Navicat Premium 16.3.2 (64位)
-
NavicatPremium,一款集数据迁移、数据库管理、SQL/查询编辑、智能设计、高效协作于一体的全能数据库开发工具。无论你是MySQL、MariaDB、MongoDB、SQLServer、O...
- 3 年 Java 程序员还玩不转 MongoDB,网友:失望
-
一、什么场景使用MongoDB?...
- 拯救MongoDB管理员的GUI工具大赏:从菜鸟到极客的生存指南
-
作为一名在NoSQL丛林中披荆斩棘的数据猎人,没有比GUI工具更称手的瑞士军刀了。本文将带你围观五款主流MongoDB管理神器的特性与暗坑,附赠精准到扎心的吐槽指南一、MongoDBCompass:...
- mongodb/redis/neo4j 如何自己打造一个 web 数据库可视化客户端?
-
前言最近在做neo4j相关的同步处理,因为产线的可视化工具短暂不可用,发现写起来各种脚本非常麻烦。...
- solidworks使用心得,纯干货!建议大家收藏
-
SolidWorks常见问题...
- 统一规约-关乎数字化的真正实现(规范统一性)
-
尽管数字化转型的浪潮如此深入人心,但是,对于OPCUA和TSN的了解却又甚少,这难免让人质疑其可实现性,因为,如果缺乏统一的语义互操作规范,以及更为具有广泛适用的网络与通信,则数字化实际上几乎难以具...
- Elasticsearch节点角色配置详解(Node)
-
本篇文章将介绍如下内容:节点角色简介...
- 产前母婴用品分享 篇一:我的母婴购物清单及单品推荐
-
作者:DaisyH8746在张大妈上已经混迹很久了,有事没事看看“什么值得买”已渐渐成了一种生活习惯,然而却从来没有想过自己要写篇文章发布上来,直到由于我产前功课做得“太过认真”(认真到都有点过了,...
- 比任何人都光彩照人的假期!水润、紧致的肌肤护理程序
-
图片来源:谜尚愉快的假期临近了。身心振奋的休假季节。但是不能因为这种心情而失去珍贵的东西,那就是皮肤健康。炙热的阳光和强烈的紫外线是使我们皮肤老化的主犯。因此,如果怀着快乐的心情对皮肤置之不理,就会使...
- Arm发布Armv9边缘AI计算平台,支持运行超10亿参数端侧AI模型
-
中关村在线2月27日消息,Arm正式发布Armv9边缘人工智能(AI)计算平台。据悉,该平台以全新的ArmCortex-A320CPU和领先的边缘AI加速器ArmEthos-U85NPU为核心...
- 柔性——面向大规模定制生产的数字化实现的基本特征
-
大规模定制生产模式的核心是柔性,尤其是体现在其对定制的要求方面。既然是定制,并且是大规模的定制,对于制造系统的柔性以及借助于数字化手段实现的柔性,就提出了更高的要求。面向大规模定制生产的数字化业务管控...
- 创建PLC内部标准——企业前进的道路
-
作者:FrankBurger...
- 标准化编程之 ----------- 西门子LPMLV30测试总结
-
PackML乃是由OMAC开发且被ISA所采用的自动化标准TR88.00.02,能够更为便捷地传输与检索一致的机器数据。PackML的主要宗旨在于于整个工厂车间倡导通用的“外观和感觉”,...
你 发表评论:
欢迎- 一周热门
-
-
Linux:Ubuntu22.04上安装python3.11,简单易上手
-
宝马阿布达比分公司推出独特M4升级套件,整套升级约在20万
-
MATLAB中图片保存的五种方法(一)(matlab中保存图片命令)
-
别再傻傻搞不清楚Workstation Player和Workstation Pro的区别了
-
Linux上使用tinyproxy快速搭建HTTP/HTTPS代理器
-
如何提取、修改、强刷A卡bios a卡刷bios工具
-
Element Plus 的 Dialog 组件实现点击遮罩层不关闭对话框
-
日本组合“岚”将于2020年12月31日停止团体活动
-
SpringCloud OpenFeign 使用 okhttp 发送 HTTP 请求与 HTTP/2 探索
-
tinymce 号称富文本编辑器世界第一,大家同意么?
-
- 最近发表
-
- 5款Syslog集中系统日志常用工具对比推荐
- 跨平台、多数据库支持的开源数据库管理工具——DBeaver
- 强烈推荐!数据库管理工具:Navicat Premium 16.3.2 (64位)
- 3 年 Java 程序员还玩不转 MongoDB,网友:失望
- 拯救MongoDB管理员的GUI工具大赏:从菜鸟到极客的生存指南
- mongodb/redis/neo4j 如何自己打造一个 web 数据库可视化客户端?
- solidworks使用心得,纯干货!建议大家收藏
- 统一规约-关乎数字化的真正实现(规范统一性)
- Elasticsearch节点角色配置详解(Node)
- 产前母婴用品分享 篇一:我的母婴购物清单及单品推荐
- 标签列表
-
- dialog.js (57)
- importnew (44)
- windows93网页版 (44)
- yii2框架的优缺点 (45)
- tinyeditor (45)
- qt5.5 (60)
- windowsserver2016镜像下载 (52)
- okhttputils (51)
- android-gif-drawable (53)
- 时间轴插件 (56)
- docker systemd (65)
- slider.js (47)
- android webview缓存 (46)
- pagination.js (59)
- loadjs (62)
- openssl1.0.2 (48)
- velocity模板引擎 (48)
- pcre library (47)
- zabbix微信报警脚本 (63)
- jnetpcap (49)
- pdfrenderer (43)
- fastutil (48)
- uinavigationcontroller (53)
- bitbucket.org (44)
- python websocket-client (47)