当前位置: 首页 > 工具软件 > AndroidCommon > 使用案例 >

android androidx版本,Android AndroidX 简介与迁移

越宣
2023-12-01

AndroidX 简介

AndroidX 是 Android 团队用于在 Jetpack 中开发,测试,打包,版本和发布库的开源项目 。

AndroidX 是对原始 Android Support Library的重大改进 。与支持库一样,AndroidX 与 Android 操作系统分开提供,并提供跨 Android 版本的向后兼容性。AndroidX 通过提供功能奇偶校验和新库完全取代了支持库。此外,AndroidX 还包括以下功能:

AndroidX 中的所有软件包都以字符串开头,位于一致的命名空间中 androidx。支持库包已映射到相应的 androidx.* 包中。有关所有旧类和构建组件的完整映射到新构件。

与支持库不同,AndroidX 软件包是单独维护和更新的。这些 androidx 包使用从版本 1.0.0 开始的严格语义版本控制。开发者可以单独更新项目中的 AndroidX 库。

所有新的支持库开发都将在 AndroidX 库中进行。这包括维护原始支持库组件和引入新的 Jetpack 组件。

使用 AndroidX

如果要在新项目中使用 AndroidX,则需要一下条件:

使用 Android Studio 3.2 及更高版本

将 compileSdkVersion 设置为 28(Android 9.0)或更高版本

将 gradle-wrapper.properties 文件中的 Gradle 版本改为 4.6或更高版本

在 gradle.properties 文件中将以下两个 Android Gradle 插件标志设置 true:android.useAndroidX:设置 true 为时,Android 插件使用相应的 AndroidX 库而不是支持库,默认为 false。

android.enableJetifier:设置 true 为时,Android 插件会自动迁移现有的第三方库,通过重写其二进制文件来使用 AndroidX,默认为 false。

迁移到 AndroidX

AndroidX 将原始支持库 API 包映射到 androidx 命名空间。只有包和 Maven 组件名称发生了变化; 类、方法和字段名称没有改变。

使用 Android Studio 3.2 及更高版本,您可以通过从菜单栏中选择 Refactor> Migrate to AndroidX 快速迁移现有项目以使用 AndroidX 。

如果您有任何尚未迁移到 AndroidX 名称空间的 Maven 依赖项,那么当您将 gradle.properties 文件中以下两个 Android Gradle 插件标志设置 true,Android Studio 构建系统也会为您迁移这些依赖项:

android.useAndroidX=true

android.enableJetifier=true

要迁移不使用任何需要转换的依赖项的第三方库的现有项目,可以将 android.useAndroidX 标志设置为 true,将 android.enableJetifier 标志设置为 false。

组件映射

下表列出了从旧组件到新组件的当前映射,也可以下载CSV格式映射文件:

旧构建组件

AndroidX 构建组件

android.arch.core:common

androidx.arch.core:core-common:2.0.0-rc01

android.arch.core:core

androidx.arch.core:core:2.0.0-rc01

android.arch.core:core-testing

androidx.arch.core:core-testing:2.0.0-rc01

android.arch.core:runtime

androidx.arch.core:core-runtime:2.0.0-rc01

android.arch.lifecycle:common

androidx.lifecycle:lifecycle-common:2.0.0-rc01

android.arch.lifecycle:common-java8

androidx.lifecycle:lifecycle-common-java8:2.0.0-rc01

android.arch.lifecycle:compiler

androidx.lifecycle:lifecycle-compiler:2.0.0-rc01

android.arch.lifecycle:extensions

androidx.lifecycle:lifecycle-extensions:2.0.0-rc01

android.arch.lifecycle:livedata

androidx.lifecycle:lifecycle-livedata:2.0.0-rc01

android.arch.lifecycle:livedata-core

androidx.lifecycle:lifecycle-livedata-core:2.0.0-rc01

android.arch.lifecycle:reactivestreams

androidx.lifecycle:lifecycle-reactivestreams:2.0.0-rc01

android.arch.lifecycle:runtime

