Google CameraX API umožňuje aplikáciám využívať najlepšie funkcie fotoaparátu

Rozhranie API rozšírení dodávateľa CameraX od spoločnosti Google umožňuje aplikáciám fotoaparátov tretích strán využívať niektoré z najlepších funkcií aplikácie pre fotoaparáty.

Na internete existuje dlhotrvajúci vtip, podľa ktorého zistíte, či niekto používa telefón s Androidom zlá kvalita ich selfie. Aj keď memy určite dosť preháňajú, je za nimi, žiaľ, kus pravdy. Telefóny s Androidom zvyčajne predbiehali iPhony, pokiaľ ide o výkon fotoaparátu, aspoň na papieri. OEM výrobcovia ako LG a Samsung majú tendenciu používať fotoaparáty s väčším počtom pixelov a väčšou clonou ako konkurenčné iPhony. Špecifikácie však nie sú všetko. Časť toho, prečo môže Apple súťažiť v hre s fotoaparátom, je kvôli softvéru iOS. Všetci výrobcovia OEM, od Apple po ZTE, používajú určité softvérové ​​kúzlo, aby fotografie a videá vyzerali lepšie. Spoločnosti používajú algoritmy na zníženie šumu, vyladenie sýtosti farieb a kontrastu a dokonca aj zosvetlenie tmavých scén, a to všetko preto, aby boli konečné výsledky príjemnejšie. Toto je historicky miesto, kde výrobcovia Android OEM zaostávajú za spoločnosťou Apple.

Vývoj softvéru

Nedávno sa však veci začali meniť. Najväčším príkladom tejto zmeny je pravdepodobne Google a zostava Pixel. Po hardvérovej stránke sa fotoaparáty Pixel naozaj nedajú porovnávať s inými vlajkovými loďami. Google však robí rozdiel v softvéri. Vďaka funkciám ako Portrait Mode, Night Sight, HDR+ a Super Res Zoom si Pixely získali reputáciu vďaka niektorým najlepšie fotoaparáty pre smartfóny na trhu.

Ďalší výrobcovia Android OEM nasledujú príklad Google. Samsung, OPPO, Xiaomi, Vivo, OnePlus atď., Všetky predstavili svoje vlastné verzie obľúbenejších funkcií fotoaparátu Pixel a dokonca majú aj niektoré vlastné jedinečné funkcie. S módnymi slovami ako „AI“ a „strojové učenie“ sa vás výrobcovia Android OEM snažia presvedčiť, že ich softvér je softvér, ktorý chcete vylepšiť svoje fotografie a videá. Dostali sme sa do bodu, keď telefóny so systémom Android môžu skutočne konkurovať telefónom iPhone vo všetkých aspektoch výkonu fotoaparátu.

Problém

Bohužiaľ, stále existuje jedna významná výnimka: aplikácie tretích strán. Vaša super-duper vlajková loď s 50 fotoaparátmi môže robiť úžasné fotografie pomocou vstavanej aplikácie fotoaparátu, ale prejdite na Instagram, Snapchat, alebo dokonca aplikácia fotoaparátu tretej strany, a to je v podstate záruka, že to, čo zachytíte, nebude vyzerať ani zďaleka tak dobre. Akoby to nestačilo, prídete aj o všetky skvelé funkcie a režimy fotoaparátu. Je to preto, že na rozdiel od iOS nemá Android v skutočnosti jednotný rámec fotoaparátu. Samozrejme, základné funkcie sú tam. Aplikácia tretej strany môže stále robiť fotografie a videá a používať blesk. Čo sa však stane, ak má váš telefón sekundárny snímač pre širokouhlý alebo teleobjektív? Je možné, že vývojári budú mať prístup k tomuto druhému senzoru, ale spôsob, ktorý použijú, bude musieť byť špecifický pre vaše zariadenie.

Povedzme, že máte LG V40 (viem, viem, len si predstavte, že máte). V40 má tri snímače: štandardný, teleobjektív a ultraširokouhlý. Vstavaná aplikácia fotoaparátu nemá problém prepínať medzi všetkými týmito rôznymi senzormi. Na používanie ultraširokého snímača na Instagrame však zabudnite. Teraz by sa Instagram mohol pozrieť na to, ako aplikácia fotoaparátu LG využíva rôzne senzory, a vyvinúť spôsob, akým môžu používatelia snímať širokouhlé alebo zoomové zábery. To by ale fungovalo asi len na LG V40. Aj keď má Galaxy S10 rovnaké tri režimy snímača (štandardný, teleobjektív a ultraširoký), tím Instagramu by musel pre Samsung vyvinúť inú metódu.

Teraz do mixu pridajte Huawei, Vivo, OnePlus, Xiaomi, OPPO, Nokia, ZTE, HTC a akúkoľvek inú značku, na ktorú si len spomeniete. Ako si viete predstaviť, pokus o vývoj metódy na prístup len k potenciálnym dodatočným senzorom pre každý telefón od každej značky by bol neuveriteľne únavný. A potom musíte zachovať kompatibilitu so všetkými súčasnými a novými telefónmi.

