Google의 CameraX 공급업체 확장 API를 사용하면 타사 카메라 앱에서 기본 카메라 앱의 최고의 기능 중 일부를 사용할 수 있습니다.
인터넷에는 누군가가 안드로이드 휴대폰을 사용하고 있는지를 눈으로 보면 알 수 있다는 오래된 농담이 있습니다. 셀카 품질이 좋지 않음. 밈은 분명히 꽤 과장되어 있지만 불행히도 그 뒤에는 약간의 진실이 있습니다. 안드로이드 폰은 적어도 서류상으로는 카메라 성능 측면에서 일반적으로 아이폰보다 앞서 있었습니다. LG 및 삼성과 같은 OEM은 경쟁 iPhone보다 더 많은 픽셀과 더 큰 조리개를 가진 카메라를 사용하는 경향이 있습니다. 하지만 스펙이 전부는 아닙니다. Apple이 카메라 게임에서 경쟁할 수 있는 이유 중 하나는 iOS의 소프트웨어 때문입니다. Apple에서 ZTE에 이르기까지 모든 OEM은 소프트웨어 마법을 사용하여 사진과 비디오를 더 멋지게 만듭니다. 회사에서는 알고리즘을 사용하여 노이즈를 줄이고, 색상 채도와 대비를 조정하고, 심지어 어두운 장면을 밝게 하는 등 최종 결과를 더욱 즐겁게 만듭니다. 역사적으로 Android OEM이 Apple에 미치지 못하는 부분이 바로 이 부분입니다.
소프트웨어 개발
하지만 최근에는 상황이 바뀌기 시작했습니다. 이러한 변화의 가장 큰 예는 아마도 Google과 Pixel 라인업일 것입니다. 하드웨어 측면에서 Pixel 카메라는 실제로 다른 플래그십과 비교할 수 없습니다. 하지만 소프트웨어는 Google이 차이를 만들어내는 부분입니다. 인물 사진 모드, 야간 시력, HDR+ 및 Super Res Zoom과 같은 기능을 갖춘 Pixels는 다음과 같은 기능을 갖춘 것으로 명성을 얻었습니다. 시중에서 판매되는 최고의 스마트폰 카메라.
다른 Android OEM도 Google의 뒤를 따르고 있습니다. Samsung, OPPO, Xiaomi, Vivo, OnePlus 등은 모두 Pixel의 더 인기 있는 카메라 기능의 자체 버전을 도입했으며 고유한 기능도 있습니다. Android OEM은 "AI" 및 "머신 러닝"과 같은 전문 용어를 사용하여 자신의 소프트웨어가 사용자가 사진과 비디오를 향상시키려는 소프트웨어임을 확신시키려고 노력하고 있습니다. 우리는 안드로이드 휴대폰이 카메라 성능의 모든 측면에서 아이폰과 진정으로 경쟁할 수 있는 지점에 도달했습니다.
문제
안타깝게도 여전히 한 가지 주요 예외가 있습니다. 바로 타사 앱입니다. 당신의 슈퍼 50개 카메라 플래그십은 내장된 카메라 앱으로 놀라운 사진을 찍을 수 있지만, 인스타그램으로 전환하세요. Snapchat 또는 타사 카메라 앱을 사용하면 기본적으로 캡처한 내용이 실제와 거의 같지 않음을 보장합니다. 좋은. 그것만으로는 충분하지 않은 것처럼 멋진 카메라 기능과 모드도 모두 잃게 됩니다. 이는 iOS와 달리 Android에는 실제로 통합된 카메라 프레임워크가 없기 때문입니다. 물론 기본적인 기능은 있습니다. 타사 앱에서는 여전히 사진과 동영상을 촬영하고 플래시를 사용할 수 있습니다. 하지만 휴대폰에 광각 또는 망원용 보조 센서가 있으면 어떻게 될까요? 개발자가 두 번째 센서에 액세스할 수 있지만 사용하는 방법은 장치에 따라 달라야 합니다.
당신이 LG V40을 가지고 있다고 가정해보자. V40에는 표준, 망원, 초광각의 세 가지 센서가 있습니다. 내장된 카메라 앱은 이러한 다양한 센서 사이를 전환하는 데 아무런 문제가 없습니다. 하지만 인스타그램에서 울트라와이드 센서를 사용하는 것은 잊어버리세요. 이제 인스타그램은 LG의 카메라 앱이 다양한 센서를 어떻게 사용하는지 살펴보고 사용자가 광각 또는 줌 사진을 찍을 수 있는 방법을 개발할 수 있습니다. 하지만 이는 아마도 LG V40에서만 작동할 것입니다. 갤럭시 S10에는 동일한 세 가지 센서 모드(표준, 망원, 초광각)가 있지만 인스타그램 팀은 삼성을 위한 또 다른 방법을 개발해야 합니다.
이제 Huawei, Vivo, OnePlus, Xiaomi, OPPO, Nokia, ZTE, HTC 및 기타 생각할 수 있는 모든 브랜드를 믹스에 추가하세요. 상상할 수 있듯이 각 브랜드의 각 휴대폰에 대한 잠재적인 추가 센서에만 액세스하는 방법을 개발하는 것은 엄청나게 지루할 것입니다. 그리고 모든 기존 휴대폰과 새 휴대폰과의 호환성을 유지해야 합니다.
이러한 제한 사항은 카메라 기능에도 적용됩니다. 인물 사진 모드, 야간 시력, HDR+와 같은 기능을 사용하려면 특정 장치별 방법이 필요하거나 타사 앱에서 완전히 액세스할 수 없습니다.
분명히 Instagram과 같은 앱의 경우 이는 그다지 큰 문제가 아닙니다. 그것은 그들의 초점이 아니며, 언제든지 휴대폰의 카메라 앱을 사용하여 먼저 사진을 찍을 수 있습니다. 하지만 전용 카메라 앱은 어떻습니까?
그 효과들
Google Play 스토어를 열고 '카메라'를 검색하세요. 수백 개의 결과를 찾을 수 있습니다. 자사 카메라 소프트웨어가 개선되었음에도 불구하고 타사 카메라 앱은 여전히 인기가 높습니다. 일부는 수동 노출 및 초점(휴대폰의 카메라 앱에는 없는 기능)과 같은 보다 기술적인 기능을 제공하는 것을 목표로 합니다. 다른 사람들은 장치 전반에 걸쳐 일관된 UX를 제공하는 것을 목표로 합니다.
특히 후자의 이유 때문에 Android의 카메라 단편화로 인해 널리 호환되는 카메라 앱을 개발하고 유지 관리하는 것이 엄청나게 어려울 수 있습니다. 추가 기능을 제공하려는 경우 모든 잠재적 자사 앱의 모든 잠재적 기능을 어떻게 포함할 예정입니까? 일관된 경험을 찾고 있다면 광각 센서가 장착된 모든 장치에서 광각 센서에 액세스하는 것이 작동한다는 것을 현실적으로 어떻게 보장할 수 있습니까?
대답은: 당신은 할 수 없습니다. 가능한 한 많은 장치에서 많은 기능을 지원하려고 노력할 수 있지만 결국에는 상대적으로 보상이 거의 없이 많은 작업만 수행하게 됩니다. 적어도 몇몇 개발자가 모든 기능을 갖춘 Android용 카메라 앱 제작을 포기했다고 상상하는 것은 어렵지 않습니다. 실제로 몇몇은 그랬습니다.
사상자
Play 스토어에서 카메라 앱을 검색해 보세요. 몇 가지 사실을 알게 될 것입니다. 하나, 거기에는 많은 옵션의. 둘째, 대부분은 매우 유사한 작업을 수행합니다(사후 필터 적용 등). 셋째, 고급 옵션은 자주 업데이트되지 않을 것입니다. 더 이상 스토어에 없는 검색결과를 Google에서 찾을 수도 있습니다.
최근에 우리는 누군가가 그만 두었다고 말하는 꽤 중요한 예를 얻었습니다. Moment는 Android용 Pro Camera 앱 개발을 중단하기로 결정했습니다.
Moment의 Pro Camera 앱은 Android에 고급 사진 및 동영상 기능을 제공하는 것을 목표로 했습니다. 다음은 이러한 기능 중 일부에 불과합니다.
- RGB 히스토그램
- 초점 분할
- 노출, ISO, 셔터 속도, 화이트 밸런스 수동 제어
- 포커스 피킹
- RAW 캡처
- 동적 프레임 속도 및 해상도 변경
문제는 이러한 기능 중 상당수가 많은 장치에서 작동하지 않는다는 것입니다. Moment의 기능 호환성 목록을 보는 것은 댄스 플로어 사진을 보는 것과 같습니다. 동일한 제품 라인 내에서도 기능 지원이 엄청나게 세분화되어 있습니다. 2년 간의 개발 이후 Moment는 더 이상 앱 개발을 계속할 수 있는 능력이 없습니다.
녹색 = Moment Pro 카메라에서 지원됩니다. 노란색 = 장치에서는 지원되지만 Moment Pro 카메라에서는 지원되지 않습니다. 빨간색 = 장치에서 지원되지 않습니다. 이미지 출처: 순간. 다음을 통해 검색됨: 나인투파이브구글.
해결책?
안드로이드가 처음 출시된 지 거의 12년이 지났지만 마침내 카메라 파편화에 대한 해결책이 나올 수도 있습니다.
이 솔루션은 Android에 직접 내장되어 있지는 않지만 Google에서 직접 제공합니다. 대신, 그것은 Jetpack 지원 라이브러리. Android 앱 개발에 익숙하다면 아마도 AppCompat 및 AndroidX 지원 라이브러리 제품군을 접했을 것입니다. Google의 이러한 라이브러리는 개발자가 이전 Android 버전과의 하위 호환성을 더 쉽게 유지하는 동시에 새로운 기능과 스타일을 도입할 수 있도록 하는 것을 목표로 합니다.
Jetpack에 새로 추가된 기능은 CameraX 라이브러리입니다. 다른 Jetpack 라이브러리와 마찬가지로 CameraX의 목표는 카메라 개발을 더 쉽게 만드는 것입니다. 가장 기본적인 형태로 CameraX는 Android의 카메라2, OEM이 해당 카메라 기능을 API에 노출하는 경우 앱이 기기의 카메라 기능을 조사할 수 있도록 하는 API입니다. 사용자는 Camera2 API 프로브 애플리케이션을 사용하여 Camera2 API에 노출된 카메라 기능을 확인한 다음 이를 기본 카메라 애플리케이션에서 사용할 수 있는 기능과 비교할 수 있습니다.
가격: 무료.
4.2.
CameraX를 Camera2 API의 래퍼로 사용하면 내부적으로 발생할 수 있는 모든 기기별 호환성 문제를 해결한다는 이점이 있습니다. 이것만으로도 상용구 코드와 카메라 문제를 조사하는 데 소요되는 시간을 줄일 수 있으므로 카메라 앱 개발자에게 유용할 것입니다. 하지만 그것이 CameraX가 할 수 있는 전부는 아닙니다.
첫 번째 부분은 대부분 개발자에게만 흥미로운 반면, 개발자와 최종 사용자 모두에게 적용되는 또 다른 부분이 있습니다. 공급업체 확장. 이것은 Android의 카메라 기능 단편화에 대한 Google의 답변입니다. 장치 제조업체는 CameraX(및 개발자와 사용자)가 기본 카메라 기능을 활용할 수 있도록 휴대폰과 함께 확장 라이브러리를 제공하도록 선택할 수 있습니다. 예를 들어 삼성의 인물 사진 모드 효과는 정말 마음에 들지만 카메라 앱 자체는 마음에 들지 않는다고 가정해 보겠습니다. 삼성이 휴대폰에 CameraX 세로 모드 확장 기능을 구현하기로 결정하면 CameraX를 사용하는 모든 타사 앱에서 삼성의 세로 모드를 사용할 수 있습니다. 분명히 이것은 단지 하나의 기능에만 국한되지 않습니다. 제조업체는 이론적으로 CameraX를 사용하여 앱에 카메라 기능을 모두 열 수 있습니다.
불행하게도 앞서 언급한 주의 사항이 있습니다. 이는 제조업체의 요구 사항이 아닙니다. 구글은 말한다 Pixel 4부터 시작하여 향후 출시될 모든 Pixel 장치에서 확장 프로그램을 지원할 예정입니다. OPPO 라고 그들은 뷰티 및 HDR 모드를 열었습니다. 다른 OEM은 CameraX에서 야간 모드만 사용할 수 있도록 선택하거나 확장 기능을 전혀 구현하지 않도록 선택할 수도 있습니다. 어떤 장치가 어떤 CameraX 확장 프로그램(있는 경우)을 지원하는지는 전적으로 제조업체에 달려 있습니다. Google 장치 목록을 유지하는 데 사용됩니다. Vendor Extensions와 그들이 공개한 카메라 기능을 지원하지만 지난 몇 달 동안 목록을 업데이트하지 않았습니다. 우리는 몇 주 전에 Google에 연락하여 업데이트된 목록을 제공할 수 있는지 문의했지만 회사는 아직 목록에 응답하지 않았습니다. 그만한 가치가 있는 만큼, 최근 Google 블로그 게시물 Samsung, LG, OPPO, Xiaomi 및 Motorola(Android 10)의 장치는 일부 확장 기능을 제공한다고 명시되어 있습니다. 기능을 지원하지만 블로그 게시물에는 지원되는 장치나 지원되는 기능이 무엇인지 정확히 명시되어 있지 않습니다. 제공하다.
충분한 제조업체가 확장 기능을 구현하기로 결정한다면 Android의 타사 카메라 환경은 훨씬 더 밝아질 것입니다. CameraX의 프레임워크가 이를 처리하므로 개발자는 가능한 모든 장치에 대해 카메라 기능을 다시 구현하는 데 시간을 낭비할 필요가 없습니다. 공통 인터페이스를 통해 장치 전반에 걸쳐 유사한 기능에 액세스할 수 있으므로 기능 조각화가 줄어듭니다. 그리고 더 많은 가능성이 있습니다.
물론 이 모든 것은 제조업체가 앞으로 CameraX 공급업체 확장 라이브러리를 구현하도록 설득하는 Google의 능력에 달려 있습니다. CameraX가 널리 구현되지 않는 한 현재 조각화가 추가될 뿐입니다. 하지만 개인적으로는 희망적입니다. Google은 원할 때 매우 설득력이 있으며 CameraX에 많은 작업이 진행되는 것 같습니다. Android의 카메라 문제에 대한 가능한 해결책이 곧 나올 것이라는 것은 흥미롭고, 시간이 지남에 따라 CameraX가 어떻게 개선되고 확장될지 기대됩니다.
CameraX 에 대해서 어떻게 생각하세요? Google은 Android용 통합 카메라 환경을 만드는 데 성공할 수 있을까요?