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

本门藏经阁 - AndroidX

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

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

来自官方的解释

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

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 库中的包大致可以分为以下三大类:

  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 28defaultConfig {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 中进行。仅凭这一点我们就需要赶紧学起来了,虽然技术的更迭节奏让我们眼花缭乱,明明刚出的还没学完又出新花样,但正是技术的不断更迭才带来技术的不断进步,我们在学习新技术的同时也是让自己变得更好的过程,从我们踏进这个门,选择这条路的时候开始,就已经做好了终身学习的准备了。世界在变,我们需要做的就是享受变化,拥抱变化!(猝不及防来了一波鸡汤)。

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

转载于:https://juejin.im/post/5cde85ee51882525fd1f6f20

本门藏经阁 - AndroidX相关推荐

  1. Jetpack系列之Navigation----入门(五)

    Jetpack系列之Navigation----入门(五) 使用 ViewPager 创建包含标签页的滑动视图 实现滑动视图 使用 TabLayout 添加标签页 使用 ViewPager2 创建包含 ...

  2. AndroidX TabLayout使用、扩展及解析All In One,跪了

    首先,讲讲为什么我们要讲JAVA的语言进阶,从整体来讲,Java和Android的区别在于Android程序是基于组件和配置的,而且Android开发以Java语言为开发工具,表面上看他们有点同宗不同 ...

  3. Androidx CoordinatorLayout 和 AppBarLayout 实现折叠效果(通俗的说是粘性头效果)

    Androidx  CoordinatorLayout 和 AppBarLayout 实现折叠效果 或者 说是粘性头效果 先看下面是不是你需要的结果  大致顺序是先滚动整体,然后折叠 在滚动list ...

  4. 人脸服务器如何与门禁系统对接,人脸识别门禁系统终端设备接口说明

    1.上传识别结果 人脸识别门禁系统设备识别后把识别结果上传到服务器(单包数据数量小于5条) (一) 人脸识别门禁系统请求(设备->服务器): 1. 人脸识别门禁系统请求命令: 0x19 2. 人 ...

  5. 人脸识别门禁_门禁人脸识别系统铜陵县门禁人脸识别系统哪家好

    门禁人脸识别系统铜陵县门禁人脸识别系统哪家好 工地 1.建筑工地使用人脸识别门禁考勤机解决问题:工人刷脸出入,刷脸考勤,杜绝虚假考勤,提高考勤效率,工人工种分组,实名制管理. 2.人脸识别测温一体机用 ...

  6. 如何正确的学习Blender-入门到精通课程

    流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确) |大小解压后:17.8 GB 含课程文件 |时长:2 ...

  7. 刷过一题之黑魔法师之门

    经过了16 个工作日的紧张忙碌,未来的人类终于收集到了足够的能源.然而在与Violet星球的战争中,由于Z 副官的愚蠢,地球的领袖applepi 被邪恶的黑魔法师Vani 囚禁在了Violet 星球. ...

  8. 有n个学生选修了c语言程序设计这门课程,C语言程序设计报告学生选修课系统(18页)-原创力文档...

    C 语 言 程 序 设 计 学校: 学院: 班级序号: 学号: :姓名 指导老师: C语言程序设计报告 一.C语言课程设计的目的: 高级语言课程设计是学习完<高级语言程序设计>课程后进行的 ...

  9. 赛门铁克开启“容灾即服务”时代

    从本地备份到异地复制再到云容灾,随着云计算技术的快速发展,以及云服务这种模式逐渐被广大企业用户所接受,将数据备份到云已经是一种可行的数据保护解决方案.12 月 16日,赛门铁克公司推出了一款全新的灾难 ...

最新文章

  1. adams齿轮齿条怎么定义接触_在SolidWorks里对标准齿轮、齿条的修改应用
  2. CSS设置页面背景色
  3. 服务器上flash不显示动画,win10电脑在线预览不能加载flash
  4. 编程php分析器,如何编程访问分析器数据
  5. 利用DHT22和Arduino测量温湿度并显示在串口和OLED显示屏上
  6. 百度云链接后的html,百度云链接失效,这样就能找回!
  7. HttpClilent整合Spring使用
  8. C# 将PDF文档转换成图片
  9. 3D 专业词汇 (转)
  10. ECharts官方教程(四)【个性化图表的样式】
  11. 虚拟机增加一块新硬盘
  12. 中国自然地理分区数据集 (含农业区划、森林工程、生态保护区、九大流域等)
  13. 关于MPO光纤连接器你知道哪些?
  14. how2j离线资源,2018,12月26最新
  15. 苹果cmsv10仿9080YY电影网站红色大气响应式免费模板
  16. 微信白名单配置与检验
  17. Currency Translation in Bex Query Variable 2
  18. Ubuntu18.04中roboware安装问题
  19. 开发一套完整的直播平台源码,必须具备完善的功能
  20. 利用HOOKAPI拦截文件操作

热门文章

  1. bzoj4695 最佳女选手
  2. 关于色环电阻的读数和功率
  3. 斑马打印机(zebraZT410R-203dpi)打印RFID标签流程
  4. 2021年8月--最新免费国内1000个http代理ip
  5. 微信小程序开发学习—Day1
  6. wps 表格 自动生成序号
  7. gadget驱动框架(三)
  8. mac SCp上传文件到阿里云服务器centos
  9. Android Studio实现一个记账本项目
  10. 机器人学回炉重造(1-2):各种典型机械臂的正运动学建模(标准D-H法)