作者 / Android 相机平台产品经理 Marwa Mabrouk
Android 相机总能为您带来诸多惊喜。而相机也是用户购买手机的首要考虑因素之一。现在,Android 相机可通过不同的工具为开发者赋能。Camera2 是自 Android 5.0 Lollipop 起便包含在 Android 中的框架 API,CameraX 是在 Camera2 之上运行的 Jetpack 支持库,可供所有 Android 开发者使用。这些互补的解决方案可满足 Android 相机生态系统的各种需求。
- Camera2
https://developer.android.google.cn/training/camera2 - CameraX
https://developer.android.google.cn/training/camerax
对于刚开始使用 Android 相机、要将应用更新到最新版本或从 Camera1 迁移应用的开发者来说,CameraX 是绝佳的入门工具!CameraX 拥有数项关键优势,不仅为开发者助力,还能改善生态系统的复杂性。
- 开发速度是 CameraX 设计背后的主要驱动力。SDK 不仅支持开发者以更快的速度启动并运行,还内置有最佳开发实践和摄影技术,可充分发挥相机性能。
- 支持的 Android 设备数量众多,类别广泛。CameraX 的目标是在各种 Android 设备上保持一致,并承担了处理各类复杂兼容性的责任,为开发者提供了在 150 多种手机型号上均可运行一致的 SDK,并向后兼容至 Android 5.0 (API 级别 21)。Google 每天都会在实验室中的各种设备上进行 CameraX 测试,以避免开发者遇到复杂性问题,同时保持产品的高质量。
- 快速库发布是 CameraX 作为 Jetpack 支持库的一种灵活性优势。CameraX 的发布可以在较短的常规周期内完成,也可以临时进行,以处理反馈并提供新功能。我们将在另一篇文章中详细阐述相关内容,敬请关注。
如果您的应用通过相机打造更专业的功能以实现对整个流程进行低阶控制,以及需要考虑设备变化,那么推荐您使用 Camera2:
https://developer.android.google.cn/training/camera2
Camera2 是一套通用 API,可在所有 Android 设备上调用摄像头硬件,已部署在全球数十亿台 Android 设备。作为框架 API,Camera2 让开发者能够运用所掌握的摄影和设备实现方面的深厚知识。为确保 Camera2 的质量,设备制造商通过测试设备来证明其合规性。基于设备制造商的选择,在 API 中确实会存在设备变体,这使得制造商能自定义功能,以便在他们认为合适的情况下利用特定设备的相关变体。
让我们一起来通过示例更深入地理解这一点。我们将比较相机捕捉能力。除了特定精细的手动设置外,Camera2 还为手机上的每个摄像头同时提供了对单独捕捉 pipeline 的特别控制。CameraX 不仅具有简单的相机手动控制功能,还可以拍摄高分辨率、高质量的照片,并提供自动白平衡、自动曝光和自动对焦功能。
您可以参考以下应用示例: Samsung 应用相机框架 API 帮助专业级相机系统适配不同的光线和环境条件,使其可以在 Samsung Galaxy 设备上拍摄达到工作室品质的照片。虽然 API 是通用的,但 Samsung 启用了每项设备功能所特有的变体,并在每台设备的相机应用中利用了这一优势。相机框架 API 使 Samsung 能够接触到底层的相机功能,并为设备定制原生应用。
另外,Microsoft 也决定将 CameraX 集成到所有使用 Microsoft Lens 的生产力应用 (即 Office、Outlook、OneDrive) 中,以确保在所有这些应用中均可使用高质量的图像。通过改用 CameraX,Microsoft Lens 团队不仅能够利用更简单的 API 改善其开发者的体验,还能够提高性能、提高开发者的工作效率并缩短产品上市时间。您可以前往官方网站,了解更多信息:
https://developer.android.google.cn/stories/apps/microsoft-camerax
对 Android 相机而言,这是非常激动人心的时刻,两种 API 均已提供了众多新功能:
- CameraX 最近推出了数项功能,其中最重要的是视频拍摄,该功能已于 1 月 26 日向开发者提供 Beta 版:
https://developer.android.google.cn/training/camerax/video-capture - 随着 Android 12 的推出,Camera2 现已具备多种可使用的功能:
https://developer.android.google.cn/about/versions/12/features#camera2-extensions
我们将持续改进,并与您分享更多我们为 Android 相机规划的新功能详情。您可以通过 CameraX 邮件列表和 AOSP 问题跟踪页与我们互动,分享您的反馈:
- CameraX 邮件列表
camerax-developers@android.com - AOSP 问题跟踪页
https://source.android.com/setup/contribute/report-bugs
感谢您一直以来对 Android 相机的关注,我们期待与您合作,一同为用户打造出色的相机体验!