Android Jetpack简述

AndroidX 是Android团队用于在Jetpack中开发,测验,打包,发布和版别办理的开源项目。比较于本来的Android Support库,AndroidX 可以称得上是一次严重的晋级改善。

和Support库相同,AndroidX与Android 操作系统独立分隔,而且供应跨Android版其他向后兼容。AndroidX供应功用奇偶性校验,以及一些新的开发库,可以完全替代Support库。

Android X 特性

  • AndroidX里全部的包名都保持一致,运用以androidx开始的命名空间。Support Library都对应着运用androidx.*的包名。
  • 和Support Library不同,AndroidX的包是独立维护和更新的。运用的是严峻的Semantic 版别命名规范。可以在项目里进行独立更新。
  • 全部新的Support Library开发都将转移到AndroidX类库中。包括原始的Support Library维护以及新的Jetpack组件的引入。

support库解析

support库可以看作是三方库,仅仅它是由google官方发布的,这部分内容是在发布android sdk时没有考虑到(未包括),之后又想在低版别android设备上运用的内容(依据低版别sdk完成),所以google在供应了一个新的api时会以support的方式供应,我们就可以像运用三方库相同依托运用

implementation 'com.android.support:appcompat-v7:27.1.0'
implementation 'com.android.support:recyclerview-v7:27.1.0'
implementation 'com.android.support:design:27.1.0'

这样会导致许多问题,比如全部com.android.support库有必要运用完全相同的版别规范,混合版别或许导致运行时溃散,这为项目办理带来许多应战。

现在许多官方组件库都搬家到了AndroidX,一些三方开源库也在积极响应,所以Android Jetpack是今后Android开发的一个趋势,假设公司现有项目还没有搬家到AndroidX,应该赶快搬家,而新开发的项目更应该依据AndroidX。

项目运用android x库

假设要在新项目中运用命名空间为 androidx 的库,依照如下步骤:

  • 将编译SDK compileSdkVersion设置为Android9.0(API等级28)或更高版别
  • 在gradle.properties文件中将以下两个Android Gradle插件标记设置为true
Android 插件会运用对应的 AndroidX 库,而非支撑库。默认为 false。
​
android.useAndroidX=true
​
Android 插件会通过重写其二进制文件来主动搬家现有的第三方库,以运用 AndroidX 依托项。默认为 false。
​
android.enableJetifier=true

依托AndroidX相关库,参阅AndroidX相关库版别

root build.gradle
allprojects {
    repositories {
        google()   //增加 google() 代码库
        jcenter()
    }
}
​
app build.gradle
implementation 'androidx.appcompat:appcompat:1.0.2'

Jetpack库和Support库的内容都被集合在AndroidX中了,可是每个库仍是独自维护的,我们可以选择性运用其间某些库

搬家老项目到 AndroidX

假设从 Android Support Library 搬家到 AndroidX 是不需求手动改包名的,Android Studio 供应了一个一键搬家的功用。步骤如下:

项目名右键 –> Refactor –> Migrate to AndroidX

JetPack板块—Android X解析

然后在弹出的窗口中点击 Migrate,Android Studio 就会主动检测你项目中全部运用 Android Support Libraray 的当地,并将它们悉数改成 AndroidX 中对应的库。而且 Android Studio 还会将本来的项目主动备份一份 zip 文件,这样即使搬家之后代码出了问题,还可以找回之前的代码。

JetPack板块—Android X解析

上文解析了Android X库的特征以及项目中运用办法;在JetPack的技术板块中还有许多中心技术;需求更进一步学习的可以点击传送直达↓↓↓ :www.6hu.cc/go//?target=htt…这个技术文档。

AndroidX和Android支撑库的区别

安卓支撑库 AndroidX包库
编写依托联系的语法: com.android.support:recyclerview-v7 编写依托联系的语法: androidx.recyclerview:recyclerview
在项目中运用支撑库时,有必要为全部支撑库保持相同的版别。 开发者可以自由地对不同的android组件运用不同版其他依托。
为了在应用程序中运用安卓组件,需求增加的依托性包括其他各种没有用的东西。 开发者只允许增加那些他们将在应用程序中运用的依托性。
支撑库的包被绑缚在安卓操作系统中。例如: android.content.Intent 未绑缚的库被移到 androidx.* 命名空间,并与应用程序的APK打包。例如: androidx.fragment.app.Fragment
包的称号包括最小支撑的API等级。 该包对API等级没有依托性。
全部的依托都需求在运用前更新,由于全部的支撑库都需求有完全相同的版别规格。 AndroidX库可以独自更新。因而,开发者可以只更新项目中需求的那些库。
谷歌现已中止了对 com.android.support 库的支撑。 AndroidX包库是谷歌推荐在项目中运用的库包。