谷歌为Android Jetpack增加了10个库 推出了用于UI开发的Kotlin工具包
在其I / O 2019开发者大会上,Google宣布推出10款适用于Android Jetpack的新库,其组件,工具和指南旨在加速应用程序开发。该公司还推出了新的非捆绑式Kotlin工具包Jetpack Compose。
将Android Jetpack视为支持库的继承者,支持库是一组组件,可以更轻松地利用新的Android功能,同时保持向后兼容性。当谷歌去年在I / O 2018上推出Jetpack时,Android产品经理Stephanie Cuthbertson将其描述为“旨在加速应用程序开发的下一代Android API”。
去年,谷歌表示支持图书馆被Play商店中99%的所有应用程序使用。今天,Cuthbertson透露Play商店中前1000名应用程序中有80%使用Jetpack。
10个新的Android Jetpack库
3月,谷歌宣布推出Jetpack WorkManager(后台处理)和Jetpack导航(应用内导航)的稳定版本。该公司今天宣布的10个新图书馆已经准备好投入生产,即使它们还没有完成。
其中七个库是alpha:
CameraX:在您的应用程序中创建相机驱动的体验,而不必担心底层设备行为或向后兼容性。此API向后兼容Android 5.0(API 21)或更高版本,确保相同的代码适用于市场上的大多数设备。它利用了camera2的功能,但使用了一种更简单,基于用例的方法,可以识别生命周期。与camera2相比,这消除了重要的样板代码。它还使您能够在支持的设备上访问与本机相机应用程序相同的功能。此外,可选扩展功能还支持Portrait,Night,HDR和Beauty等功能。
带有协同程序的LiveData和生命周期:生命周期和LiveData KTX支持常见的一次性异步操作,因此您可以使用具有生命周期意识的Kotlin协同程序。提供与生命周期相关的协同作用域,具有生命周期意识的协同调度程序,以及使用新的LiveData构建器支持简单的异步链,使您可以安全地使用Kotlin协同程序。
基准测试:对应用程序代码进行基准测试的快速方法,无论是用Kotlin,Java还是本机代码编写的。确保您不会在Android Studio的开发环境中向代码中引入任何延迟。轻松测量数据库查询,查看通胀或RecyclerView滚动。该库负责提供可靠和一致的结果,例如处理预热期,删除异常值和锁定CPU时钟。
安全性:通过让此库为您实施安全性最佳实践,最大限度地提高应用程序静态数据的安全性。它提供了强大的安全性,可以平衡加密与银行和聊天等消费者应用的性能。它还为需要具有用户存在的硬件支持的密钥库的应用程序提供最高级别的安全性,并简化了许多操作,包括密钥生成和验证。
具有SavedState的ViewModel:ViewModel提供了一种在配置更改时保存UI数据的简便方法,但在进程死亡时不保存您的应用程序状态。使用SavedState的ViewModel可以消除样板代码。通过简单的API将ViewModel和SavedState一起使用,可以直接从ViewModel保存和检索数据。
ViewPager2:ViewPager现在基于RecyclerView,支持垂直滚动和RTL(从右到左)布局。它还提供了一种更简单的方式来监听页面数据的变化registerOnPageChangeCallback。
其余三个图书馆处于测试阶段:
生物识别技术提示:为用户提供一致且安全的方式,通过生物识别登录输入他们的凭证。该库提供简单的系统提示,为用户提供值得信赖的体验。
企业:您的托管企业应用程序可以以关键应用程序状态的形式将反馈发送回企业移动管理提供程序。此外,您还可以利用与托管配置的向后兼容性。
适用于汽车的Android:为您的用户提供应用的驱动程序优化版本,该版本将自动安装在配备Android Automotive的车辆的车辆信息娱乐系统中。此操作系统还可让您的应用与Android Auto应用配合使用。
Google表示这些API是根据Android开发人员的反馈形成的。该公司特别注意到其在Reddit,Stack Overflow和Slack上的早期访问开发人员计划,用户研究和社区。
Jetpack撰写
Google今天也开放了Jetpack Compose的早期预览版。新的非捆绑工具包旨在通过将反应式编程模型与Kotlin相结合来简化UI开发。
不要在任何生产项目上尝试Jetpack Compose - 工具包还没有准备好。“它甚至不是阿尔法,”Android首席倡导者切特·哈斯告诉VentureBeat。但谷歌将从今天开始开发Jetpack Compose,希望让开发者分享他们的想法。
Android集团产品经理Karen Ng领导了Jetpack Compose的工作。她告诉VentureBeat,她的团队希望解决主要的开发人员痛点,而UI是Jetpack还没有解决的问题。
“Jetpack Compose具有Kotlin的所有优点,”Ng解释道。“所以它完全可以与Java互操作。它完全是声明性的,用于定义UI组件,包括绘图和自定义布局,这不是很常见。因此,这意味着您可以将UI描述为一组功能。然后框架本身处理所有UI优化,并自动更新视图层次结构,而不是让应用程序开发人员自己维护。它与所有现有视图兼容。因此,您可以将我们当前的视图与我们称之为可组合视图的视图混合搭配。然后它从一开始就用Material和动画设计。“
Google认为开发人员喜欢反应性API并喜欢Kotlin,因此认为Jetpack Compose是合理的。因此,该公司正在投资于声明性编程的被动方法,并创建了一种使用Kotlin构建UI的方法。该团队正在构建Jetpack Compose,其中包含一些核心原则:
构建Kotlin带来的好处 - 简洁,安全,并与Java编程语言完全互操作。旨在大幅减少您必须编写的样板代码量,以便您可以专注于您的应用程序代码,并帮助避免整个类错误。
完全声明用于定义UI组件,包括绘制和创建自定义布局。只需将UI描述为一组可组合函数,框架就可以处理UI优化和更新视图层次结构。
提供可重用的构建块,使您可以更轻松地构建自定义小部件,而无需从头开始。
与现有视图兼容,因此您可以按照自己的进度混合搭配并采用直接访问所有Android和Jetpack API。
Material Design开箱即用的动态设计和动画,因此很容易创建充满动感的漂亮应用程序。
使用实时预览等工具加速开发并应用更改。
Jetpack Compose应用程序由可组合函数组成,可将应用程序数据转换为UI层次结构。要创建可组合函数,只需将@Composable注释添加到函数名称即可。Jetpack Compose在底层使用自定义Kotlin编译器插件 - 当底层数据发生更改时,可以重新调用可组合函数以生成更新的UI层次结构。
以下代码将字符串输出到屏幕。
import androidx.compose.*
import androidx.ui.core.*
@Composable
fun Greeting(name:String){
Text(“Hello $ name!”)
}
与Android Jetpack本身一样,Compose由您可以按照自己的进度采用并与现有视图兼容的各个组件组成。Google要求开发人员提供反馈并在AOSP上提交错误消息。