Android AndroidX的迁移

AndroidX 将原始支持库 API 替换为 androidx 命名空间中的软件包。只有软件包和 Maven 工件名称发生了变化;类、方法和字段名称没有变化。

注意:我们建议在单独的分支中执行迁移。此外,还应设法避免在执行迁移时重构代码。

前提条件

执行迁移之前,请先将应用更新到最新版本。我们建议您将项目更新为使用支持库的最终版本:版本 28.0.0。这是因为,1.0.0 版本的 AndroidX 工件是与支持库 28.0.0 工件等效的二进制文件。

使用 Android Studio 迁移现有项目

使用 Android Studio 3.2 及更高版本,您只需从菜单栏中依次选择 Refactor > Migrate to AndroidX,即可将现有项目迁移到 AndroidX。

重构命令使用两个标记。默认情况下,这两个标记在 gradle.properties 文件中都设为 true

android.useAndroidX=true

Android 插件会使用对应的 AndroidX 库而非支持库。

android.enableJetifier=true

Android 插件会通过重写现有第三方库的二进制文件,自动将这些库迁移为使用 AndroidX。

注意:内置的 Android Studio 迁移功能可能并不能完成所有操作。根据您的构建配置,您可能需要手动更新构建脚本和 Proguard 映射。例如,如果您在一个单独的构建文件中维护依赖项配置,请使用下述映射文件来检查依赖项并将其更新为对应的 AndroidX 软件包。

andorid studio一键替换androidx

如图所示可以完全替换代码中所有文件

工件映射

下表列出了从旧支持库工件到 androidx 的最新映射。您也可以下载包含这些映射信息的 CSV 格式文件。

