JetPack板块—Android X解析

作者: 谁动了我的代码 | 来源:发表于2023-02-21 16:30 被阅读0次

    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

    image

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

    image

    上文解析了Android X库的特征以及项目中使用方法;在JetPack的技术板块中还有很多核心技术;需要更进一步学习的可以点击《Android核心技术手册》这个技术文档。

    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包库是谷歌推荐在项目中使用的库包。

    相关文章

      网友评论

        本文标题:JetPack板块—Android X解析

        本文链接:https://www.haomeiwen.com/subject/vcfokdtx.html