当前位置: 首页 > news >正文

JetPack板块—Android X解析

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

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

上文解析了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包库是谷歌推荐在项目中使用的库包。
http://www.lryc.cn/news/16609.html

相关文章:

  • C++学习笔记-数字
  • Nginx——Nginx的基础原理
  • 服务端开发Java之备战秋招面试篇1
  • 【C++的OpenCV】第三课-OpenCV图像加载和显示
  • 【面试1v1实景模拟】Spring事务 一文到底
  • Neuron Selectivity Transfer 原理与代码解析
  • vue项目关闭子页面,并更新父页面的数据
  • 第五次作业:修改redis的配置文件使得windows的图形界面客户端可以连接redis服务器
  • 【11】FreeRTOS的延时函数
  • Vue页面组成及常用属性
  • j6-IO流泛型集合多线程注解反射Socket
  • 创业能否成功?这几个因素很重要!
  • Bmp图片格式介绍
  • Day4 leetcode
  • Java设计模式-原型模式
  • 2023年度最新且最详细Ubuntu的安装教程
  • unix高级编程-fork之后父子进程共享文件
  • vue+echarts:柱状图横向展示和竖向展示
  • SealOS 一键安装 K8S
  • python网络编程详解
  • ICRA 2023 | 首个联合暗光增强和深度估计的自监督方法STEPS
  • 基于react+nodejs+mysql开发用户中心,用于项管理加入的项目的用户认证
  • mapreduce与yarn
  • 鲲鹏云服务器上使用 traceroute 命令跟踪路由
  • 代码随想录算法训练营第47天 || 198.打家劫舍 || 213.打家劫舍II || 337.打家劫舍III
  • JVM调优方式
  • 机器学习模型监控的 9 个技巧
  • Linux 实现鼠标侧边键实现代码与网页的前进、后退
  • 健身蓝牙耳机推荐,推荐五款适合健身的蓝牙耳机
  • Type-c诱骗取电芯片大全