CameraX 개요 Android Jetpack의 구성요소
CameraX는 더 쉬운 카메라 앱 개발을 위해 빌드된 Jetpack 라이브러리입니다. 새 앱을 개발할 때는 CameraX로 시작하는 것이 좋습니다. CameraX는 대부분의 Android 기기에서 작동하며 이전 버전인 Android 5.0(API 수준 21)까지 호환되는 일관되고 사용하기 쉬운 API를 제공합니다. 앱을 Camera1에서 이전하는 경우 Camera1에서 CameraX로 이전 가이드를 참고하세요.
주요 장점
CameraX는 여러 가지 방식으로 개발자 환경을 개선합니다.
광범위한 기기 호환성
CameraX는 Android 5.0(API 수준 21) 이상을 실행하는 기기(기존 Android 기기의 98% 이상)를 지원합니다.
사용 편의성
CameraX에서는 기기별 차이를 관리하는 대신 실행해야 하는 작업에만 집중할 수 있도록 지원하는 사용 사례가 도입되었습니다. 다음과 같은 대부분의 일반적인 카메라 사용 사례가 지원됩니다.
- 미리보기: 화면에서 이미지를 봅니다.
- 이미지 분석: ML Kit로 전달하는 경우와 같이 알고리즘에 사용할 수 있도록 버퍼에 원활하게 액세스합니다.
- 이미지 캡처: 이미지를 저장합니다.
- 동영상 캡처: 동영상과 오디오를 저장합니다.
기기 간 일관성
![](https://developer.android.google.cn/static/images/training/camera/camerax/testing-lab.png?authuser=3&hl=ko)
그림 2. 자동화된 CameraX Test Lab은 여러 기기 유형과 제조업체에 걸쳐 일관된 API 환경을 보장합니다.
카메라 동작을 일관되게 유지하기란 쉽지 않은 일입니다. 가로세로 비율, 방향, 회전, 미리보기 크기, 이미지 크기를 고려해야 합니다. CameraX를 사용하면 이러한 기본적인 동작이 자동으로 해결됩니다.
Google은 여러 가지 기기와 Android 5.0 이후의 모든 운영체제 버전에서 다양한 카메라 동작을 테스트하는 자동화된 CameraX Test Lab을 운영하고 있습니다. 이러한 테스트는 지속적으로 실행되며 광범위한 문제를 식별하여 해결합니다.
카메라 확장 프로그램
![](https://developer.android.google.cn/static/images/training/camera/camerax/portrait-mode.png?authuser=3&hl=ko)
그림 3. CameraX를 사용하여 빛망울 효과(세로 모드)로 캡처한 이미지.
CameraX에는 적게는 단 두 줄의 코드로 기기의 기본 카메라 앱과 동일한 기능에 액세스할 수 있게 해 주는 선택적 Extensions API가 있습니다.
확장 프로그램으로는 빛망울 효과(세로 모드), HDR(High Dynamic Range), 야간 모드, 얼굴 보정 등이 있습니다(모두 기기 지원이 필요함).
우수사례
Monzo가 CameraX를 활용해 개발을 간소화한 방법을 알아보려면 우수사례를 참고하세요.
문서
추가 리소스
CameraX에 관해 자세히 알아보려면 다음 추가 리소스를 참고하세요.
Codelab
코드 샘플