androidx.lifecycle:lifecycle-runtime:2.0.0-rc01

android.arch.lifecycle:viewmodel

androidx.lifecycle:lifecycle-viewmodel:2.0.0-rc01

android.arch.paging:common

androidx.paging:paging-common:2.0.0-rc01

android.arch.paging:runtime

androidx.paging:paging-runtime:2.0.0-rc01

android.arch.paging:rxjava2

androidx.paging:paging-rxjava2:2.0.0-rc01

android.arch.persistence.room:common

androidx.room:room-common:2.0.0-rc01

android.arch.persistence.room:compiler

androidx.room:room-compiler:2.0.0-rc01

android.arch.persistence.room:guava

androidx.room:room-guava:2.0.0-rc01

android.arch.persistence.room:migration

androidx.room:room-migration:2.0.0-rc01

android.arch.persistence.room:runtime

androidx.room:room-runtime:2.0.0-rc01

android.arch.persistence.room:rxjava2

androidx.room:room-rxjava2:2.0.0-rc01

android.arch.persistence.room:testing

androidx.room:room-testing:2.0.0-rc01

android.arch.persistence:db

androidx.sqlite:sqlite:2.0.0-rc01

android.arch.persistence:db-framework

androidx.sqlite:sqlite-framework:2.0.0-rc01

com.android.support.constraint:constraint-layout

androidx.constraintlayout:constraintlayout:1.1.2

com.android.support.constraint:constraint-layout-solver

androidx.constraintlayout:constraintlayout-solver:1.1.2

com.android.support.test.espresso.idling:idling-concurrent

androidx.test.espresso.idling:idling-concurrent:3.1.0

com.android.support.test.espresso.idling:idling-net

androidx.test.espresso.idling:idling-net:3.1.0

com.android.support.test.espresso:espresso-accessibility

androidx.test.espresso:espresso-accessibility:3.1.0

com.android.support.test.espresso:espresso-contrib

androidx.test.espresso:espresso-contrib:3.1.0

com.android.support.test.espresso:espresso-core

androidx.test.espresso:espresso-core:3.1.0

com.android.support.test.espresso:espresso-idling-resource

androidx.test.espresso:espresso-idling-resource:3.1.0

com.android.support.test.espresso:espresso-intents

androidx.test.espresso:espresso-intents:3.1.0

com.android.support.test.espresso:espresso-remote

androidx.test.espresso:espresso-remote:3.1.0

com.android.support.test.espresso:espresso-web

androidx.test.espresso:espresso-web:3.1.0

com.android.support.test.janktesthelper:janktesthelper

androidx.test.jank:janktesthelper:1.0.1

com.android.support.test.services:test-services

androidx.test:test-services:1.1.0

com.android.support.test.uiautomator:uiautomator

androidx.test.uiautomator:uiautomator:2.2.0

com.android.support.test:monitor

androidx.test:monitor:1.1.0

com.android.support.test:orchestrator

androidx.test:orchestrator:1.1.0

com.android.support.test:rules

androidx.test:rules:1.1.0

com.android.support.test:runner

androidx.test:runner:1.1.0

com.android.support:animated-vector-drawable

androidx.vectordrawable:vectordrawable-animated:1.0.0

com.android.support:appcompat-v7

androidx.appcompat:appcompat:1.0.0

com.android.support:asynclayoutinflater

androidx.asynclayoutinflater:asynclayoutinflater:1.0.0

com.android.support:car

androidx.car:car:1.0.0

com.android.support:cardview-v7

androidx.cardview:cardview:1.0.0

com.android.support:collections

androidx.collection:collection:1.0.0

com.android.support:coordinatorlayout

androidx.coordinatorlayout:coordinatorlayout:1.0.0

com.android.support:cursoradapter

androidx.cursoradapter:cursoradapter:1.0.0

com.android.support:customtabs

androidx.browser:browser:1.0.0

com.android.support:customview

androidx.customview:customview:1.0.0

com.android.support:design

