Android Jetpack简介

参考

https://developer.android.com/jetpack

https://developer.android.com/jetpack/androidx

把语言改为English可以查看androidx所有文档

https://developer.android.com/jetpack/androidx/migrate

Android Jetpack

Jetpack 是一套库、工具和指南,可帮助开发者更轻松地编写优质应用。这些组件可帮助您遵循最佳做法、让您摆脱编写样板代码的工作并简化复杂任务,以便您将精力集中放在所需的代码上。

Jetpack 包含与平台 API 解除捆绑的 androidx.* 软件包库。这意味着,它可以提供向后兼容性,且比 Android 平台的更新频率更高,以此确保您始终可以获取最新且最好的 Jetpack 组件版本。

随着Android 9.0(API级别28)的发布,有一个名为AndroidX的支持库的新版本,它是Jetpack的一部分。 AndroidX库包含现有的支持库,还包括最新的Jetpack组件。

您可以继续使用支持库。 历史工件(那些版本为27及更早版本,打包为android.support。*)将继续在Google Maven上提供。 但是,所有新的库开发都将在AndroidX库中进行。

我们建议在所有新项目中使用AndroidX库。 您还应该考虑将现有项目迁移到AndroidX。

JetpackAndroidX的关系

Jetpack是此项目的代号,AndroidX是Jetpack的包含的支持库的具体位置。

所以Jetpack和AndroidX不会特别进行区别。

当然Jetpack好像还包含其他东西,所以一般用Jetpack来代表Google此次的新项目。

AndroidX 概览

AndroidX 是 Android 团队用于在 Jetpack 中开发、测试、打包和发布库以及对其进行版本控制的开源项目。

AndroidX 对原始 Android 支持库进行了重大改进。与支持库一样,AndroidX 与 Android 操作系统分开提供,并与各个 Android 版本向后兼容。AndroidX 完全取代了支持库,不仅提供同等的功能,而且提供了新的库。此外,AndroidX 还包括以下功能:

l AndroidX 中的所有软件包都使用一致的命名空间,以字符串 androidx 开头。原support支持库软件包已映射到对应的 androidx.* 软件包。有关所有旧类到新类以及旧编译工件到新编译工件的完整映射,请参 阅迁移到 AndroidX

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

语义版本控制:MAJOR.MINOR.PATCH (主版本号.次版本号.补丁版本号)

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

使用 AndroidX

如需了解如何迁移现有项目,请参 阅迁移到 AndroidX

如果要在新项目中使用 AndroidX,则需要将compileSdkVersion设置为 Android 9.0(API 级别 28)或更高版本,并在项目根目录的 gradle.properties?文件中 将以下两个 Android Gradle 插件标记 设置为 true。

l android.useAndroidX:如果设置为 true,Android 插件会使用相应的 AndroidX 库,而非支持库。如果未指定,则该标记默认为 false。

l android.enableJetifier:如果设置为 true,Android 插件会重写其二进制文件,自动迁移现有的第三方库以使用 AndroidX。如果未指定,则该标记默认为 false。

迁移到 AndroidX

AndroidX 将原始支持库 API 替换为 androidx 命名空间中的软件包。只有软件包和 Maven artifact名称发生了变化;类、方法和字段名称没有改变。

注意:我们建议迁移时在单独的分支中工作。此外,还应设法避免在执行迁移时重构代码。

前提条件

迁移之前,请先将您的应用依赖的Android支持库 更新到最新版本:28.0.0。

这是因为,1.0.0 版本的 AndroidX 库 是与支持库 28.0.0版本 等效的二进制文件。

使用 Android Studio 迁移现有项目

使用 Android Studio 3.2 及更高版本,您只需从菜单栏中依次选择 Refactor > Migrate to AndroidX,即可将现有项目迁移到 AndroidX。

重构命令使用两个标记。默认情况下,这两个标记在 gradle.properties 文件中都设为 true:

l android.useAndroidX=true

l android.enableJetifier=true

注意:内置的 Android Studio 迁移功能可能并不是一切都能处理。根据您的编译配置,您可能需要手动更新编译脚本和 Proguard 映射。

例如,如果您在一个单独的编译文件中维护依赖项配置,请使用下面提到的映射文件来检查依赖项并将其更新为对应的 AndroidX 软件包。

To migrate an existing project that does not use any third-party libraries with dependencies that need converting, you can set the android.useAndroidX flag to true and the android.enableJetifier flag to false.

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

原支持包的映射

https://developer.android.com/jetpack/androidx/migrate/artifact-mappings

下表列出了一些常用的支持包的改变。

com.android.support:appcompat-v7


androidx.appcompat:appcompat:1.0.0


com.android.support:design


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


com.android.support:cardview-v7


androidx.cardview:cardview:1.0.0


com.android.support:multidex


androidx.multidex:multidex:2.0.0


com.android.support:support-fragment


androidx.fragment:fragment:1.0.0


com.android.support:support-v4


androidx.legacy:legacy-support-v4:1.0.0


com.android.support:recyclerview-v7


androidx.recyclerview:recyclerview:1.0.0


com.android.support:support-annotations


androidx.annotation:annotation:1.0.0


com.android.support:drawerlayout


androidx.drawerlayout:drawerlayout:1.0.0

类映射

https://developer.android.com/jetpack/androidx/migrate/class-mappings

下表列出了从旧命名空间到新 androidx 软件包的当前映射。

Android X 最新版本查看

https://developer.android.com/jetpack/androidx/versions

原文地址:https://www.cnblogs.com/muouren/p/12368128.html

时间: 2024-08-30 18:31:22

Android Jetpack简介的相关文章

Android Jetpack - 使用 Navigation 管理页面跳转

在今年的 IO 大会上,发布了一套叫 Android Jetpack 的程序库.Android Jetpack 里的组件大部分我们都接触过了,其中也有一些全新的组件,其中一个就是 Navigation. 简介 Navigation 是用来管理 APP 里页面跳转的.起初,我以为它是用来代替 startActivity 的,但其实并不是,大家往下看就知道它的作用了. 另外,iOS 的同学可能会有似曾相识的感觉,Navigation 应该是有借鉴 Storyboard 的. 使用 我们先来看看 Na

Android系统简介(上):历史渊源

上个月,看到微信的一系列文章,讲到Linux的鼻祖-李纳斯的传记<Just for Fun>, 其人神乎其能, 其人生过程非常有趣,值得每个程序员细细品味. 而实际上,对我而已,虽然做软件开发很多年,但是对Linux非常不熟悉,仅仅听过几个名词而已. 没有用过Linux? 几乎不可能,全球智能手机中80%运行的是Android系统,只要你用过Android手机,则已经间接用过了Linux了,因为他们有很深的渊源和故事.下面分3篇对Android历史.架构.原理做简述,以供大家餐食. Andro

【读书笔记-《Android游戏编程之从零开始》】1.Android 平台简介与环境搭建

简单的记录下笔记,具体可百度! Android SDK (Software Development Kit)- Android 软件开发工具包,用于辅助Android 操作系统软件开发,是开发Android 软件.文档.范例.工具的一个集合.Android NDK (Native Development Kit) - 类似 Android SDK,可用C/C++语言编写Android程序. developer.android.com - 可查阅到 Android SDK. 开发指南.API说明等

【Android应用开发】Android Studio 简介 (Android Studio Overview)

一. Intelij IDEA 环境简介 Android Studio 来源 : Android Studio 是 Intelij IDEA 的免费版本 + Android SDK 集成的; -- Intelij 文档参考 : https://www.jetbrains.com/idea/help/intellij-idea.html ; 1. Intelij 与 Eclipse 区别 (1) Intelij 与 Eclipse 对应关系 Android Studio 与 Eclipse 对应

Android - ProGuard简介

Android - ProGuard简介 本文地址: http://blog.csdn.net/caroline_wendy ProGuard is a free Java class file shrinker, optimizer, obfuscator, and preverifier. ProGuard是一个免费Java类文件的收缩器(shrinker).优化器(optimizer).模糊器(obfuscator)和预验证器(preverifier). It detects and re

【译】Android系统简介—— Activity

续上一篇,继续介绍Android系统.上一篇: [译]Android系统简介 本文主要介绍构建Android应用的一些主要概念: Activity Activity是应用程序中一个单独的有UI的页面(screen),例如:在email应用中,会有一个activity用来显示email的列表,还有activity用来显示具体的email.通常来说,只要有用户交互的应用,就会包含至少一个activity. 一个应用可以包含多个activity,每个activity之间可通过intent进行交互,关于

Android系统简介(中):系统架构

Android的系统架构栈分为4层,从上往下分别是Applications.Application framework.Libraries  & Android Runtime.Linux  Kernel.每层提供不同的Service功能以供上层调用. 一:Linux Kernel(Linux 内核): 位于Android系统架构栈的底部,整个Android系统基于该层,最新的Android Kitkat 4.4基于Linux Kernel 3.8构建的.它提供的硬件设备抽象接口,以供其他架构层

Android GridLayout简介,以计算器为例

 <Android GridLayout简介,以计算器为例> Android GridLayout默认从左往右水平布局元素.可以通过设置属性:android:orientation=,控制子元素布局的方向为水平还是垂直. GridLayout的属性 android:layout_row 和 android:layout_column 设定常数值则指定GridLayout显示的行列数. 设定 android:layout_rowSpan 或者 android:layout_columnSpa

Android系统服务-简介

http://blog.csdn.net/chenyafei617/article/details/6577907 Introduction 我们知道Android系统服务挺多的,做程序时经常会用到,要想把这么多的服务都了解透彻还真不是一两天就能搞定的,首先我们得又有一个框架,脑海里要形成这样的模型,android到底有哪些服务,针对这些服务分类去学习他们,今天发点时间把Android中的一些系统服务整理一下,大部分都是收集网络上的资料.自己也当作是一次学习机会,好了废话不多说了,请看下文: g