CameraX 的 Beta 版本正式发布,我们向为此作出贡献的全体开发者社区成员致谢,这是我们共同努力的结果。这次的版本将为开发者呈现一个基础的相机 API,未来会一如既往地提供与兼容性有关或其他 bug 的修复程序和解决方法,助力您在多台设备上打造一致的开发者体验。
除了在自动化测试农场扩大测试范围,有很多应用也在生产环境中使用了 CameraX 库,这使得我们有信心向各位开发者推荐 CameraX,推荐大家开始尝试并将基于 CameraX 的应用发布到应用商店。我们也预想到可能会出现一些 bug,但是我们会及时处理各种问题,来帮助大家实现最佳的相机使用体验。如果您需要帮助,可以通过 Google Groups 讨论群组 或者 新建一个 issue 来向我们反馈。
本文我们会向大家简要介绍 Android Jetpack 组件中的 CameraX 库,以及 Beta 版本中的更新。Beta 版本意味着该版本的 Jetpack 库已经可以面向生产环境,但仍会有一些非关键的 bug 的存在。
请参阅 官方文档 以及 官方示例代码 以获取最新资源,并加入我们的 线上开发者社区 。
CameraX 概览
首先,让我们通过视频快速了解一下 CameraX 是什么 ,如果您已经熟悉 CameraX,那么可以跳过本节。
设备兼容性
作为 Jetpack 库,CameraX 不仅仅兼容 API level 21 及以上的 Android 设备,并且与各种硬件设备相兼容,开发者们无需关心具体的设备形态、相机配置或者设备的实现细节。
生命周期感知能力
CameraX 的一个核心属性是它 可感知生命周期 。相较于手动打开或关闭相机,我们将相机的调用交给具有生命周期的对象,当这些对象 (如 Activity、Fragment 等) 启动或者停止的时候,同时会启动或者停止相机。
CameraX 用例
Beta 版本的 CameraX 所提供的用例主要包含:
-
Preview : 用于显示一个取景器 (viewfinder),来预览当前相机所拍到的图像;
-
ImageAnalysis : 用于解析相机采集到的数据流;
-
ImageCapture : 用于拍摄高质量照片。
Beta 版本里的改变
和我们上次聊 CameraX 时相比,Beta 版本有一些新的变化,这些变化可以在 官方文档 、 官方示例代码 或者 线上开发者社区 里找到。