com.google.android.material:material:1.0.0-rc01

com.android.support:documentfile

androidx.documentfile:documentfile:1.0.0

com.android.support:drawerlayout

androidx.drawerlayout:drawerlayout:1.0.0

com.android.support:exifinterface

androidx.exifinterface:exifinterface:1.0.0

com.android.support:gridlayout-v7

androidx.gridlayout:gridlayout:1.0.0

com.android.support:heifwriter

androidx.heifwriter:heifwriter:1.0.0

com.android.support:interpolator

androidx.interpolator:interpolator:1.0.0

com.android.support:leanback-v17

androidx.leanback:leanback:1.0.0

com.android.support:loader

androidx.loader:loader:1.0.0

com.android.support:localbroadcastmanager

androidx.localbroadcastmanager:localbroadcastmanager:1.0.0

com.android.support:media2

androidx.media2:media2:1.0.0-alpha03

com.android.support:media2-exoplayer

androidx.media2:media2-exoplayer:1.0.0-alpha01

com.android.support:mediarouter-v7

androidx.mediarouter:mediarouter:1.0.0

com.android.support:multidex

androidx.multidex:multidex:2.0.0

com.android.support:multidex-instrumentation

androidx.multidex:multidex-instrumentation:2.0.0

com.android.support:palette-v7

androidx.palette:palette:1.0.0

com.android.support:percent

androidx.percentlayout:percentlayout:1.0.0

com.android.support:preference-leanback-v17

androidx.leanback:leanback-preference:1.0.0

com.android.support:preference-v14

androidx.legacy:legacy-preference-v14:1.0.0

com.android.support:preference-v7

androidx.preference:preference:1.0.0

com.android.support:print

androidx.print:print:1.0.0

com.android.support:recommendation

androidx.recommendation:recommendation:1.0.0

com.android.support:recyclerview-selection

androidx.recyclerview:recyclerview-selection:1.0.0

com.android.support:recyclerview-v7

androidx.recyclerview:recyclerview:1.0.0

com.android.support:slices-builders

androidx.slice:slice-builders:1.0.0

com.android.support:slices-core

androidx.slice:slice-core:1.0.0

com.android.support:slices-view

androidx.slice:slice-view:1.0.0

com.android.support:slidingpanelayout

androidx.slidingpanelayout:slidingpanelayout:1.0.0

com.android.support:support-annotations

androidx.annotation:annotation:1.0.0

com.android.support:support-compat

androidx.core:core:1.0.0

com.android.support:support-content

androidx.contentpager:contentpager:1.0.0

com.android.support:support-core-ui

androidx.legacy:legacy-support-core-ui:1.0.0

com.android.support:support-core-utils

androidx.legacy:legacy-support-core-utils:1.0.0

com.android.support:support-dynamic-animation

androidx.dynamicanimation:dynamicanimation:1.0.0

com.android.support:support-emoji

androidx.emoji:emoji:1.0.0

com.android.support:support-emoji-appcompat

androidx.emoji:emoji-appcompat:1.0.0

com.android.support:support-emoji-bundled

androidx.emoji:emoji-bundled:1.0.0

com.android.support:support-fragment

androidx.fragment:fragment:1.0.0

com.android.support:support-media-compat

androidx.media:media:1.0.0

com.android.support:support-tv-provider

androidx.tvprovider:tvprovider:1.0.0

com.android.support:support-v13

androidx.legacy:legacy-support-v13:1.0.0

com.android.support:support-v4

androidx.legacy:legacy-support-v4:1.0.0

com.android.support:support-vector-drawable

androidx.vectordrawable:vectordrawable:1.0.0

com.android.support:swiperefreshlayout

androidx.swiperefreshlayout:swiperefreshlayout:1.0.0

com.android.support:textclassifier

androidx.textclassifier:textclassifier:1.0.0

com.android.support:transition

androidx.transition:transition:1.0.0

com.android.support:versionedparcelable

androidx.versionedparcelable:versionedparcelable:1.0.0

