A Google CameraX API-ja lehetővé teszi az alkalmazások számára, hogy a legjobb kamerafunkciókat használják

A Google CameraX szállítói kiterjesztés API-ja lehetővé teszi, hogy harmadik féltől származó kameraalkalmazások használhassák a készlet kameraalkalmazásának néhány legjobb funkcióját.

Van egy régóta futó vicc az interneten, amely alapján meg lehet állapítani, ha valaki androidos telefont használ rossz minőségű szelfik. Noha a mémek határozottan eltúloznak egy kicsit, sajnos van mögöttük egy kis igazság. Az androidos telefonok általában megelőzték az iPhone-okat a kamerák teljesítményében, legalábbis papíron. Az olyan eredeti gyártók, mint az LG és a Samsung, általában több pixeles és nagyobb rekesznyílású kamerákat használnak, mint a versenytárs iPhone-ok. A specifikációk azonban nem mindenek. Részben az iOS szoftvere miatt tud versenyezni az Apple a kamerás játékban. Az Apple-től a ZTE-ig minden OEM-gyártó szoftvervarázslatot használ a fényképek és videók szebb kinézetére. A cégek algoritmusokat használnak a zaj csökkentésére, a színtelítettség és a kontraszt beállítására, sőt a sötét jelenetek élénkítésére is, mindezt azért, hogy a végeredmény kellemesebb legyen. Történelmileg ez az, ahol az Android OEM-ek alulmaradtak az Apple-lel szemben.

Szoftverfejlesztések

Az utóbbi időben azonban a dolgok elkezdtek megváltozni. A változás legnagyobb példája valószínűleg a Google és a Pixel termékcsalád. Hardver tekintetében a Pixel kamerák nem igazán hasonlíthatók más zászlóshajókhoz. A szoftver azonban az, ahol a Google teszi a különbséget. Az olyan funkciókkal, mint a Portré mód, az Éjszakai látás, a HDR+ és a Super Res Zoom, a Pixelek hírnevet szereztek néhány legjobb okostelefon kamerák a piacon.

Más Android OEM-ek követik a Google példáját. A Samsung, az OPPO, a Xiaomi, a Vivo, a OnePlus stb. mind bevezette a saját verzióját a Pixel népszerűbb kamerafunkcióiból, és még saját egyedi jellemzőkkel is rendelkezik. Az olyan hívószavakkal, mint az „AI” és a „gépi tanulás”, az Android OEM-ek megpróbálják meggyőzni Önt arról, hogy az ő szoftverük az a szoftver, amellyel javítani szeretné fotóit és videóit. Eljutottunk arra a pontra, ahol az Android telefonok valóban felvehetik a versenyt az iPhone-okkal a kamera teljesítményének minden aspektusában.

A probléma

Sajnos még mindig van egy nagy kivétel: a harmadik féltől származó alkalmazások. A szuper-duper 50 kamerás zászlóshajója csodálatos fényképeket készíthet a beépített kameraalkalmazással, de váltson Instagramra, Snapchat, vagy akár egy harmadik féltől származó kameraalkalmazás, és ez alapvetően garancia arra, hogy amit rögzítesz, közel sem fog kinézni jó. Mintha ez még nem lenne elég, a fényképezőgép minden remek funkcióját és üzemmódját is elveszíti. Ennek az az oka, hogy az iOS-el ellentétben az Androidnak nem igazán van egységes kamerarendszere. Persze az alapvető funkciók megvannak. Egy harmadik féltől származó alkalmazás továbbra is tud fényképeket és videókat készíteni, és használja a vakut. De mi történik, ha a telefonon van egy másodlagos érzékelő a nagylátószögű vagy teleobjektívhez? Lehetséges, hogy a fejlesztők hozzáférhetnek ehhez a második érzékelőhöz, de az általuk használt módszernek az Ön eszközére kell vonatkoznia.

Tegyük fel, hogy LG V40-ed van (tudom, tudom, képzeld el, hogy van). A V40 három érzékelővel rendelkezik: standard, teleobjektív és ultraszéles érzékelő. A beépített kameraalkalmazásnak nem okoz gondot a különböző érzékelők közötti váltás. De felejtse el az ultraszéles érzékelő használatát az Instagramon. Az Instagram most egy pillantást vethet arra, hogy az LG kameraalkalmazása hogyan használja a különböző érzékelőket, és kidolgozhat egy módot a felhasználók számára, hogy széles látószögű vagy zoomfelvételeket készítsenek. De ez valószínűleg csak az LG V40-en működne. Annak ellenére, hogy a Galaxy S10 ugyanazzal a három érzékelőmóddal rendelkezik (standard, teleobjektív és ultraszéles), az Instagram csapatának egy másik módszert kell kidolgoznia a Samsung számára.

