历史角度看Support Library 到 AndroidX

历史角度看Support Library 到 AndroidX

更多文章分类

咱们都知道 Google 在 2014 年 I/O 大会上为了统一咱们 Android 端 APP 的设计风格,让 APP 更加美观,发布了新的设计语言----Material Design。突出“卡片设计”。基于网格的布局、响应动画与过渡、填充、深度效果(如光线和阴影)。android

它是一种设计规范,是设计人员应该去学习的,无关乎用什么开发语言,你们不要搞混了!api

推出 Material Design 后,Google 在 Android 5.0 上将自家的全部内置应用都使用了 Material Design 的风格来进行设计。样式很是美观。bash

虽然样式很是美观,可是推出后普及程度很是不理想,特别是在中国,因为 MaterialDesign 只是一个设计规范,主要是面向 UI 设计师的,UI 设计师应该去学习这种设计风格,而后设计出属于这种官方推荐的风格的 APP。咱们都知道国内的特殊状况,Google 一直进不来,手机厂商又有许多,并且彼此不统一,没有一个很好的管理者,所以碎片化十分严重,想要使用 Material Design 这种设计风格来统一全部的 android APP 那几乎不可能。就如今而言,你问一个 UI 设计师什么是 Material Design 他们可能都不知道,只知道照搬 iOS 上的 APP 的设计风格而后抄一遍。这里说的只是国内的状况。app

固然就算你的 UI 设计师真正懂了 Material Design 出了原型图了,那么对于开发者人员来讲本身去实现 Material Design 的效果也是很难的。因而 Google 为了解决这个问题在 2015 年的 I/O 大会上推出了 Design Support 库,在这个库将 Material Design 中一些表明性的控件和效果进行了封装,来帮助开发者完成一个属于 Material Design 设置风格的 APP布局

好了,到此为止 Material Design 的一段历史就介绍完了,下面开始讲下一段历史了。学习

咱们都知道 Android 在 2008 年发布了它的第一个正式版本,系统发布后都是要不断的进行迭代更新的,新的系统中会加入新的 API,可是这些新加入的 API 在老版本的系统中是没有的,这个时候若是咱们的 APP 中使用了新版本中加入的 API,那么运行在新版本系统的手机上是能够的,若是在低版本的手机上就会出问题了,为了兼容低版本手机。推出了 Android Support Library 库,一些后来添加的 api或者补充的内容都会放到 support 库中,注意 support 库不是一个库,它也有多个拆分,按需引入就能够了。好比,若是你须要上面的 Material Design 一些风格的库,就能够引入 com.android.support:design 这个库,这个里面包括了全部与 Material Design 相关的控件内容。固然我还能够单独引入具体的某个控件。再好比:support-v4 supoprt-v7 这些库都是属于 Android Support Library 库的。动画

最初的时候 v4 v7 这些数字都是表示系统能够兼容到 api 版本多少,好比 v4 表示能够兼容到 api 4 对应的 Android 系统版本就是 1.6 。现现在这些早已过期了,从支持库版本 26.0.0 (2017年7月)开始,对于大多数库软件包支持的最低 API 级别已经提高到 Android 4.0(API 14)了。因此 v4 这个数字的意义也不是原先的意义了。关于支持库的更多内容:developer.android.com/topic/libra…google

须要注意一点的是支持库也是有对应的版本号的spa

通常添加支持库的时候格式都是这样的 implementation 'com.android.support:xxxx:版本号'设计

好比:

implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:appcompat-v7:26.1.0'
复制代码

为了解决 support 上面的问题,在 2018 Google I/O 大会上推出了 AndroidX 来替换了 Android Support Library 。在 Android 9.0 (API级别 28) 正式发布后,新版本的支持库 AndroidX 就诞生了。它属于 Jetpack,除了现有的支持库之外,AndroidX 库还包含了最新的 JetPack 组件,在 Api27及更早版本,依然可使用 Support Library 可是以后新开发的全部库都将在 AndroidX 库中进行了。

所以 AndroidX 库是 Support Library 库的替换,在 API 28 及之后就要使用 AndroidX 库来完全替换 Support Library 库了。注意千万不要二者都出现,必定要作到统一 这里重磅推出 com.google.android.material:material:1.1.0 这个库,这个库就对应了咱们上面介绍的 Material Designdesign 支持库了,为何要单独强调这个库呢!由于这个新加的库太强大了!能够认为是 design 库的升级版,里面的控件比以前design中的使用起来更加的顺手!好了上面介绍那么多主要是为了引入这个库的。以后会详细来讲 material:material 这个库的!

AndroidX 和 原先的 Support Library 都有对应的关系如上图,具体看:developer.android.com/jetpack/and…

关于 AndroidX 的版本号查看:developer.android.com/jetpack/and…

最后注意:若是你的项目的 compileSdkVersion 是28的话,支持库就别再用 Support Library 了,要换成 AndroidX 重中之重的是若是换成了 AndroidX 依赖后,里面就千万不要再出现 support 这样的库了

相关文章
相关标签/搜索