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 生态系统碎片化的有效方式。

android androidx版本,Android AndroidX 简介与迁移相关推荐

  1. android开发版本,Android开发之版本统一规范

    Android开发存在着众多版本的不同,比如compileSdkVersion.minSdkVersion.targetSdkVersion以及项目中依赖第三方库的版本,不同的module及不同的开发 ...

  2. 如何获得android系统版本,Android如何获得系统版本

    Android如何获得系统版本 如何获得Android系统版本 项目移植中,遇到需要区分不同系统版本的问题.于是查找相关方法如下: android.os.Build类提供了当前系统信息. 可用if ( ...

  3. android 根据版本,Android – 根据构建类型更改flavor版本名称

    我想更改应用程序口味的版本名称,但只有当它是一个调试版本. (例如,调试版本将具有1.0.1 D(DEBUG)555或1.0.1 P(DEBUG)555等版本,但是我希望版本的版本只有1.0.1版本) ...

  4. android firefox 版本,Android版本Firefox初期预览版发布

    不久前Mozilla宣布不再为Windows Mobile开发手机版Firefox,而将大部分精力投入到Android版本的开发商.今天Android版本Firefox终于完成了初期预览版,Andro ...

  5. 怎么升级Android Studio版本,Android Studio更新的四种版本介绍

    Android Studio在更新版本时,会有让选择升级源,如下: 默认情况下选择的是Stable Channel 这几个Channel的版本是有一些差异的: 在Android Studio下载官网上 ...

  6. android opengl版本,Android OpenGL ES(一)开发入门

    早就听过大名鼎鼎的 OpenGL,却迟迟没有实践学习,有些惭愧.今天开始通过实践+博文方式学习掌握 OpenGL.此文对于 OpenGL 的学习分为以下部分: OpenGL 基础概念 OpenGL 坐 ...

  7. 怎样安装android系统版本,Android 12公测版Beta 1现已推出,教你如何安装

    新酷产品第一时间免费试玩,还有众多优质达人分享独到生活经验,快来新浪众测,体验各领域最前沿.最有趣.最好玩的产品吧~!下载客户端还能获得专享福利哦! 谷歌在 I/O 2021 开幕式的主题演讲中发布了 ...

  8. android glide 版本,Android Studio 第六十七期 - Android Glide3.7.0和3.8.0用法

    一.前言:再优秀的开源库都有坑要填 手上的项目使用的图片加载框架是:Universal-Image-Loader+业务需要定制化的一些代码.Universal-Image-Loader 这个框架是一个 ...

  9. Android各个版本特性简介

    俗话说,磨刀不误砍柴工.没错,今天就来聊点砍柴的事.由于Android系统更新速度快,导致市面上的Android系统版本不一(专业术语叫碎片化严重).而作为程序开发者,必须尽量照顾到各种版本的系统,s ...

最新文章

  1. python怎么学最快-浅谈:从为什么学习python到如何学好python
  2. 预训练模型:BERT深度解析《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》
  3. 推荐系统CTR预估学习路线:引入注意力机制
  4. 推荐给开发和设计人员的iPad应用
  5. HDLBits答案(16)_Verilog有限状态机(3)
  6. friso mysql_非sqlite和nigix的开源c项目
  7. 质量审查一体化智能平台 搭建总览图
  8. 深度学习-数学-第一篇-标量,向量,矩阵,张量
  9. linux搭建yum源
  10. wangEditor 全屏 预览 查看源码
  11. 脏读,幻读,不可重复读的区别
  12. Linux下yum命令及软件的安装
  13. tree 树 搜索关键字
  14. 博科交java插件_博科光纤交换机配置
  15. Ubuntu下配置源地址/本地源/官方源
  16. android棒棒糖,Android L正式定名Lollipop(棒棒糖)
  17. 最新智商测试html5,2017年最新智商测试题
  18. 医院管理系统数据库设计
  19. 辉芒微IO单片机FT60F11F-MRB
  20. 渗透测试之信息收集 -tryhackme-Content Discovery

热门文章

  1. 通过图形界面配置Exchange2010 DAG
  2. 2018-01-02 JavaScript实现ZLOGO: 用语法树实现多层循环...
  3. js实现禁止右键 禁止f12 查看源代码
  4. JavaScript七种非常经典的创建对象方式
  5. 生产者,消费者,CDN
  6. Linux命令之乐--expr
  7. TCP的三次握手,四次断开
  8. CodeSign error: code signing is required for product type Application in SDK iOS XXX的解决办法
  9. MY_SQLCode
  10. CMake一次失败应用