CameraX 개요

CameraX는 카메라 앱 개발을 더 쉽게 할 수 있도록 만들어진 Jetpack 지원 라이브러리입니다. 대부분의 Android 기기에서 작동하는 일관성 있고 사용하기 쉬운 API 노출 영역을 제공하며 Android 5.0(API 레벨 21)까지 호환됩니다.

CameraX는 camera2의 기능을 활용하면서 수명 주기를 인식하는 더 단순한 사용 사례 기반의 방식을 사용합니다. 또한 기기 기능 문제를 해결해 주므로 코드베이스에 기기별 코드를 포함하지 않아도 됩니다. 이 기능을 사용하면 앱에 카메라 기능을 추가할 때 작성해야 하는 코드의 양이 줄어듭니다.

마지막으로 CameraX를 사용할 경우 개발자는 최소 두 줄의 코드만으로 사전 설치된 카메라 앱이 제공하는 것과 동일한 카메라 환경과 기능을 활용할 수 있습니다. CameraX 확장 프로그램지원되는 기기의 애플리케이션 내에서 인물 사진, HDR, 야간, 뷰티와 같은 효과를 추가할 수 있게 해 주는 선택적 부가기능입니다.

CameraX 라이브러리는 알파 단계이며, API 표면이 완성되지 않았습니다. 프로덕션에서는 알파 라이브러리를 사용하지 않는 것이 좋습니다. API 표면이 소스 및 바이너리에서 호환되지 않는 방식으로 변경될 수 있으므로 라이브러리는 프로덕션에서 알파 라이브러리에 의존하지 않아야 합니다.

주요 장점

CameraX는 다음과 같은 방식으로 개발자 환경을 개선합니다.

사용 편의성

호환성에 중점을 두는 CameraX

그림 1. CameraX는 5.0(API 레벨 21) 이상을 타겟팅하며 대부분의 Android 기기에서 지원됩니다.

CameraX는 수행해야 하는 작업에만 집중할 수 있도록 사용 사례를 도입하여 기기별 차이를 관리하는 데 시간을 낭비할 필요가 없습니다. 다음은 몇 가지 기본적인 사용 사례입니다.

  • 미리보기: 디스플레이에 이미지를 가져옵니다.
  • 이미지 분석: MLKit로 전달하는 등의 알고리즘에 사용할 수 있도록 버퍼에 원활하게 액세스합니다.
  • 이미지 캡처: 고화질 이미지를 저장합니다.

이러한 사용 사례는 Android 5.0(API 레벨 21) 이상을 실행하는 모든 기기에서 작동하며, 출시된 대부분의 기기에 동일한 코드를 사용할 수 있습니다.

기기 간 일관성

그림 2. 자동화된 CameraX Test Lab은 여러 기기 유형과 제조업체에 걸쳐 일관된 API 환경을 보장합니다.

여러 앱에 걸쳐 일관된 카메라 동작을 관리하는 것은 어려운 일입니다. 가로세로 비율, 방향, 회전, 미리보기 크기, 고해상도 이미지 크기를 포함하여 많은 것을 고려해야 합니다. CameraX를 사용하면 이러한 기본적인 동작이 자동으로 해결됩니다.

Google은 여러 가지 기기와 Android 5.0(API 레벨 21) 이후의 모든 운영체제에서 다양한 카메라 동작을 테스트하는 자동화된 CameraX Test Lab에 투자하고 있습니다. 이러한 테스트는 정기적으로 실행되며 광범위한 문제를 식별하고 수정합니다.

시간이 지남에 따라 테스트 부담을 크게 줄여가는 것이 목표입니다.

새로운 카메라 환경

그림 3. CameraX는 인물 사진 효과와 같은 새로운 인앱 환경을 제공합니다. CameraX를 사용하는 Huawei Mate 20 Pro에서 캡처한 이미지.

CameraX에는 코드 두 줄만으로 기기에 기본 설치되어 있는 네이티브 카메라 앱과 동일한 기능에 액세스할 수 있게 해 주는 확장 프로그램이라는 선택적 부가기능이 있습니다.

사용할 수 있는 첫 번째 기능 세트에는 인물 사진, HDR, 야간 및 뷰티가 포함되어 있습니다. 이러한 기능은 지원되는 기기에서 이용할 수 있습니다.

참고 자료

CameraX를 자세히 알아보려면 다음 추가 자료를 참조하세요.

Codelab

  • CameraX 시작하기
  • 앱에 CameraView 프래그먼트 추가하기
  • 코드 샘플

  • 공식 CameraX 샘플 앱