Androidx 迁移小结

为什么迁移

现在来说,那就又是去年的事情了。到目前为止,androidx 库很多版本已经推出了正式稳定版,版本详情戳这里。对比以前 support 包, androidx 将各个 library 分开设立单独的版本管理,这样的好处显而易见。第一没有了之前 v4 v7 的繁琐依赖。第二可以精确指定需要导入 library ,避免不必要的导入,从而减少代码体积。关键新的 library 版本完全遵循 Semantic Versioning,而不是跟着 Android API 版本走。这样让我们通过版本号就能明确和当前代码是否兼容。

还有一点,现在很多开源项目已经陆续完成 androidx 迁移,并且基本不再对 support 提供最新支持。如果你不跟上这个节奏,那么今后你就没法升级相关依赖,老版本 bug 修复你也得不到任何支持。

怎么迁移

迁移已经超级超级简单。Google 已经考虑到我们的迁移成本,在 Android Studio 中已经支持一键迁移。

这个的前提是你得更新你的 Android Studio 版本和 gradle 的版本。请注意,这两个的版本都要更新。Android Studio 最低要求是 3.2 的版本,现在正式稳定版本是 3.4.1
,gradle 支持 androidx 的最低版本是 3.2.1请注意,一定要升级对应的 gradle 版本。

接着就在顶部菜单栏中选择 Refactor > Migrate to AndroidX 就可以完成相关迁移啦,这时候会出现一个提示框。

Migrate Androidx

备份那个勾选可以去掉,然后点击 Migrate 。接下来 Android Studio 会遍历你的工程文件,进行相关包名和导包替换,并且会在你的 gradle.propertier 文件中增加两个属性。

android.useAndroidX=true
android.enableJetifier=true 

上面说了,项目导包啥的都会自动替换,你自己确定就行。那么依赖的库呢,enableJetifier 这个属性设置为 true 时就会将你依赖的库在打包时自动替换为对应的 androidx ,是不是很流弊。详情请看官方文档

迁移完成,build.gradle 中的相关依赖也会自动更换,不过它更换的版本可能不是对应的稳定版本,而是最新的 beta 版本,咱们得手动更新到对应的稳定版本。那么这个稳定版本是多少呢,去查看相关文档是不是很纠结。已经有人帮我做了对应插件,超帅

还有 @NonNull ,在新版本中非空可空都已添加明确注解,这些细节地方可能也需要手动去更新下。

怎么验证

傻瓜式迁移搞定后,一切来得太快太顺利都让自己开始怀疑迁移是否完成,项目是否还 OK 。

验证其实也很简单,首先,你得验证项目能编译过,没有 error ,lint 没有额外的警告。我的经验是迁移之后,导包更换成功,但是使用该类时又会带上全路径,这个时候 lint 是能刷出来的,需要手动改一改。接着,你得确定 support 包是否已经被完全替换,不应该出现两者共存的情况。这里就有很多方法,我提供三种方案:直接查看工程文件最下方的 External Libraries 是否还有 support 依赖;使用 ./gradlew -q :app:dependencies > dependencies.txt'看看对应依赖关系中是否还有 support 依赖;反编译自己的包,看看里面还有没有 support 相关的类。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,924评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,781评论 2 378
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,813评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,264评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,273评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,383评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,800评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,482评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,673评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,497评论 2 318
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,545评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,240评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,802评论 3 304
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,866评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,101评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,673评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,245评论 2 341