本门藏经阁 - AndroidX

自盘谷开天辟地后,上古大神 Andy Rubin 开宗立派创立 Android 门,历经数十载,宗门日渐壮大,门下弟子遍及整个九州大陆。坊间流传,其门下弟子最善以身着格子衬衣,牛仔裤,背黑色双肩包装扮行走江湖,那其中的头顶光滑锃亮者更是其中的佼佼强者,修为绝顶。android

本门藏经阁 - AndroidX

藏经阁,从来为各大门派收藏本门绝学之所在。 本门亦不例外,这 AndroidX 中尽数收录了宗门无上武功心法秘笈,其中多数源自宗门上古宝典支持库( Support Library Packages ),通过历代宗主不断参悟,优化改进,现已造成一套完整修炼体系,为门下弟子修行所用。后世如果有门人参透更高武学,亦将收录于此,造福后世弟子。架构

好吧,接下来我要好好说话了,编不下去了......app

来自官方的解释框架

AndroidX 是对原始 Android Support 库( Support Library Packages )的重大改进。是 Android 团队用于在 Jetpack 中开发,测试,打包,发布和发布库的开源项目 。ide

PS: Support 库 若是刚入门的同窗不知为什么物的话这边简单介绍一下。 Support 库和 Android 操做系统是分开提供的,Support 库提供了一系列的没有内置在 Android 框架内的功能,包括向后兼容版本的新功能,框架中未包含的实用 UI 元素等如V4(android.support.v4),V7(android.support.v7)包。单元测试

看到这里是否是仍是以为一头雾水,AndroidX 究竟是什么 XX 啊。别急,下面会展开细说。看完相信众位师兄弟们定能修为有所精进,距离绝顶境界又进一步.学习

藏经阁中都有什么 XX

AndroidX 中的全部软件包都以字符串 androidx 开头。原始 Support 库包也已映射到相应的 androidx.* 包中。 如原始 Support 库中的 com.android.support:appcompat-v7 包映射到 AndroidX 中为 androidx.appcompat:appcompat:1.0.0 。包名变成以 androidx 开头。 下表仅列部分原始支持库迁移到 AndroidX 到映射表,大概了解一下就能够了,只要知道以前使用到支持库中的库 AndroidX 都支持,如何使用下面会具体介绍,感兴趣的同窗能够去官网查看完整映射表测试

原始 Support 库 AndroidX
com.android.support:support-compat androidx.core:core:1.0.0+
com.android.support:appcompat-v7 androidx.appcompat:appcompat:1.0.0+
com.android.support:design com.google.android.material:material:1.0.0+
com.android.support:multidex androidx.multidex:multidex:2.0.0+
com.android.support.test.espresso:espresso-accessibility androidx.test.espresso:espresso-accessibility:3.1.0
com.android.support.test:runner androidx.test:runner:1.1.0
com.android.support:cardview-v7 androidx.cardview:cardview:1.0.0
com.android.support:recyclerview-v7 androidx.recyclerview:recyclerview:1.0.0
com.android.support:viewpager androidx.viewpager:viewpager:1.0.0
android.arch.lifecycle:livedata androidx.lifecycle:lifecycle-livedata:2.0.0-rc01
com.android.support:support-fragment androidx.fragment:fragment:1.0.0+

除了对原始 Support 库的映射和改进,后续新的 Support 库的开发都将在 AndroidX 库中进行,包括原始 Support 库都维护和新引入的 Jetpack 组件。AndroidX 库中的包大体能够分为如下三大类:gradle

  1. 测试组件

包含 AndroidX 中全部测试相关组件,若是你是个爱写单元测试的宝宝,那在原始 Support 库时代就必定用过相关的测试组件,没用过的也不要紧,之后的项目中若是须要覆盖单元测试甚至自动化测试,就必定会用到测试相关的组件。 AndroidX 中全部测试相关的组件都在 androidx.test.* 包下,如: androidx.test.runner,androidx.test.espresso优化

  1. 架构组件

即 Jetpack 相关组件。

  1. 其余 AndroidX 组件

AndroidX 解决了什么问题

