Android转AndroidX

简介: 公司项目多,有些事java,有些是kotlin,有些是Android,有些是AndroidX,一些依赖和依赖库的更新使得调用的方法等不同,导致功能同步时效率及极其低下,于是打算把Android项目转成AndroidX。

1.遇到的问题


公司项目多,有些事java,有些是kotlin,有些是Android,有些是AndroidX,一些依赖和依赖库的更新使得调用的方法等不同,导致功能同步时效率及极其低下,于是打算把Android项目转成AndroidX。



2.为啥转AndroidX?


其实AndroidX并不是什么全新的东西,而是对Android Support Library的一次升级。因此,AndroidX上手起来也没有任何困难的地方,比如之前你经常使用的RecyclerView、ViewPager等等库,在AndroidX中都会有一个对应的版本,只要改一下包名就可以完全无缝使用,用法方面基本上都没有任何的变化。


但是有一点需要注意,AndroidX和Android Support Library中的库是非常不建议混合在一起使用的,因为它们可能会产生很多不兼容的问题。最好的做法是,要么全部使用AndroidX中的库,要么全部使用Android Support Library中的库。


而现在Android团队官方的态度也很明确,未来都会为AndroidX为主,Android Support Library已经不再建议使用,并会慢慢停止维护。另外,从Android Studio 3.4.2开始,我发现新建的项目已经强制勾选使用AndroidX架构了。


为了项目更好的维护和开发,推荐把项目转成AndroidX。



3.实操


自从在 Android 3.2 稳定版中就加入了 "Migrate to AndroidX" 选项,方便大家迁移。


是的,一键迁移,简直不要太爽~


1.在 "Refactor" 菜单中找到 "Migrate to AndroidX" 选项

098339e7ee0b49f99f35d904a287a2b.png



2.点击Migrate开始迁移,backup preject 会把你的项目被分成一个压缩包

9f54384094218ffd5ef1b5196ae0978.png



3.点击Migrate后,Android Studio就会自动检查你项目中所有使用Android Support Library的地方,这些需要修改的地方他会展示给你,点击Do Refactor后,会将它们全部改成AndroidX中对应的库。

9f0d0fbe4bedda5dcb5292cf4de2436.png



4.如果你要检查你是否全部文件都转成AndroidX了,你可以重复123步骤:


03273d7cbca45a02fd79bbfb87021af.png



转移成功后,你可以看到


1.项目的gradle.properties文件里配置已更改为:


android.useAndroidX=true
android.enableJetifier=true

2.build.gradle的依赖库:当然这只是一些基础的库,比如,对应Android和AndroidX,有些第三方库的导入的库也不一样,我的项目里glide在同步后就爆红了,更改后就正常了。


implementation 'com.android.support:appcompat-v7:28.0.2' → implementation 'androidx.appcompat:appcompat:1.0.0'
implementation 'com.android.support:design:28.0.2'  → implementation 'com.google.android.material:material:1.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.2' → implementation 'androidx.constraintlayout:constraintlayout:1.1.2'
...

3.各个class等文件里的import也进行了更改。


不得不说,这个一件迁移真的很方便,不然真的要改死。



如果出现部分迁移错误,请按照谷歌上的映射关系表:https://developer.android.google.cn/jetpack/androidx/migrate/artifact-mappings手动修改依赖和https://developer.android.google.cn/jetpack/androidx/migrate/class-mappings手动修改导包。有些第三方库爆红了可以去看看其源码或者更新日志,一般改下依赖就可以了。


参考文章:是时候迁移至 AndroidX 了!  


相关文章
|
前端开发 Android开发
Android 现有项目迁移到androidx
Android 现有项目迁移到androidx
204 0
Android 现有项目迁移到androidx
|
XML Java API
【解惑】Android Support 和 AndroidX
刚来这家公司时,正好赶上项目AndroidX迁移,踩了一些坑,记了些笔记,整理一下发一波~
471 0
|
Android开发
【错误记录】Android 应用运行报错 ( java.lang.VerifyError: Verifier rejected class androidx. | 逆向中遇到的问题 )
【错误记录】Android 应用运行报错 ( java.lang.VerifyError: Verifier rejected class androidx. | 逆向中遇到的问题 )
1055 0
【错误记录】Android 应用运行报错 ( java.lang.VerifyError: Verifier rejected class androidx. | 逆向中遇到的问题 )
|
开发工具 Android开发
【Flutter】Flutter 拍照示例 ( Android 应用兼容 Android X | Gradle 版本号 | Gradle 插件版本号 | Android X 支持 | SDK 版本 )(二)
【Flutter】Flutter 拍照示例 ( Android 应用兼容 Android X | Gradle 版本号 | Gradle 插件版本号 | Android X 支持 | SDK 版本 )(二)
178 0
【Flutter】Flutter 拍照示例 ( Android 应用兼容 Android X | Gradle 版本号 | Gradle 插件版本号 | Android X 支持 | SDK 版本 )(二)
|
API 开发工具 Android开发
【Flutter】Flutter 拍照示例 ( Android 应用兼容 Android X | Gradle 版本号 | Gradle 插件版本号 | Android X 支持 | SDK 版本 )(一)
【Flutter】Flutter 拍照示例 ( Android 应用兼容 Android X | Gradle 版本号 | Gradle 插件版本号 | Android X 支持 | SDK 版本 )(一)
212 0
【Flutter】Flutter 拍照示例 ( Android 应用兼容 Android X | Gradle 版本号 | Gradle 插件版本号 | Android X 支持 | SDK 版本 )(一)
|
1天前
|
前端开发 Android开发
Android架构组件JetPack之DataBinding玩转MVVM开发实战(四)
Android架构组件JetPack之DataBinding玩转MVVM开发实战(四)
Android架构组件JetPack之DataBinding玩转MVVM开发实战(四)
|
1天前
|
安全 Linux Android开发
Android最强保活黑科技的最强技术实现,2024年最新阿里资深Android开发带你搞懂Framework
Android最强保活黑科技的最强技术实现,2024年最新阿里资深Android开发带你搞懂Framework
Android最强保活黑科技的最强技术实现,2024年最新阿里资深Android开发带你搞懂Framework
|
1天前
|
算法 前端开发 Android开发
Android文字基线Baseline算法的使用讲解,Android开发面试题
Android文字基线Baseline算法的使用讲解,Android开发面试题
Android文字基线Baseline算法的使用讲解,Android开发面试题
|
1天前
|
缓存 Android开发
Android插件化——高手必备的Hook技术,零基础开发android
Android插件化——高手必备的Hook技术,零基础开发android
|
1天前
|
Android开发
Android高级开发面试题以及笞案整理,实战解析
Android高级开发面试题以及笞案整理,实战解析