简介
Google 2018 IO 大会推出了 Android新的扩展库 AndroidX,用于替换原来的 Android扩展库,将原来的 android.* 替换成androidx.* 按照官方文档说明 androidx 是对 android.support.xxx 包的整理后产物。由于之前的support包过于混乱,所以,google推出了 androidX。由于在后续版本中,会逐步放弃对support 的升级和维护,所以,我们必须迁移到 androidX。Android官方文档
AndroidX库集成变化
Support Library | AndroidX |
---|---|
com.android.support:appcompat-v7:28.0.0 | androidx.appcompat:appcompat:1.0.0 |
com.android.support:design:28.0.0 | com.google.android.material:material:1.0.0 |
com.android.support:support-v4:28.0.0 | androidx.legacy:legacy-support-v4:1.0.0 |
com.android.support:recyclerview-v7:28.0.0 | androidx.recyclerview:recyclerview:1.0.0 |
com.android.support.constraint:constraint-layout:1.1.2 | androidx.constraintlayout:constraintlayout:1.1.2 |
Support Library class | AndroidX class |
---|---|
android.support.v4.app.Fragment | androidx.fragment.app.Fragment |
android.support.v4.app.FragmentActivity | androidx.fragment.app.FragmentActivity |
android.support.v7.app.AppCompatActivity | androidx.appcompat.app.AppCompatActivity |
android.support.v7.app.ActionBar | androidx.appcompat.app.ActionBar |
android.support.v7.widget.RecyclerView | androidx.recyclerview.widget.RecyclerView |
AndroidX相关配置
1.更新升级插件
- AS版本3.2及以上
- Gradle 插件版本4.6及以上
- compileSdkVersion 版本升级到 28及以上
- buildToolsVersion 版本改为 28.0.2及以上
2.开启迁移AndroidX。在项目的gradle.properties文件里添加如下配置:
android.useAndroidX=true
android.enableJetifier=true
3.替换项目app目录下的build.gradle依赖库:
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'
4.修改代码中import的支持库类:
import android.support.v7.app.AppCompatActivity; → import androidx.appcompat.app.AppCompatActivity;
AndroidX影响
现在项目我们可以仍然使用旧版本的支持库,毕竟没有强制,但长远来看替换AndroidX还是有好处的。AndroidX重新设计了包结构,旨在鼓励库的小型化,支持库和架构组件包的名字也都简化了,而且也是减轻Android生态系统碎片化的有效方式。