Most adja hozzá a Huawei-t, a Vivo-t, a OnePlus-t, a Xiaomi-t, az OPPO-t, a Nokia-t, a ZTE-t, a HTC-t és bármilyen más márkát, amelyre csak gondolhat. Elképzelhető, hogy egy olyan módszer kidolgozása, amellyel az egyes márkák minden telefonjához csak a potenciális extra érzékelők érhetők el, hihetetlenül fárasztó lenne. És akkor fenn kell tartania a kompatibilitást az összes jelenlegi és új telefonnal.

Ezek a korlátozások a kamera funkcióira is vonatkoznak. Az olyan dolgokhoz, mint a Portré mód, az Éjszakai látás és a HDR+, vagy speciális eszközönkénti módszereket igényelnek, vagy harmadik féltől származó alkalmazások teljesen elérhetetlenek.

Nyilvánvaló, hogy egy olyan alkalmazás esetében, mint az Instagram, ez nem túl nagy ügy. Nem az ő fókuszuk, és mindig használhatja telefonja kameraalkalmazását, hogy először készítse el a felvételt. De mi a helyzet a dedikált kameraalkalmazásokkal?

A hatások

Nyissa meg a Google Play Áruházat, és keressen rá a „kamera” kifejezésre. Több száz eredményt fog találni. Még az első féltől származó kameraszoftver fejlesztései ellenére is nagyon népszerűek a harmadik féltől származó kameraalkalmazások. Egyesek célja, hogy több technikai funkciót biztosítsanak, például kézi exponálást és fókuszt (olyan funkciók, amelyekkel a telefon kameraalkalmazása nem biztos, hogy rendelkezik). Mások célja, hogy konzisztens felhasználói élményt biztosítsanak az eszközökön.

Különösen az utóbbi ok miatt az Android kamera töredezettsége hihetetlenül megnehezítheti egy széles körben kompatibilis kameraalkalmazás fejlesztését és karbantartását. Ha extra funkciókat szeretne biztosítani, hogyan fogja az összes lehetséges belső alkalmazás összes lehetséges funkcióját beépíteni? Ha állandó élményre vágyik, hogyan garantálhatja reálisan, hogy a széles látószögű érzékelő elérése minden olyan eszközön, amelyen van, működni fog?

A válasz: nem lehet. Megpróbálhatsz minél több funkciót támogatni a lehető legtöbb eszközön, de végül is sok munka lesz viszonylag kevés jutalomért. Nem nehéz elképzelni, hogy legalább néhány fejlesztő egyszerűen lemondott egy teljes funkcionalitású kameraalkalmazás készítéséről Androidra. Sőt, többen is.

Az áldozatok

Keressen kameraalkalmazásokat a Play Áruházban. Észre fogsz venni néhány dolgot. Az egyik, van egy sok opciók közül. Kettő, a legtöbbjük nagyon hasonló dolgokat csinál (utólag alkalmaz szűrőket és hasonlókat). Harmadszor, a fejlettebb beállításokat valószínűleg nem frissítik olyan gyakran. Még olyan találatokat is találhat a Google-on, amelyek már nincsenek az áruházban.

Nemrég kaptunk egy igen jelentős példát arra, hogy valaki felmondja. A Moment úgy döntött, hogy leállítja az Androidra készült Pro Camera alkalmazás fejlesztését.

A Moment Pro Camera alkalmazásának célja az volt, hogy fejlett fotó- és videófunkciókat vigyen át Androidra. Ez csak néhány a funkciók közül:

  • RGB hisztogramok
  • Osztott fókusz
  • Az expozíció, ISO, záridő, fehéregyensúly kézi szabályozása
  • Fókusz csúcspont
  • RAW rögzítés
  • Dinamikus képkocka- és felbontásváltozások
Moment Pro Camera képernyőképek. Keresztül: 9to5Google

A probléma az, hogy sok ilyen funkció egyszerűen nem működik sok eszközön. A Moment szolgáltatáskompatibilitási listáját olyan, mintha egy táncparkett képét néznénk. Még ugyanazon a termékcsaládon belül is hihetetlenül töredezett a szolgáltatások támogatása. Két év fejlesztés után a Momentnek már nincs kapacitása az alkalmazás fejlesztésének folytatására.

Zöld = a Moment Pro Camera támogatja. Sárga = támogatja az eszköz, de nem a Moment Pro kamerám. Piros = az eszköz nem támogatja. A kép forrása: Moment. Letöltve: 9to5Google.

A megoldás?

Közel 12 év telt el az Android első megjelenése óta, de lehet, hogy végre lesz megoldás a kamera töredezettségére.

Ez a megoldás közvetlenül a Google-tól származik, bár nem közvetlenül az Androidba van beépítve. Ehelyett ez a Jetpack támogatási könyvtár. Ha jártas az Android-alkalmazások fejlesztésében, valószínűleg már belefutott az AppCompat és az AndroidX támogatási könyvtári csomagokba. Ezek a Google-könyvtárak célja, hogy megkönnyítsék a fejlesztők számára a visszafelé kompatibilitás fenntartását a régebbi Android-verziókkal, miközben új funkciókat és stílusokat is bevezethetnek.