Tieto obmedzenia sa vzťahujú aj na funkcie fotoaparátu. Veci ako Portrétny režim, Nočné videnie a HDR+ buď vyžadujú špecifické metódy pre jednotlivé zariadenia, alebo sú úplne nedostupné pre aplikácie tretích strán.

Je zrejmé, že pre aplikáciu, ako je Instagram, to nie je príliš veľký problém. Nie je to ich zameranie a vždy môžete použiť aplikáciu fotoaparátu v telefóne, aby ste nasnímali záber ako prvý. Ale čo špeciálne aplikácie pre fotoaparáty?

Efekty

Otvorte Obchod Google Play a vyhľadajte výraz „fotoaparát“. Nájdete stovky výsledkov. Aj napriek vylepšeniam softvéru fotoaparátu prvej strany sú aplikácie pre fotoaparáty tretích strán stále veľmi populárne. Niektoré majú za cieľ poskytnúť viac technických funkcií, ako je manuálna expozícia a zaostrenie (funkcie, ktoré aplikácia fotoaparátu vášho telefónu nemusí mať). Iní majú za cieľ poskytnúť konzistentné UX na všetkých vašich zariadeniach.

Najmä z tohto posledného dôvodu môže fragmentácia fotoaparátu systému Android neuveriteľne sťažiť vývoj a údržbu široko kompatibilnej aplikácie fotoaparátu. Ak chcete poskytnúť ďalšie funkcie, ako zahrniete všetky potenciálne funkcie všetkých potenciálnych aplikácií prvej strany? Ak hľadáte konzistentný zážitok, ako môžete reálne zaručiť, že prístup k širokouhlému snímaču na každom zariadení, ktoré ho má, bude fungovať?

Odpoveď je: nemôžete. Môžete sa pokúsiť podporovať čo najviac funkcií na čo najväčšom počte zariadení, no v konečnom dôsledku to bude veľa práce za relatívne malú odmenu. Nie je ťažké si predstaviť, že aspoň niekoľko vývojárov sa jednoducho vzdalo tvorby plne funkčnej aplikácie fotoaparátu pre Android. V skutočnosti majú viacerí.

Obete

Vyhľadajte aplikácie fotoaparátu v Obchode Play. Všimnete si pár vecí. Jeden, existujú a veľa možností. Po druhé, väčšina z nich robí dosť podobné veci (aplikuje filtre dodatočne a podobne). Po tretie, pokročilejšie možnosti sa pravdepodobne tak často neaktualizujú. Na Googli môžete dokonca nájsť výsledky, ktoré už nie sú v obchode.

Nedávno sme dostali dosť významný príklad toho, že to niekto označil za ukončenie. Spoločnosť Moment sa rozhodla ukončiť vývoj svojej aplikácie Pro Camera pre Android.

Aplikácia Pro Camera od spoločnosti Moment mala za cieľ priniesť pokročilé funkcie fotografií a videa do systému Android. Toto sú len niektoré z týchto funkcií:

  • RGB histogramy
  • Rozdelené zameranie
  • Manuálne ovládanie expozície, ISO, rýchlosti uzávierky, vyváženia bielej
  • Špičkovanie zaostrenia
  • Snímanie RAW
  • Dynamická snímková frekvencia a zmeny rozlíšenia
Snímky obrazovky fotoaparátu Moment Pro. Cez: 9to5Google

Problém je v tom, že mnohé z týchto funkcií na mnohých zariadeniach jednoducho nefungujú. Pozerať sa na zoznam kompatibilných funkcií od Momentu je ako pozerať sa na obrázok tanečného parketu. Dokonca aj v rámci rovnakého produktového radu je podpora funkcií neuveriteľne roztrieštená. Po dvoch rokoch vývoja už Moment nemá kapacitu pokračovať vo vývoji svojej aplikácie.

Zelená = podporovaná fotoaparátom Moment Pro Camera. Žltá = podporovaná zariadením, ale nie mojou kamerou Moment Pro. Červená = nie je podporovaná zariadením. Zdroj obrázkov: Moment. Získané prostredníctvom: 9to5Google.

Riešenie?

Od prvého vydania systému Android prešlo takmer 12 rokov, ale možno konečne máme riešenie fragmentácie fotoaparátu.

Toto riešenie pochádza priamo od spoločnosti Google, hoci nie je zabudované priamo v systéme Android. Namiesto toho je to a Knižnica podpory Jetpack. Ak ste oboznámení s vývojom aplikácií pre Android, pravdepodobne ste narazili na balíky knižníc podpory AppCompat a AndroidX. Cieľom týchto knižníc od spoločnosti Google je uľahčiť vývojárom udržiavanie spätnej kompatibility so staršími verziami systému Android a zároveň im umožniť zavádzať nové funkcie a štýly.

