首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

全新版Jetpack进阶提升,系统性落地短视频App吾爱

全新版Jetpack进阶提升,系统性落地短视频App

download:https://www.sisuoit.com/4170.html

一、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的后台的作业,即便运用程序退出或设备重新启动也能够运行可延迟的异步使命。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OFl8_ZzY3px3W0166kx4L4tw0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券