前面说到 AndroidX 是对原始 Support 库重大改进。那么谷歌爸爸为何在已经有了迭代了不少版本的 Support 库的状况下又整出一个新的 AndroidX 呢? 直白一点来讲就是现有的 Support 库愈来愈难用了:

  1. 随着版本的迭代,须要作更多的兼容,Support 库包的体积愈来愈臃肿,版本维护成本愈来愈高。
  2. 库的功能不单一,每一个库均是针对特定范围的 Android 平台和功能,如使用 android.support.v7.* 包,可能你的App只会用到其中的几个库,可是你须要将整个 V7 包都引入,这势必会增长你的 App 体积和方法数等。
  3. 基于第二点缘由带来的更新体验更加难受,若是 Support 库中更新了某个功能的新特性或修复了 bug 须要升级,又或是你的 targetsdk 须要变动,你的全部 android.supprot.* 相关的依赖所有都须要更新,牵一发动全身这无疑是开发总最让人脑阔疼的事了。

那么 AndroidX 是如何解决以上问题的呢?

AndroidX 中的全部组件都是单独维护和更新的。这样作的好处就是全部组件功能更加单一,职责分明,更加易于维护和更新。咱们在使用时仅需引入咱们须要的组件,并且当某个组件发布新的特性或者修复 bug,只需更新对应的组件便可,其余组件不受影响。

AndroidX 如何使用

目前 Android 28.0.0稳定版使用的仍是 android.support.* ,建立新的项目默认使用的仍是 Support 库。因此想体验 AndroidX 的同窗能够尝试将本身的项目迁移至 AndroidX 。

PS:最新的 Support 库版本是28.0.0稳定版(2018年9月21日更新),这将是 Support 更新的最后一个版本,这也是谷歌爸爸预留给开发者们迁移到 AndroidX 的时间,后续全部更新都将在 AndroidX 中进行。

来自官方的说明:

This is the stable release of Support Library 28.0.0 and is suitable for use in production. This will be the last feature release under the android.support packaging, and developers are encouraged to migrate to AndroidX.

OK,既然官方推荐并且 Support 库也再也不更新了,没啥好说的了,盘它!

准备工做

1. Android Studio 升级到3.2.0 Canary 14以上版本

2. gradle 版本升到3.2.0以上

classpath 'com.android.tools.build:gradle:3.2.1'
复制代码

3. compileSdkVersion 升到28以上

compileSdkVersion 28
 defaultConfig {
      targetSdkVersion 28
  }
复制代码

4. gradle.properties 文件配置 若是你是在一个新的项目中须要使用 AndroidX ,.gradle.properties 文件中这样配置:

android.enableJetifier=true
android.useAndroidX=true
复制代码

若是你想在一个现有的项目中体验 AndroidX ,可是以前使用的库不迁移的话, .gradle.properties 文件中这样配置:

android.enableJetifier=false
android.useAndroidX=true
复制代码

一键迁移

Android Studio 3.2.0 Canary 14及以上版本提供了方便快捷的一键迁移到 AndroidX 的功能。在菜单上选择 Refactor->Migrate to AndroidX 便可完成迁移。

注意: 若是准备工做第三点中你的 compileSdkVersion 没有升到28及以上点击 “Migrate to AndroidX” 会提示:

写在最后

关于 AndroidX 的前因后果以及如何使用就介绍到这里啦!最后再总结一下: 原始 Support 库谷歌爸爸最终只更新到28.0.0版本,后续将再也不更新,全部的新功能开发都将在 AndroidX 中进行。仅凭这一点咱们就须要赶忙学起来了,虽然技术的更迭节奏让咱们眼花缭乱,明明刚出的还没学完又出新花样,但正是技术的不断更迭才带来技术的不断进步,咱们在学习新技术的同时也是让本身变得更好的过程,从咱们踏进这个门,选择这条路的时候开始,就已经作好了终身学习的准备了。世界在变,咱们须要作的就是享受变化,拥抱变化!(猝不及防来了一波鸡汤)。

电光火石间,宗门重地藏经阁金顶三道天雷降下,将这夜映的如白昼通常,顿时间狂风扫落叶,乌云压金顶!忽然,一道金光夺窗而出,直奔天雷御剑而去。得见此景弟子的们都在大喊“快看!快看!藏经阁飞出一个头顶冒金光的人,往天雷飞去了”。而此时站在山顶的宗主则微微一笑,他知道这是门下又一弟子习得藏经阁中上乘功法至绝顶境界了,那一头的金光正是绝顶境界!

相关文章
相关标签/搜索