本门藏经阁 - AndroidX

自盘谷开天辟地后,上古大神 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-compatandroidx.core:core:1.0.0+
com.android.support:appcompat-v7androidx.appcompat:appcompat:1.0.0+
com.android.support:designcom.google.android.material:material:1.0.0+
com.android.support:multidexandroidx.multidex:multidex:2.0.0+
com.android.support.test.espresso:espresso-accessibilityandroidx.test.espresso:espresso-accessibility:3.1.0
com.android.support.test:runnerandroidx.test:runner:1.1.0
com.android.support:cardview-v7androidx.cardview:cardview:1.0.0
com.android.support:recyclerview-v7androidx.recyclerview:recyclerview:1.0.0
com.android.support:viewpagerandroidx.viewpager:viewpager:1.0.0
android.arch.lifecycle:livedataandroidx.lifecycle:lifecycle-livedata:2.0.0-rc01
com.android.support:support-fragmentandroidx.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 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 中进行。仅凭这一点我们就需要赶紧学起来了,虽然技术的更迭节奏让我们眼花缭乱,明明刚出的还没学完又出新花样,但正是技术的不断更迭才带来技术的不断进步,我们在学习新技术的同时也是让自己变得更好的过程,从我们踏进这个门,选择这条路的时候开始,就已经做好了终身学习的准备了。世界在变,我们需要做的就是享受变化,拥抱变化!(猝不及防来了一波鸡汤)。

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【1】项目代码完整且功能都验证ok,确保稳定可靠运行后才上传。欢迎下载使用!在使用过程中,如有问题或建议,请及时私信沟通,帮助解答。 【2】项目主要针对各个计算机相关专业,包括计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师或企业员工使用。 【3】项目具有较高的学习借鉴价值,不仅适用于小白学习入进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 【4】如果基础还行,或热爱钻研,可基于此项目进行二次开发,DIY其他不同功能,欢迎交流学习。 【注意】 项目下载解压后,项目名字和项目路径不要用中文,否则可能会出现解析不了的错误,建议解压重命名为英文名字后再运行!有问题私信沟通,祝顺利! 基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值