摄像头功能开发不再复杂,CameraX 助您轻松打造光影体验

4,589 阅读4分钟

人们的生活正在被更及时、更多彩地记录与分享,智能手机的摄像头甚至能帮助用户深入解读他们眼前的世界,为他们实时提供翻译等帮助。但您也许不知道,超过 70% 的摄像头使用来自各位开发者们开发的应用,而不是系统原生的摄像头功能。用户们需要更加个性、更具有扩展性的体验,但这也意味着开发者们需要付出极大的心力测试与打磨摄像头功能。

去年在中国 GDD (谷歌开发者日) 上我们和很多摄像头应用开发者了解他们的测试工作量,得知为了确保兼容性、响应速度等体验细节,他们甚至会手动在数百种不同设备上进行测试。

CameraX 正是为解决这个痛点而来。它是 Jetpack 内的一套摄像头开发支持库,旨在帮助开发者轻松打造高品质的摄像头体验。其核心功能包括:

  • 简单易用的生命周期感知 (lifecycle-aware) API,且相比较 camera2 减少了大量模板代码的使用
  • 兼容至 Android L (API 21),从而确保同样的代码能在市面上 90% 的设备中运行
  • 在支持的设备上,可以让开发者通过扩展的形式使用和原生摄像头应用同样的功能 (包括人像、夜间模式,HDR 以及美颜滤镜)

但想要确保如此广泛的设备覆盖面并非易事,于是我们打造了自动化的 CameraX 测试实验室,在其中对摄像头功能进行深度测试。另外还使用了 Mobile Harness 对通用摄像头功能进行测试。

  • 深度测试包含 50 个 OEM 厂商设备,覆盖约 2 亿日活设备
  • 在 Mobile Harness 上测试超过 500 种设备,包括 NBU/Android Go 设备。(NBU = Next Billion Users)

△ CameraX 测试实验室包含 50 个 OEM 厂商设备,覆盖约 2 亿日活设备,自动化执行摄像头功能深度测试
对开发者来说,简单易用的 API、更少的模板代码和强大的兼容性,意味着更高的开发和测试效率。而丰富的扩展性则意味着开发者可以为用户们带来更多基于摄像头的精彩体验。我们之前介绍过的 Camera360 开发团队就已经抢先体验过 CameraX 带来的强大与便捷:

我们密切关注着最新的技术和 API 进展,CameraX 是我们获取摄像头 API 的桥梁,让我们的核心摄像头代码行数减少了三分之二,极大地提升了新产品研发的效率。 —— 李涛,成都品果科技技术总监

△ 在 I/O'19 上用 Camera360 现场演示 CameraX 核心功能

我们看到,Camera360 在一台运行着 Android 6.0 Marshmallow 的设备上即可流畅运行,而且使用到了 CameraX 的三个核心场景: 实时预览、图像分析与拍照。而在开发中,Camera360 也得以减少在设备上的测试量,并且相比较使用 Camera2 时代码行数大幅减少 (约 70%),这也让 Camera360 的 APK 尺寸得以减小。 —— Vinit Modi, Product Manager, Android Camera Platform Team

今年的 I/O 开发者大会上,Vinit Modi 也单独用了一整场演讲来详细介绍 CameraX,有兴趣的朋友可以观看完整视频:

Android Jetpack:了解摄像头支持库 CameraX

觉得视频太长的话,我们也综合 CameraX 的诞生历程为您整理了一份摘要:

  • CameraX 基于 20 多个开发团队提供的痛点和需求进行开发。在该支持库诞生之初就已经有数个 Android 顶级开发团队 (包括 Snapchat, Twitter 以及 TikTok 等) 表示会在自己的应用中使用。
  • 相比较 iOS,CameraX 有几个 “第一”:
    • 第一个实现静态 HDR 照片拍摄 (在 iOS 上,开发者需要自行生成 HDR 图片)
    • 第一个实现夜间模式下的静态照片拍摄

△ 通过 CameraX,Android 开发现在就可以轻松实现夜间拍照功能。图中使用设备是三星 S10+

  • 在针对入门设备开发的 Google Go 中,其摄像头功能也使用了 CameraX,用来识别摄像头中的文字等内容。在开发速度、兼容性表现优异的同时,APK 的尺寸也十分小巧 (摄像头部分小于 30KB)。

  • 三星也已经在三月份宣布不再支持其私有摄像头 SDK,转而使用 CameraX。(甚至已经在 AOSP 中贡献了代码!)
  • 在 I/O 大会的现场就有 4 个 CameraX 的演示体验,提前感受到其魅力的开发者们纷纷给出好评。

△ YouCam Perfect 支持人像模式和 HDR
更便捷迅速的开发,更广泛的兼容性,以及高度可扩展的强大功能,我们希望开发者们亲自体验 CameraX,并在其中融入自己的创意与技术,为用户们带来更多彩的影像体验。

点击这里查看更多开发者成功案例