A Jetpack (egyfajta) újabb kiegészítése a CameraX könyvtár. A többi Jetpack könyvtárhoz hasonlóan a CameraX célja a kamerafejlesztés megkönnyítése. A CameraX a legalapvetőbb formájában az Androidot burkolja Kamera 2, egy API, amely lehetővé teszi az alkalmazások számára, hogy megvizsgálják az eszköz kamera funkcióit, feltéve, hogy az OEM ezeket a kamerafunkciókat felfedi az API-nak. A felhasználók a Camera2 API Probe alkalmazás segítségével ellenőrizhetik, hogy a Camera2 API mely kamerafunkciókat éri el, majd összehasonlíthatják ezeket a készlet kameraalkalmazásban elérhető funkciókkal.

Camera2 API ProbeFejlesztő: March Media Lab

Ár: Ingyenes.

4.2.

Letöltés

A CameraX Camera2 API burkolójaként való használatának előnye, hogy belsőleg megoldja az esetlegesen felmerülő eszközspecifikus kompatibilitási problémákat. Ez önmagában is hasznos lesz a kameraalkalmazások fejlesztői számára, mivel csökkentheti a rendszerkódot és a kameraproblémák kutatására fordított időt. A CameraX azonban nem mindenre képes.

Míg ez az első rész többnyire csak a fejlesztők számára érdekes, van egy másik rész, amely mind a fejlesztőkre, mind a végfelhasználókra vonatkozik: Szállítói bővítmények. Ez a Google válasza a kamera funkció töredezettségére Androidon. Az eszközgyártók dönthetnek úgy, hogy telefonjukkal bővítménykönyvtárakat is szállítanak, amelyek lehetővé teszik a CameraX (és a fejlesztők és felhasználók) számára, hogy kihasználják a natív kamerafunkciókat. Tegyük fel például, hogy nagyon szereti a Samsung Portré mód hatását, de magát a kameraalkalmazást nem. Ha a Samsung úgy dönt, hogy a CameraX Portrait Mode bővítményt beépíti telefonjaiba, akkor a CameraX-et használó bármely harmadik féltől származó alkalmazás képes lesz használni a Samsung Portré módot. Nyilvánvaló, hogy ez nem csak erre az egy funkcióra korlátozódik. A gyártók elméletileg bármelyik kamerafunkciót megnyithatják az alkalmazások előtt a CameraX használatával.

Sajnos van egy figyelmeztetés, amit korábban említettem: ez nem követelmény a gyártók számára. A Google azt mondja támogatni fogják a bővítményeket minden új és közelgő Pixel eszközön, a Pixel 4-től kezdve. Az OPPO azt mondja megnyitották a Szépség és a HDR módokat. Más OEM-ek dönthetnek úgy, hogy csak az éjszakai üzemmódjukat teszik elérhetővé a CameraX számára, vagy dönthetnek úgy, hogy egyáltalán nem alkalmaznak bővítményeket. Teljesen a gyártótól függ, hogy melyik eszköz melyik CameraX bővítményt támogatja (ha van ilyen). Google eszközök listájának vezetésére szolgál amelyek támogatják a Vendor Extensions szolgáltatást, és milyen kamerafunkciókat nyitottak meg, de az elmúlt hónapok során nem frissítették a listát. Néhány hete megkerestük a Google-t, és megkérdeztük, tud-e frissített listát adni, de a cég még nem válaszolt listával. Amit megér, a legutóbbi Google blogbejegyzés kimondja, hogy a Samsung, az LG, az OPPO, a Xiaomi és a Motorola eszközei (Android 10-en) biztosítanak némi kiterjesztést funkciókat, de a blogbejegyzés nem határozza meg pontosan, hogy mely eszközök támogatottak és milyen funkciókat látnak el biztosítani.

Ha elegendő gyártó dönt a bővítmények bevezetése mellett, az Android harmadik féltől származó kamerái sokkal világosabbak lesznek. A fejlesztőknek nem kell időt vesztegetniük arra, hogy minden eszközön újraépítsék a kamerafunkciókat, mivel a CameraX keretrendszere gondoskodik róla. Kevesebb lesz a funkciók töredezettsége, mivel az eszközök hasonló funkciói egy közös felületen keresztül érhetők el. És még sok lehetőség van.


Természetesen mindez attól függ, hogy a Google képes-e meggyőzni a gyártókat a CameraX Vendor Extension könyvtárak további bevezetéséről. Hacsak a CameraX-et nem alkalmazzák széles körben, ez csak tovább fokozza a jelenlegi töredezettséget. Én személy szerint azonban bizakodó vagyok. A Google nagyon meggyőző tud lenni, amikor akar, és úgy tűnik, hogy rengeteg munka folyik a CameraX-en. Izgalmas látni egy lehetséges megoldást az Android kameraproblémáira, és kíváncsian várom, hogyan fog fejlődni és bővülni a CameraX idővel.

Mi a véleményed a CameraX-ről? Sikerül a Google-nak egységes kameraélményt létrehozni Androidra?