개요
Android Jetpack에 속해있는 CameraX는 카메라 기능을 적용하는데 작업 비용을 줄이고, 더 쉽게 접근할 수 있도록 고안되었다.
대부분의 안드로이드 기기에서 동작하도록 일관성 있고 사용하기 쉬운 API들을 제공한다.
(안드로이드 5.0 즉, API level 21까지 호환된다.)
CameraX는 Camera2의 기능을 활용하지만, LifeCycle를 인식하여 리소스를 보다 효율적이고 쉽게 관리할 수 있다.
마지막으로, 카메라X는 개발자들이 두 줄의 코드만으로 미리 설치된 카메라 앱이 제공하는 것과 동일한 카메라 기능을 활용할 수 있게 해 준다.
CameraX Extensions는 지원되는 장치에 한하여 효과를 추가할 수 있는 선택적 추가 기능(Bokeh(Portrait), HDR, Night, Face Retouch)을 제공한다.
CameraX의 장점
- 다양한 기기 지원
위에서 말한 내용과 같이 CameraX는 Android 5.0부터 사용할 수 있도록 고안되었기 때문에 시중에 존재하는 94%가량의 기기들을 지원한다. - 기기 일관성
기존에는 여러 앱에서 일관성 있는 카메라 동작을 관리하기 어려웠다.
가로 세로 비율, 방향, 회전, 미리 보기 크기, 고해상도 이미지 크기 등 고려해야 할 사항이 많았기 때문이지만 CameraX에서는 이러한 기본적인 동작이 획일화된다. - 새로운 카메라 기능
CameraX에는 Extensions라는 선택적 추가 기능이 있는데,
이 기능을 사용하면 두 줄의 코드만으로 장치와 함께 제공되는 네이티브 카메라 앱에 있는 기능과 동일한 기능에 액세스 할 수 있다.
지원되는 확장 기능에는 보케(Portrait), HDR, 나이트 및 페이스 리터치가 포함된다.
단, 이러한 기능은 지원되는 장치에서만 사용할 수 있다. 쉬운 사용
CameraX는 기기별 차이를 해결하고 관리하는 데 시간을 소비하는 대신 수행해야 하는 작업에 집중할 수 있도록 use case를 제공한다.
다음과 같은 기능이 지원되며 지속적으로 업데이트될 예정이다.- Preview : 카메라 미리 보기
- Image analysis : 이미지 분석을 위한 알고리즘에 사용하기 위해 버퍼에 액세스(MLKit으로 전달)
- Image capture : 고화질 이미지 저장
- Video capture : 비디오와 오디오 캡처
샘플 코드
https://github.com/android/camera-samples
GitHub - android/camera-samples: Multiple samples showing the best practices in camera APIs on Android.
Multiple samples showing the best practices in camera APIs on Android. - GitHub - android/camera-samples: Multiple samples showing the best practices in camera APIs on Android.
github.com
출처
https://developer.android.com/jetpack/androidx/releases/camera
CameraX | Android 개발자 | Android Developers
CameraX CameraX가 Jetpack에 추가되어 앱에 카메라 기능을 더 쉽게 추가할 수 있습니다. 라이브러리는 다양한 호환성 수정사항과 해결 방법을 제공하여 많은 기기에서 개발자 환경을 일관되게 유지하
developer.android.com
'Android' 카테고리의 다른 글
[Android] Shape에 margin 속성 추가하기 (0) | 2022.04.05 |
---|---|
[Android] 디바이스 화면 해상도 구하기 (0) | 2022.03.28 |
[Android] JitPack 안드로이드 라이브러리 모듈 배포하기 (0) | 2021.12.30 |
[Android] 안드로이드 스튜디오 GradleView Tasks 미노출시 (0) | 2021.12.28 |
[Android] Gradient 배경 만들기 (0) | 2021.12.27 |