com.android.support:viewpager

androidx.viewpager:viewpager:1.0.0

com.android.support:wear

androidx.wear:wear:1.0.0

com.android.support:webkit

androidx.webkit:webkit:1.0.0

类映射

下表列出了部分常用的从旧命名空间到新 androidx 包的当前映射,也可以下载CSV格式映射文件:

支持库类

AndroidX 类

android.support.multidex.MultiDex

androidx.multidex.MultiDex

android.support.v4.app.ActivityCompat

androidx.core.app.ActivityCompat

android.support.v4.app.ActivityManagerCompat

androidx.core.app.ActivityManagerCompat

android.support.v4.app.ActivityOptionsCompat

androidx.core.app.ActivityOptionsCompat

android.support.v4.app.AlarmManagerCompat

androidx.core.app.AlarmManagerCompat

android.support.v4.app.BundleCompat

androidx.core.app.BundleCompat

android.support.v4.app.DialogFragment

androidx.fragment.app.DialogFragment

android.support.v4.app.Fragment

androidx.fragment.app.Fragment

android.support.v4.app.FragmentActivity

androidx.fragment.app.FragmentActivity

android.support.v4.app.FragmentManager

androidx.fragment.app.FragmentManager

android.support.v4.app.ListFragment

androidx.fragment.app.ListFragment

android.support.v4.app.LoaderManager

androidx.loader.app.LoaderManager

android.support.v4.app.NotificationCompat

androidx.core.app.NotificationCompat

android.support.v4.app.NotificationCompatBuilder

androidx.core.app.NotificationCompatBuilder

android.support.v4.app.NotificationManagerCompat

androidx.core.app.NotificationManagerCompat

android.support.v4.content.ContextCompat

androidx.core.content.ContextCompat

android.support.v4.content.CursorLoader

androidx.loader.content.CursorLoader

android.support.v4.content.FileProvider

androidx.core.content.FileProvider

android.support.v4.graphics.BitmapCompat

androidx.core.graphics.BitmapCompat

android.support.v4.graphics.ColorUtils

androidx.core.graphics.ColorUtils

android.support.v4.graphics.PaintCompat

androidx.core.graphics.PaintCompat

android.support.v4.graphics.PathParser

androidx.core.graphics.PathParser

android.support.v4.math.MathUtils

androidx.core.math.MathUtils

android.support.v4.util.LruCache

androidx.collection.LruCache

android.support.v4.util.Pair

androidx.core.util.Pair

android.support.v4.util.TimeUtils

androidx.core.util.TimeUtils

android.support.v4.widget.AutoScrollHelper

androidx.core.widget.AutoScrollHelper

android.support.v4.widget.AutoSizeableTextView

androidx.core.widget.AutoSizeableTextView

android.support.v4.widget.CircleImageView

androidx.swiperefreshlayout.widget.CircleImageView

android.support.v4.widget.DrawerLayout

androidx.drawerlayout.widget.DrawerLayout

android.support.v7.app.AlertDialog

androidx.appcompat.app.AlertDialog

android.support.v7.app.AppCompatActivity

androidx.appcompat.app.AppCompatActivity

android.support.v7.app.AppCompatDialog

androidx.appcompat.app.AppCompatDialog

android.support.v7.widget.CardView

androidx.cardview.widget.CardView

android.support.v7.widget.GridLayout

androidx.gridlayout.widget.GridLayout

android.support.v7.widget.GridLayoutManager

androidx.recyclerview.widget.GridLayoutManager

AndroidX 影响

官方博客中有说道,为了给开发者一定迁移的时间,所以 28.0.0 的稳定版本还是采用 android.support,但是所有后续的功能版本都将采用 androidx。

其实目前对于我们影响也不是很大,我们可以选择不使用,毕竟不是强制的。但长远看来还是有好处的。AndroidX 重新设计了包结构,旨在鼓励库的小型化,支持库和架构组件包的名字也都简化了;而且也是减轻 Android 生态系统碎片化的有效方式。

 类似资料: