我已经看过Google I / O 2018的开发者主题演讲,而且我已经在Android开发者网站上阅读了jetpack主页,但我无法理解其实际情况。对我来说,它似乎只是我们已经使用的一堆API的新名称。是否会有IDE为我们做的事情或者在编码时有用的东西? Jetpack中的所有组件都指向他们原来的Android文档,并没有真正展示出与以前相比的任何差异。有人可以简单地解释一下Jetpack实际上对我作为开发人员的作用,除了在网页上添加俱乐部文档吗?
答案 0 :(得分:28)
在其官方网站上,它说:
Android Jetpack是一套库,工具和架构指南,可帮助您快速轻松地构建出色的Android应用。它提供了通用的基础架构代码,因此您可以专注于使您的应用独特的原因
从技术上讲,它是支持库,android-ktx和Android架构组件重新命名为单个模块化实体"。
这就是为什么所有非Android扩展程序库(如支持等)都会重新打包到androidx.**
。
来自Alan Viverette(来自Android Framework团队)的引用:
Jetpack是一项旨在改善开发人员体验的更大范围的工作,但AndroidX构成了技术基础。从技术角度来看,它仍然是您在支持库和架构组件下看到的相同库。
随着最佳实践的改变,您可能还会在androidx。*包中看到未包含在Jetpack中的库。
有关详细信息,请参阅https://developer.android.com/topic/libraries/support-library/refactor。
答案 1 :(得分:15)
基本上它只是一组有用的东西,在4个类别下组合和分类
粉底
架构
行为
UI
现在,相对类别中添加了一些核心内容,如 AppCompat库,架构组件,片段,动画和过渡以及更多内容,并且新增了这5件事。
<强> Android Ktx 强>
Android KTX的目的是让Kotlin更多地进行Android开发 通过利用Kotlin语言功能,简洁,愉快和惯用 作为扩展函数/属性,lambdas,命名参数和参数 默认值
<强> Navigation 强>
导航架构组件简化了实施 在Android应用中导航。这与实现明确的流程有关 你的应用。 Here在此视频中,您可以找到一个非常好的解释 这个主题。
<强> Paging 强>
分页库使您可以更轻松地逐步加载数据 优雅地在您的应用程序的RecyclerView中。来自Yigit的Here is the I/O talk 博亚,他的解释很好。
<强> Slices 强>
切片是可以显示丰富,动态和交互式内容的UI模板 来自Google搜索应用中的应用,以及之后的其他地方 Google智能助理。切片可以通过启用帮助用户更快地执行任务 全屏应用体验之外的参与。您可以将切片构建为 App Actions的增强功能。 Learn more from this talk
WorkManager [我个人建议您查看此内容]
您可以使用WorkManager优雅地安排任务.WorkManager API可以实现 易于指定可延迟的异步任务以及何时应该运行。这些 API允许您创建任务并将其交给WorkManager立即运行或运行 在适当的时候。 This Video深入解释。
我创建了一个播放列表Here。它包含所有与之相关的最佳视频 Jetpack,希望这有帮助。
答案 2 :(得分:10)
Android Jetpack是下一代Android组件,它将支持库的优势 - 向后兼容性和即时更新 - 集成到更大的组件集中,从而可以快速轻松地构建强大,高质量的应用程序。 Android Jetpack管理后台任务,导航和生命周期管理等活动,因此您可以消除样板代码并专注于使您的应用变得更好的原因。 Android Jetpack旨在与Kotlin配合使用,使用Android KTX为您节省更多代码。今天发布的新Android Jetpack组件包括WorkManager,Paging,Navigation和Slices。
Android Jetpack是一套库,开发人员工具和架构指南,可帮助您快速轻松地构建出色的Android应用程序。它提供了通用的基础架构代码,因此您可以专注于使您的应用独特的原因
答案 3 :(得分:8)
Android Jetpack是Android软件组件的集合,可帮助我们构建出色的Android应用程序。
这些软件组件可帮助:
以前有很多挑战,如下:
所有这些主要问题已由Android Jetpack的软件组件解决。
因此,解决所有问题的方法是Andriod Jetpack。
Jetpack的另一个最重要的事情是,它比Android平台的更新频率更高,因此我们始终可以获得最新版本。
Jetpack包含androidx。*软件包库,它们与平台API无关。这意味着它提供了向后兼容性。
Android Jetpack组件
Android Jetpack组件是一个库的集合,这些库可以单独采用,并且可以构建相互协作,同时利用Kotlin语言功能使我们的工作效率更高。
这些软件组件分为4类,如下所示:
我们一一看。
基金会组成部分
基础组件提供以下内容:
所有基础组件如下:
建筑组件
架构组件可帮助我们构建:
所有体系结构组件如下:
行为组件
行为组件有助于与标准的Android服务集成,例如
所有行为成分如下:
UI组件
UI组件提供了小部件和帮助程序,以使您的应用程序不仅简单易用,而且易于使用。
所有UI组件如下:
答案 4 :(得分:6)
Android Jetpack 组件
Android Jetpack 组件是一组可单独采用并构建为协同工作的库,同时利用 Kotlin 语言功能提高我们的工作效率。
这些软件组件分为以下4类:
架构组件
所有架构组件如下:
欲了解更多详情,请使用以下链接:- https://blog.mindorks.com/what-is-android-jetpack-and-why-should-we-use-it
答案 5 :(得分:2)
我们都引用官方网站,上面写着,
Android Jetpack提供了一系列未绑定的库,这些库未绑定到任何特定的Android版本,为开发人员提供了一种在较旧版本的Android操作系统上支持较新功能的方式。除了向后兼容之外,Jetpack还承诺通过提供样板来处理重复的任务,例如管理应用程序生命周期,来帮助您以更少的代码完成更多工作。
所以现在让我们将其分解为零碎,它只说了两件事
令人沮丧的“所有com.android.support库必须使用完全相同的版本规范”消息现在已经成为过去。
但是那是当您使用Androidx库而不支持库时。
还有其他原因单独包装JetPack,我们也进行讨论。
最初,每个软件包的名称都表示该软件包支持的最低API级别,例如support-v4。但是,支持库的版本26.0.0将最低API增加到14,因此今天,许多软件包名称都与最低支持的API级别无关。当support-v4和support-v7软件包的最小API均为14时,很容易看出人们为什么感到困惑!因此,现在有了AndroidX,这种困惑就消失了。
使用当前的命名约定(支持),也不清楚哪些软件包与Android操作系统捆绑在一起,哪些软件包与应用程序的APK(Android软件包套件)打包在一起。为了消除这种混乱,所有未捆绑的库都将移至AndroidX的androidx。*名称空间,而android。*包层次结构将保留给Android操作系统随附的包。简而言之,现在,android。*将被保留用于与android操作系统相关的软件包,因此这些软件包将始终以android。*开头。软件包名称WHILE androidx。*现在将被保留用于与应用程序开发相关的东西。
< / li>除此之外,您还拥有:
因此,现在,Jetpack只是这些组件,androidx和其他工具的超集的名称。
答案 6 :(得分:2)
Android Jetpack 是一组库,可帮助您应对作为 Android 开发者最终面临的挑战 - 编写样板代码、管理活动生命周期、在配置更改后幸存或防止内存泄漏。
Jetpack 库可以单独使用或组合使用,以满足您应用中的不同需求。
答案 7 :(得分:1)
Android Jetpack 是一组 Android 软件组件,可帮助我们构建出色的 Android 应用。 Android Jetpack 组件是一组库、工具,可帮助开发强大的 Android 应用程序。 Jetpack 包含 androidx.* 包库,从平台 API 中分离出来。这意味着它提供了向后兼容性。软件组件分为4类:
基础组件 - 基础组件提供向后兼容性、测试和 Kotlin 支持。
基础组件是:
架构组件有助于构建强大的应用程序。它不支持任何特定的架构模式,但建议将关注点和 UI 与模型的控制明确分离,开发人员可以借此避免与 Activity 生命周期相关的问题。< /p>
架构组件是:
Room-Room 组件充当 SQLite 对象映射库,它克服了使用 SQLite 的挑战,例如在编译时检查查询、编写样板代码。 Room 将查询直接转换为对象,在编译时检查查询中的错误,并且还能够持久化 Java POJO。子组件是:
1.实体
2.数据访问对象
3.数据库
WorkManager - 管理 Android 中可延迟的(可以稍后运行并且仍然有用)以及有保证的(即使设备重新启动也可以运行)的后台任务。 它提供向后兼容性,可以调度和链接任务,用户可以跟踪任务/状态。
LifeCycles-androidx.lifecycle 包组件执行操作以响应另一个组件(例如活动和片段)的生命周期状态的变化。这些组件可帮助您生成组织更好、通常更轻量级、更易于维护的代码。这有助于创建有组织的应用程序组件、简化组件的测试和维护、减少执行任务所需的代码。
ViewModel - 以关注生命周期的方式管理 UI 相关数据。它有助于在配置更改期间进行数据管理,减少 UI 错误和崩溃。
LiveData- Livedata 将数据中的任何适当更改通知 UI。如果观察者的生命周期状态被破坏,LiveData 能够删除它,从而避免内存泄漏。 它会删除已停止或被破坏的活动,从而减少应用崩溃的机会。
导航组件-导航组件获得了其他架构组件以及 Lifecycle 和 ViewModel 的所有优点。它有助于实现基本的导航样式,如简单的按钮点击到复杂的导航模式,如应用程序栏和导航抽屉。此外,它还支持深层链接和帮助程序,使该组件与导航抽屉和底部导航连接起来。它 通过动画可视化简化过渡,支持深度链接,处理片段事务,支持通用和复杂的导航模式
分页- 此库提供了以缓慢且谨慎的方式加载应用程序数据的工具。易于与 Recycler View 集成以显示大数据集,兼容 LiveData 和 RxJava 用于更新 UI 数据,谨慎逐步加载数据。
数据绑定- 数据绑定库是一个支持库,可提供将活动/片段中的 UI 组件绑定到应用程序数据源的功能。 通过删除活动中调用的 UI 框架,使代码更简单和易于维护。它还允许类和方法观察数据的变化,并允许使对象和填充作为可观察的集合工作。
行为组件 - 行为组件有助于与通知、权限、共享、助理等标准 Android 服务集成。
行为组件是:
UI 组件 - UI 组件提供针对 改善用户与 Android 应用程序的交互。
UI 组件是:
动画和过渡:Jetpack 提供 API 来设置可用于 Android 应用的不同类型的动画。该框架赋予 移动小部件以及在屏幕之间切换的能力 应用程序中的动画和过渡。
Auto:用于开发 Android Auto 应用的组件。可以在以下平台上构建、测试和分发以下类别的应用 Android Auto:导航应用、消息应用、媒体应用。
表情符号:在旧平台上启用更新的表情符号字体。谷歌发布了名为 EmojiCompat 的新库以处理表情符号 字符和使用可下载的字体支持。落后 此库的兼容性最高可达 Android 4.4(API 级别 19)。
Fragment:代表用户界面的一个行为或一部分,用于动态和灵活的 UI 设计(并减少样板 布局和代码)。
布局:用于创建和设计用户界面的结构。
调色板:用于设计布局主题并将自定义颜色应用于应用程序元素。
TV:用于开发 Android TV 应用的组件。
Wear:为帮助开发 Wear 应用而创建的组件。
答案 8 :(得分:0)
Android Jetpack是一组库,可简化android开发人员的生活。也可以不用jetpack来完成Android开发,但是它使您的应用程序更具模块化,对应用程序生命周期的了解和可测试性更高。
例如,工作管理器是一个Jetpack组件,用于安排任务,以便在合适的条件满足时(例如插入设备)触发该任务。可以不使用Workmanager来开发应用程序(使用Jobschedular),但是开发人员将没有更多选择。