Google'ın CameraX API'si, uygulamaların en iyi stok kamera özelliklerini kullanmasına olanak tanır

Google'ın CameraX tedarikçi uzantıları API'si, üçüncü taraf kamera uygulamalarının hazır kamera uygulamasının en iyi özelliklerinden bazılarını kullanmasını mümkün kılar.

İnternette birinin Android telefon kullanıp kullanmadığını anlayabileceğinize dair uzun süredir devam eden bir şaka var. selfielerinin kötü kalitesi. Memler kesinlikle biraz abartıyor olsa da, ne yazık ki bunların arkasında biraz gerçek var. Android telefonlar, en azından kağıt üzerinde kamera performansı açısından genellikle iPhone'ların önünde yer alıyor. LG ve Samsung gibi OEM'ler, rakip iPhone'lara göre daha fazla piksele ve daha geniş diyafram açıklığına sahip kameralar kullanma eğilimindedir. Ancak özellikler her şey değildir. Apple'ın kamera oyununda rekabet edebilmesinin bir nedeni de iOS yazılımıdır. Apple'dan ZTE'ye kadar tüm OEM'ler, fotoğrafların ve videoların daha iyi görünmesini sağlamak için bazı yazılım büyülerinden yararlanır. Şirketler gürültüyü azaltmak, renk doygunluğu ve kontrastını ayarlamak ve hatta karanlık sahneleri aydınlatmak için algoritmalar kullanıyor ve bunların hepsi nihai sonuçların daha hoş olmasını sağlıyor. Bu, tarihsel olarak Android OEM'lerinin Apple'ın gerisinde kaldığı noktadır.

Yazılım Gelişmeleri

Ancak son zamanlarda işler değişmeye başladı. Bu değişimin en büyük örneği muhtemelen Google ve Pixel serisidir. Donanım açısından Pixel kameralar diğer amiral gemileriyle gerçekten karşılaştırılamaz. Yazılım Google'ın farkı yarattığı yerdir. Portre Modu, Gece Görüşü, HDR+ ve Süper Çözünürlüklü Yakınlaştırma gibi özelliklerle Pixels, bazı özellikleriyle ün kazanmıştır. piyasadaki en iyi akıllı telefon kameraları.

Diğer Android OEM'leri Google'ın izinden gidiyor. Samsung, OPPO, Xiaomi, Vivo, OnePlus vb. şirketlerin tümü Pixel'in daha popüler kamera özelliklerinin kendi versiyonlarını tanıttı ve hatta kendilerine ait bazı benzersiz özelliklere sahipler. Android OEM'leri, "Yapay Zeka" ve "makine öğrenimi" gibi moda sözcüklerle, fotoğraflarınızı ve videolarınızı geliştirmek istediğiniz yazılımın kendi yazılımları olduğuna sizi ikna etmeye çalışıyor. Android telefonların kamera performansı açısından iPhone'larla gerçekten rekabet edebilecek bir noktaya geldik.

Sorun

Ne yazık ki hala önemli bir istisna var: üçüncü taraf uygulamalar. Süper kandırılan 50 kameralı amiral geminiz, yerleşik kamera uygulamasıyla harika fotoğraflar çekebilir, ancak Instagram'a geçin. Snapchat, hatta üçüncü taraf bir kamera uygulaması ve bu, temelde, yakaladığınız şeyin neredeyse aynı görünmeyeceğinin garantisidir. iyi. Sanki bu yeterli değilmiş gibi, aynı zamanda tüm harika kamera özelliklerini ve modlarını da kaybedersiniz. Bunun nedeni, iOS'tan farklı olarak Android'in gerçekten birleşik bir kamera çerçevesine sahip olmamasıdır. Elbette temel özellikler mevcut. Üçüncü taraf bir uygulama yine de fotoğraf ve video çekebilir ve flaşı kullanabilir. Peki telefonunuzda geniş açı veya telefoto için ikincil bir sensör varsa ne olur? Geliştiricilerin bu ikinci sensöre erişmesi mümkündür ancak kullandıkları yöntemin cihazınıza özel olması gerekecektir.