旧构建工件AndroidX 构建工件
android.arch.core:commonandroidx.arch.core:core-common
android.arch.core:coreandroidx.arch.core:core
android.arch.core:core-testingandroidx.arch.core:core-testing
android.arch.core:runtimeandroidx.arch.core:core-runtime
android.arch.lifecycle:commonandroidx.lifecycle:lifecycle-common
android.arch.lifecycle:common-java8androidx.lifecycle:lifecycle-common-java8
android.arch.lifecycle:compilerandroidx.lifecycle:lifecycle-compiler
android.arch.lifecycle:extensionsandroidx.lifecycle:lifecycle-extensions
android.arch.lifecycle:livedataandroidx.lifecycle:lifecycle-livedata
android.arch.lifecycle:livedata-coreandroidx.lifecycle:lifecycle-livedata-core
android.arch.lifecycle:reactivestreamsandroidx.lifecycle:lifecycle-reactivestreams
android.arch.lifecycle:runtimeandroidx.lifecycle:lifecycle-runtime
android.arch.lifecycle:viewmodelandroidx.lifecycle:lifecycle-viewmodel
android.arch.paging:commonandroidx.paging:paging-common
android.arch.paging:runtimeandroidx.paging:paging-runtime
android.arch.paging:rxjava2androidx.paging:paging-rxjava2
android.arch.persistence.room:commonandroidx.room:room-common
android.arch.persistence.room:compilerandroidx.room:room-compiler
android.arch.persistence.room:guavaandroidx.room:room-guava
android.arch.persistence.room:migrationandroidx.room:room-migration
android.arch.persistence.room:runtimeandroidx.room:room-runtime
android.arch.persistence.room:rxjava2androidx.room:room-rxjava2
android.arch.persistence.room:testingandroidx.room:room-testing
android.arch.persistence:dbandroidx.sqlite:sqlite
android.arch.persistence:db-frameworkandroidx.sqlite:sqlite-framework
com.android.support.constraint:constraint-layoutandroidx.constraintlayout:constraintlayout
com.android.support.constraint:constraint-layout-solverandroidx.constraintlayout:constraintlayout-solver
com.android.support.test.espresso.idling:idling-concurrentandroidx.test.espresso.idling:idling-concurrent
com.android.support.test.espresso.idling:idling-netandroidx.test.espresso.idling:idling-net
com.android.support.test.espresso:espresso-accessibilityandroidx.test.espresso:espresso-accessibility
com.android.support.test.espresso:espresso-contribandroidx.test.espresso:espresso-contrib
com.android.support.test.espresso:espresso-coreandroidx.test.espresso:espresso-core
com.android.support.test.espresso:espresso-idling-resourceandroidx.test.espresso:espresso-idling-resource
com.android.support.test.espresso:espresso-intentsandroidx.test.espresso:espresso-intents
com.android.support.test.espresso:espresso-remoteandroidx.test.espresso:espresso-remote
com.android.support.test.espresso:espresso-webandroidx.test.espresso:espresso-web
com.android.support.test.janktesthelper:janktesthelperandroidx.test.jank:janktesthelper
com.android.support.test.services:test-servicesandroidx.test:test-services
com.android.support.test.uiautomator:uiautomatorandroidx.test.uiautomator:uiautomator
com.android.support.test:monitorandroidx.test:monitor
com.android.support.test:orchestratorandroidx.test:orchestrator
com.android.support.test:rulesandroidx.test:rules
com.android.support.test:runnerandroidx.test:runner
com.android.support:animated-vector-drawableandroidx.vectordrawable:vectordrawable-animated
com.android.support:appcompat-v7androidx.appcompat:appcompat
com.android.support:asynclayoutinflaterandroidx.asynclayoutinflater:asynclayoutinflater
com.android.support:carandroidx.car:car-alpha5
com.android.support:cardview-v7androidx.cardview:cardview
com.android.support:collectionsandroidx.collection:collection
com.android.support:coordinatorlayoutandroidx.coordinatorlayout:coordinatorlayout
com.android.support:cursoradapterandroidx.cursoradapter:cursoradapter
com.android.support:customtabsandroidx.browser:browser
com.android.support:customviewandroidx.customview:customview
com.android.support:designcom.google.android.material:material-rc01
com.android.support:documentfileandroidx.documentfile:documentfile
com.android.support:drawerlayoutandroidx.drawerlayout:drawerlayout
com.android.support:exifinterfaceandroidx.exifinterface:exifinterface
com.android.support:gridlayout-v7androidx.gridlayout:gridlayout
com.android.support:heifwriterandroidx.heifwriter:heifwriter
com.android.support:interpolatorandroidx.interpolator:interpolator
com.android.support:leanback-v17androidx.leanback:leanback
com.android.support:loaderandroidx.loader:loader
com.android.support:localbroadcastmanagerandroidx.localbroadcastmanager:localbroadcastmanager
com.android.support:media2androidx.media2:media2-alpha03
com.android.support:media2-exoplayerandroidx.media2:media2-exoplayer-alpha01
com.android.support:mediarouter-v7androidx.mediarouter:mediarouter
com.android.support:multidexandroidx.multidex:multidex
com.android.support:multidex-instrumentationandroidx.multidex:multidex-instrumentation
com.android.support:palette-v7androidx.palette:palette
com.android.support:percentandroidx.percentlayout:percentlayout
com.android.support:preference-leanback-v17androidx.leanback:leanback-preference
com.android.support:preference-v14androidx.legacy:legacy-preference-v14
com.android.support:preference-v7androidx.preference:preference
com.android.support:printandroidx.print:print
com.android.support:recommendationandroidx.recommendation:recommendation
com.android.support:recyclerview-selectionandroidx.recyclerview:recyclerview-selection
com.android.support:recyclerview-v7androidx.recyclerview:recyclerview
com.android.support:slices-buildersandroidx.slice:slice-builders
com.android.support:slices-coreandroidx.slice:slice-core
com.android.support:slices-viewandroidx.slice:slice-view
com.android.support:slidingpanelayoutandroidx.slidingpanelayout:slidingpanelayout
com.android.support:support-annotationsandroidx.annotation:annotation
com.android.support:support-compatandroidx.core:core
com.android.support:support-contentandroidx.contentpager:contentpager
com.android.support:support-core-uiandroidx.legacy:legacy-support-core-ui
com.android.support:support-core-utilsandroidx.legacy:legacy-support-core-utils
com.android.support:support-dynamic-animationandroidx.dynamicanimation:dynamicanimation
com.android.support:support-emojiandroidx.emoji:emoji
com.android.support:support-emoji-appcompatandroidx.emoji:emoji-appcompat
com.android.support:support-emoji-bundledandroidx.emoji:emoji-bundled
com.android.support:support-fragmentandroidx.fragment:fragment
com.android.support:support-media-compatandroidx.media:media
com.android.support:support-tv-providerandroidx.tvprovider:tvprovider
com.android.support:support-v13androidx.legacy:legacy-support-v13
com.android.support:support-v4androidx.legacy:legacy-support-v4
com.android.support:support-vector-drawableandroidx.vectordrawable:vectordrawable
com.android.support:swiperefreshlayoutandroidx.swiperefreshlayout:swiperefreshlayout
com.android.support:textclassifierandroidx.textclassifier:textclassifier
com.android.support:transitionandroidx.transition:transition
com.android.support:versionedparcelableandroidx.versionedparcelable:versionedparcelable
com.android.support:viewpagerandroidx.viewpager:viewpager
com.android.support:wearandroidx.wear:wear
com.android.support:webkitandroidx.webkit:webkit

总结:

后续很多三方开源框架使用的是androidx如果我们没有替换会有很多兼容问题无法编译通过,为了后续更好维护开发尽早提前替换成androidx

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值