Novším prírastkom do Jetpacku (akéhosi druhu) je knižnica CameraX. Podobne ako v prípade iných knižníc Jetpack, cieľom CameraX je uľahčiť vývoj fotoaparátu. Vo svojej najzákladnejšej podobe CameraX obaluje Android Fotoaparát2, API, ktoré umožňuje aplikáciám testovať funkcie fotoaparátu na zariadení za predpokladu, že výrobca OEM vystaví tieto funkcie fotoaparátu tomuto rozhraniu API. Používatelia môžu pomocou aplikácie Camera2 API Probe skontrolovať, ktoré funkcie kamery sú vystavené API Camera2 a potom to porovnať s funkciami dostupnými v aplikácii pre fotoaparáty.

Camera2 API ProbeVývojár: March Media Lab

Cena: zadarmo.

4.2.

Stiahnuť ▼

Výhodou použitia CameraX ako obalu pre Camera2 API je to, že interne rieši akékoľvek problémy s kompatibilitou špecifické pre zariadenie, ktoré môžu vzniknúť. Toto samo o sebe bude užitočné pre vývojárov aplikácií pre fotoaparáty, pretože to môže znížiť štandardný kód a čas strávený skúmaním problémov s fotoaparátom. To však nie je všetko, čo CameraX dokáže.

Zatiaľ čo prvá časť je väčšinou zaujímavá len pre vývojárov, je tu ďalšia časť, ktorá sa vzťahuje na vývojárov aj koncových používateľov: Rozšírenia dodávateľa. Toto je odpoveď spoločnosti Google na fragmentáciu funkcií fotoaparátu v systéme Android. Výrobcovia zariadení sa môžu rozhodnúť dodávať so svojimi telefónmi knižnice rozšírení, ktoré umožňujú CameraX (a vývojárom a používateľom) využívať natívne funkcie fotoaparátu. Povedzme napríklad, že sa vám veľmi páči efekt režimu Portrét od spoločnosti Samsung, ale nepáči sa vám samotná aplikácia fotoaparátu. Ak sa spoločnosť Samsung rozhodne implementovať do svojich telefónov rozšírenie CameraX Portrait Mode, každá aplikácia tretej strany, ktorá používa CameraX, bude môcť použiť režim Portrét spoločnosti Samsung. Je zrejmé, že sa to neobmedzuje len na jednu funkciu. Výrobcovia môžu teoreticky sprístupniť ktorúkoľvek zo svojich funkcií fotoaparátu aplikáciám pomocou CameraX.

Žiaľ, existuje upozornenie, ktoré som už spomenul: toto nie je požiadavka pre výrobcov. Google hovorí budú podporovať rozšírenia na všetkých nových a pripravovaných zariadeniach Pixel, počnúc Pixelom 4. OPPO hovorí otvorili svoje režimy Beauty a HDR. Iní výrobcovia OEM sa mohli rozhodnúť sprístupniť CameraX iba svoje nočné režimy, alebo sa mohli rozhodnúť neimplementovať žiadne rozšírenia. Je úplne na výrobcovi, ktoré zariadenie podporuje aké rozšírenia CameraX (ak existujú). Google slúži na udržiavanie zoznamu zariadení ktoré podporujú rozšírenia Vendor Extensions a aké funkcie fotoaparátu otvorili, ale zoznam už niekoľko mesiacov neaktualizovali. Pred niekoľkými týždňami sme oslovili spoločnosť Google a požiadali sme ich, či by nám mohli poskytnúť aktualizovaný zoznam, ale spoločnosť zatiaľ so zoznamom nereagovala. Za to, čo stojí za to, a nedávny príspevok na blogu Google uvádza, že zariadenia od spoločností Samsung, LG, OPPO, Xiaomi a Motorola (v systéme Android 10) poskytujú určité rozšírenie funkcie, ale blogový príspevok presne nešpecifikuje, ktoré zariadenia sú podporované a aké funkcie majú poskytnúť.

Ak sa dostatočný počet výrobcov rozhodne implementovať rozšírenia, scéna s fotoaparátmi tretích strán Androidu bude oveľa jasnejšia. Vývojári nebudú musieť strácať čas reimplementáciou funkcie fotoaparátu pre každé zariadenie, ktoré môžu, pretože framework CameraX sa o to postará. Dojde k menšej fragmentácii funkcií, pretože podobné funkcie naprieč zariadeniami budú dostupné prostredníctvom spoločného rozhrania. A možností je oveľa viac.


To všetko samozrejme závisí od schopnosti spoločnosti Google presvedčiť výrobcov, aby implementovali knižnice CameraX Vendor Extension v budúcnosti. Pokiaľ nie je CameraX široko implementovaný, len prispeje k súčasnej fragmentácii. Osobne však dúfam. Google vie byť veľmi presvedčivý, keď chce, a zdá sa, že do CameraX sa dáva veľa práce. Je vzrušujúce vidieť možné riešenie problémov s fotoaparátom Androidu na obzore a teším sa na to, ako sa bude CameraX časom zlepšovať a rozširovať.

Čo si myslíte o CameraX? Podarí sa Googlu vytvoriť jednotný zážitok z fotoaparátu pre Android?