Diyelim ki bir LG V40'ınız var (Biliyorum, biliyorum, sadece sahip olduğunuzu hayal edin). V40'ın üç sensörü vardır: standart, telefoto ve ultra geniş. Yerleşik kamera uygulamasında tüm bu farklı sensörler arasında geçiş yapmakta sorun yoktur. Ancak Instagram'da ultra geniş sensörü kullanmayı unutun. Artık Instagram, LG'nin kamera uygulamasının farklı sensörleri nasıl kullandığını inceleyebilir ve kullanıcıların geniş açılı veya yakınlaştırmalı çekimler yapması için bir yol geliştirebilir. Ancak bu muhtemelen yalnızca LG V40'ta işe yarayacaktır. Galaxy S10 aynı üç sensör moduna (standart, telefoto ve ultra geniş) sahip olsa da Instagram ekibinin Samsung için başka bir yöntem geliştirmesi gerekecek.

Şimdi karışıma Huawei, Vivo, OnePlus, Xiaomi, OPPO, Nokia, ZTE, HTC ve aklınıza gelebilecek diğer markaları ekleyin. Tahmin edebileceğiniz gibi, her markanın her telefonu için yalnızca potansiyel ekstra sensörlere erişmeye yönelik bir yöntem geliştirmeye çalışmak inanılmaz derecede sıkıcı olacaktır. Ve sonra tüm mevcut ve yeni telefonlarla uyumluluğu korumalısınız.

Bu sınırlamalar kamera özellikleri için de geçerlidir. Portre Modu, Gece Görüşü ve HDR+ gibi özelliklerin kullanılması için cihaz başına özel yöntemlere ihtiyaç vardır veya üçüncü taraf uygulamalar tarafından tamamen erişilemezdir.

Açıkçası Instagram gibi bir uygulama için bu çok da büyük bir olay değil. Bu onların odak noktası değil ve ilk önce çekimi yapmak için her zaman telefonunuzun kamera uygulamasını kullanabilirsiniz. Peki ya özel kamera uygulamaları?

Efektler

Google Play Store'u açın ve "kamera"yı arayın. Yüzlerce sonuç bulacaksınız. Birinci taraf kamera yazılımındaki gelişmelere rağmen üçüncü taraf kamera uygulamaları hâlâ oldukça popüler. Bazıları manuel pozlama ve odaklama gibi daha fazla teknik özellik (telefonunuzun kamera uygulamasının sahip olamayacağı özellikler) sağlamayı amaçlamaktadır. Diğerleri cihazlarınız arasında tutarlı bir kullanıcı deneyimi sağlamayı amaçlamaktadır.

Özellikle ikinci nedenden ötürü, Android'in kamera parçalanması, geniş çapta uyumlu bir kamera uygulamasının geliştirilmesini ve sürdürülmesini inanılmaz derecede zorlaştırabilir. Ekstra özellikler sağlamak istiyorsanız tüm potansiyel birinci taraf uygulamaların tüm potansiyel özelliklerini nasıl dahil edeceksiniz? Tutarlı bir deneyim arıyorsanız, geniş açı sensörüne sahip her cihazda erişmenin işe yarayacağını gerçekçi bir şekilde nasıl garanti edebilirsiniz?

Cevap şu: yapamazsınız. Mümkün olduğu kadar çok cihazda mümkün olduğu kadar çok özelliği desteklemeyi deneyebilirsiniz, ancak sonuçta nispeten az bir ödül için çok fazla iş yapmak gerekecektir. En azından birkaç geliştiricinin Android için tam özellikli bir kamera uygulaması yapmaktan vazgeçtiğini hayal etmek zor değil. Aslında birkaç tanesinde var.

Kayıplar

Play Store'da kamera uygulamalarını arayın. Birkaç şeyi fark edeceksiniz. Bir, bir tane var pay seçenekleri. İkincisi, çoğu oldukça benzer şeyler yapıyor (olaydan sonra filtreler uyguluyor vb.). Üçüncüsü, daha gelişmiş seçenekler muhtemelen o kadar sık ​​güncellenmiyor. Artık mağazada bulunmayan sonuçları Google'da bile bulabilirsiniz.

Son zamanlarda, birinin işi bıraktığına dair oldukça önemli bir örnekle karşılaştık. Moment, Android için Pro Camera uygulamasının geliştirilmesini durdurmaya karar verdi.

Moment'in Pro Kamera uygulaması, Android'e gelişmiş fotoğraf ve video özellikleri getirmeyi amaçlıyordu. Bunlar bu özelliklerden sadece birkaçı:

  • RGB histogramları
  • Bölünmüş odak
  • Pozlama, ISO, deklanşör hızı, beyaz dengesi üzerinde manuel kontrol
  • Odaklanma zirvesi
  • RAW yakalama
  • Dinamik kare hızı ve çözünürlük değişiklikleri
Moment Pro Kamera ekran görüntüleri. Aracılığıyla: 9to5Google

Sorun şu ki, bu özelliklerin birçoğu pek çok cihazda çalışmıyor. Moment'in özellik uyumluluk listesine bakmak, bir dans pistinin resmine bakmak gibidir. Aynı ürün grubu içinde bile özellik desteği inanılmaz derecede parçalıdır. İki yıllık geliştirme sürecinin ardından Moment, artık uygulamasını geliştirmeye devam etme kapasitesine sahip değil.

Yeşil = Moment Pro Kamera tarafından desteklenir. Sarı = cihaz tarafından destekleniyor ancak Moment Pro Kameram tarafından desteklenmiyor. Kırmızı = cihaz tarafından desteklenmiyor. Resim kaynağı: Moment. Şu adresten alındı: 9to5Google.

Çözüm?

Android'in ilk piyasaya sürülmesinden bu yana neredeyse 12 yıl geçti, ancak sonunda kamera parçalanmasına bir çözüm bulabiliriz.

Bu çözüm, doğrudan Android'de yerleşik olmasa da doğrudan Google'dan geliyor. Bunun yerine, bu bir Jetpack destek kütüphanesi. Android uygulamaları geliştirmeye aşina iseniz muhtemelen AppCompat ve AndroidX destek kitaplığı paketleriyle karşılaşmışsınızdır. Google'ın sunduğu bu kitaplıklar, geliştiricilerin eski Android sürümleriyle geriye dönük uyumluluğu korumasını kolaylaştırırken aynı zamanda yeni özellikler ve stiller sunmayı amaçlıyor.

Jetpack'e (bir çeşit) daha yeni bir eklenti, CameraX kütüphanesidir. Diğer Jetpack kütüphanelerine benzer şekilde CameraX'in amacı kamera geliştirmeyi kolaylaştırmaktır. En temel haliyle CameraX, Android'in Kamera2, OEM'in bu kamera özelliklerini API'ye sunması koşuluyla uygulamaların bir cihazdaki kamera özelliklerini incelemesine olanak tanıyan bir API. Kullanıcılar, Camera2 API Probe uygulamasını kullanarak hangi kamera özelliklerinin Camera2 API'sine maruz kaldığını kontrol edebilir ve ardından bunu stok kamera uygulamasında mevcut olan özelliklerle karşılaştırabilir.

Camera2 API ProbuGeliştirici: March Media Lab

Fiyat: Ücretsiz.

4.2.

İndirmek

CameraX'i Camera2 API için sarmalayıcı olarak kullanmanın yararı, dahili olarak ortaya çıkabilecek cihaza özgü uyumluluk sorunlarını çözmesidir. Tek başına bu, standart kodları ve kamera sorunlarını araştırmak için harcanan zamanı azaltabileceğinden, kamera uygulaması geliştiricileri için faydalı olacaktır. Ancak CameraX'in yapabileceği tek şey bu değil.

Bu ilk bölüm çoğunlukla yalnızca geliştiricilerin ilgisini çekse de hem geliştiriciler hem de son kullanıcılar için geçerli olan başka bir bölüm daha var: Satıcı Uzantıları. Bu, Google'ın Android'deki kamera özelliği parçalanmasına verdiği yanıttır. Cihaz üreticileri, CameraX'in (ve geliştiricilerin ve kullanıcıların) yerel kamera özelliklerinden yararlanmasına olanak tanıyan uzantı kitaplıklarını telefonlarıyla birlikte göndermeyi tercih edebilir. Örneğin, Samsung'un Portre Modu efektini gerçekten beğendiğinizi ancak kamera uygulamasının kendisini beğenmediğinizi varsayalım. Samsung, telefonlarında CameraX Portre Modu uzantısını uygulamaya karar verirse, CameraX kullanan tüm üçüncü taraf uygulamalar Samsung'un Portre Modu'nu kullanabilecek. Açıkçası bu sadece bu özellik ile sınırlı değil. Üreticiler teorik olarak kamera özelliklerinden herhangi birini CameraX kullanarak uygulamalara açabilirler.

Ne yazık ki daha önce de belirttiğim bir uyarı var: Bu üreticiler için bir zorunluluk değil. Google diyor Pixel 4'ten başlayarak tüm yeni ve gelecek Pixel cihazlarda Uzantıları destekleyecekler. OPPO diyor Güzellik ve HDR modlarını açtılar. Diğer OEM'ler CameraX'te yalnızca Gece Modlarını kullanılabilir hale getirmeyi veya hiçbir uzantı uygulamamayı seçebilirler. Hangi cihazın hangi CameraX uzantılarını (varsa) desteklediği tamamen üreticiye bağlıdır. Google cihazların listesini tutmak için kullanılır Satıcı Uzantılarını destekleyen ve hangi kamera özelliklerini açtıkları, ancak son birkaç aydır listeyi güncellemediler. Birkaç hafta önce Google'a ulaşıp güncellenmiş bir liste sağlayıp sağlayamayacaklarını sorduk ancak şirket henüz bir listeyle yanıt vermedi. Ne olursa olsun, bir son Google blog yayını Samsung, LG, OPPO, Xiaomi ve Motorola (Android 10'da) cihazlarının bazı uzantılar sağladığını belirtiyor işlevler, ancak blog yazısı tam olarak hangi cihazların desteklendiğini veya hangi işlevlerin desteklendiğini belirtmiyor sağlamak.

Yeterli sayıda üretici uzantı uygulamaya karar verirse Android'in üçüncü taraf kamera sahnesi çok daha parlak olacak. Geliştiricilerin, CameraX'in çerçevesi bunu halledeceğinden, mümkün olan her cihaz için bir kamera özelliğini yeniden uygulamak için zaman harcamak zorunda kalmayacaklar. Cihazlar arasındaki benzer özelliklere ortak bir arayüz üzerinden erişilebileceğinden özellik parçalanması daha az olacaktır. Ve daha birçok olasılık var.


Elbette bunların hepsi Google'ın üreticileri ileride CameraX Tedarikçi Uzantısı kitaplıklarını uygulamaya ikna etme becerisine bağlı. CameraX geniş çapta uygulanmadığı sürece mevcut parçalanmayı daha da artıracaktır. Ancak kişisel olarak umutluyum. Google istediği zaman çok ikna edici olabiliyor ve CameraX'e çok iş düşüyor gibi görünüyor. Ufukta Android'in kamera sorunlarına olası bir çözüm görmek heyecan verici ve CameraX'in zaman içinde nasıl gelişip genişleyeceğini görmek için sabırsızlanıyorum.

CameraX hakkında ne düşünüyorsunuz? Google, Android için birleşik bir kamera deneyimi oluşturmayı başarabilecek mi?