Google CameraX API omogućuje aplikacijama korištenje najboljih značajki standardne kamere

click fraud protection

Googleov API za proširenja dobavljača CameraX omogućuje aplikacijama za kameru trećih strana korištenje nekih od najboljih značajki standardne aplikacije za kameru.

Na internetu postoji dugotrajna šala da možete znati ako netko koristi Android telefon po tome loša kvaliteta njihovih selfija. Iako memovi definitivno prilično pretjeruju, iza njih, nažalost, krije se malo istine. Android telefoni obično su bili ispred iPhonea u pogledu performansi kamere, barem na papiru. Proizvođači originalne opreme poput LG-a i Samsunga obično koriste kamere s više piksela i većim otvorom blende od konkurentskih iPhonea. Ipak, specifikacije nisu sve. Dio razloga zašto se Apple može natjecati u igri kamera je zbog iOS-ovog softvera. Svi proizvođači originalne opreme, od Applea do ZTE-a, koriste softversku magiju kako bi fotografije i videozapisi izgledali bolje. Tvrtke koriste algoritme za smanjenje šuma, podešavanje zasićenosti boja i kontrasta, pa čak i posvjetljivanje tamnih scena, a sve kako bi krajnji rezultati bili ugodniji. Ovo je, povijesno gledano, mjesto gdje Android OEM-ovi nisu uspjeli u odnosu na Apple.

Razvoj softvera

Međutim, u novije vrijeme stvari su se počele mijenjati. Najveći primjer ove promjene vjerojatno je Google i Pixel linija. Što se tiče hardvera, Pixel kamere se zaista ne mogu usporediti s drugim vodećim modelima. Međutim, softver je ono gdje Google čini razliku. Sa značajkama kao što su Portretni način rada, Noćni vid, HDR+ i Super Res Zoom, Pixeli su stekli reputaciju da imaju neke od najbolje kamere za pametne telefone na tržištu.

Drugi proizvođači originalne opreme za Android slijede Googleovo vodstvo. Samsung, OPPO, Xiaomi, Vivo, OnePlus, itd., svi su predstavili svoje vlastite verzije Pixelovih popularnijih značajki kamere, a čak imaju i neke vlastite jedinstvene značajke. Uz poštarke poput "AI" i "strojno učenje", proizvođači originalne opreme za Android pokušavaju vas uvjeriti da je njihov softver softver kojim želite poboljšati svoje fotografije i videozapise. Došli smo do točke u kojoj se Android telefoni mogu istinski natjecati s iPhoneima u svim aspektima performansi kamere.

Problem

Nažalost, još uvijek postoji jedna velika iznimka: aplikacije trećih strana. Vaš super-duper vrhunski model s 50 kamera mogao bi snimiti nevjerojatne fotografije s ugrađenom aplikacijom za kameru, ali prijeđite na Instagram, Snapchat ili čak aplikacija za kameru treće strane, a to je u biti jamstvo da ono što snimite neće izgledati ni približno kao dobro. Kao da to nije dovoljno, gubite i na svim cool značajkama i načinima rada fotoaparata. To je zato što, za razliku od iOS-a, Android zapravo nema unificirani okvir kamere. Naravno, osnovne značajke su tu. Aplikacija treće strane i dalje može snimati fotografije i videozapise te koristiti bljeskalicu. Ali što se događa ako vaš telefon ima sekundarni senzor za širokokutni ili telefoto? Moguće je da će programeri moći pristupiti tom drugom senzoru, ali metoda koju će koristiti morat će biti specifična za vaš uređaj.

Recimo da imate LG V40 (znam, znam, samo zamislite da imate). V40 ima tri senzora: standardni, telefoto i ultraširoki. Ugrađena aplikacija kamere nema problema s prebacivanjem između svih ovih različitih senzora. Ali zaboravite na korištenje ultraširokog senzora na Instagramu. Sada bi Instagram mogao pogledati kako LG-eva aplikacija za kameru koristi različite senzore i razviti način na koji korisnici mogu snimati širokokutne ili zumirane fotografije. Ali to bi vjerojatno funkcioniralo samo na LG V40. Iako Galaxy S10 ima ista tri načina senzora (standardni, telefoto i ultraširoki), Instagram tim bi morao razviti drugu metodu za Samsung.

Sada dodajte Huawei, Vivo, OnePlus, Xiaomi, OPPO, Nokia, ZTE, HTC i bilo koji drugi brend koji vam padne na pamet. Kao što možete zamisliti, pokušaj razvoja metode za pristup samo potencijalnim dodatnim senzorima za svaki telefon svake marke postao bi nevjerojatno zamoran. Zatim morate održavati kompatibilnost sa svim trenutnim i novim telefonima.

Ova se ograničenja odnose i na značajke fotoaparata. Stvari poput portretnog načina rada, noćnog vida i HDR+ zahtijevaju posebne metode za korištenje po uređaju ili su potpuno nedostupne aplikacijama trećih strana.

Očito, za aplikaciju kao što je Instagram, ovo nije prevelika stvar. To nije njihov fokus i uvijek možete upotrijebiti aplikaciju kamere na telefonu da prvi snimite fotografiju. Ali što je s namjenskim aplikacijama za kameru?

Učinci

Otvorite trgovinu Google Play i potražite "kamera". Pronaći ćete stotine rezultata. Čak i uz poboljšanja u softveru za kameru prve strane, aplikacije za kameru treće strane i dalje su vrlo popularne. Neki imaju za cilj pružiti više tehničkih značajki poput ručne ekspozicije i fokusa (značajke koje aplikacija kamere na vašem telefonu možda nema). Drugi imaju za cilj pružiti dosljedan korisnički doživljaj na svim vašim uređajima.

Osobito zbog potonjeg razloga, Androidova fragmentacija kamere može nevjerojatno otežati razvoj i održavanje široko kompatibilne aplikacije kamere. Ako želite pružiti dodatne značajke, kako ćete uključiti sve potencijalne značajke svih potencijalnih aplikacija prve strane? Ako tražite dosljedno iskustvo, kako možete realno jamčiti da će pristup širokokutnom senzoru na svakom uređaju koji ga ima funkcionirati?

Odgovor je: ne možete. Možete pokušati podržati što više značajki na što je moguće više uređaja, ali na kraju će to biti puno posla za relativno malu nagradu. Nije teško zamisliti da je barem nekoliko programera jednostavno odustalo od izrade potpuno opremljene aplikacije kamere za Android. Zapravo, nekoliko ih je.

Žrtve

Potražite aplikacije za kameru u Trgovini Play. Primijetit ćete nekoliko stvari. Jedan, postoji a mnogo opcija. Drugo, većina njih radi prilično slične stvari (primjenjuje filtre naknadno i slično). Treće, naprednije opcije vjerojatno se ne ažuriraju tako često. Možda ćete čak pronaći rezultate na Googleu kojih više nema u trgovini.

Nedavno smo dobili prilično značajan primjer nekoga tko je odustao. Moment je odlučio prekinuti razvoj svoje aplikacije Pro Camera za Android.

Momentova aplikacija Pro Camera imala je za cilj donijeti napredne foto i video značajke na Android. Ovo su samo neke od tih značajki:

  • RGB histogrami
  • Podijeljeni fokus
  • Ručno upravljanje ekspozicijom, ISO, brzinom zatvarača, balansom bijele boje
  • Izoštravanje fokusa
  • RAW snimanje
  • Dinamičke promjene broja sličica u sekundi i rezolucije
Snimke zaslona Moment Pro kamere. Preko: 9to5Google

Problem je u tome što mnoge od ovih značajki jednostavno ne rade na velikom broju uređaja. Gledanje Momentovog popisa kompatibilnosti značajki je kao gledanje slike plesnog podija. Čak i unutar iste linije proizvoda, podrška za značajke je nevjerojatno fragmentirana. Nakon dvije godine razvoja, Moment više nema kapacitet za nastavak razvoja svoje aplikacije.

Zeleno = podržava kamera Moment Pro. Žuto = podržava uređaj, ali ne i moj Moment Pro fotoaparat. Crveno = uređaj ne podržava. Izvor slike: Moment. Preuzeto putem: 9to5Google.

Rješenje?

Prošlo je gotovo 12 godina otkako je prvi put objavljen Android, ali možda konačno imamo rješenje za fragmentaciju kamere.

Ovo rješenje dolazi izravno iz Googlea, iako nije ugrađeno izravno u Android. Umjesto toga, to je a Jetpack knjižnica podrške. Ako ste upoznati s razvojem Android aplikacija, vjerojatno ste naletjeli na pakete knjižnica za podršku AppCompat i AndroidX. Ove Googleove biblioteke imaju za cilj olakšati razvojnim programerima održavanje kompatibilnosti sa starijim verzijama Androida, dok još uvijek mogu uvesti nove značajke i stilove.

Noviji dodatak Jetpacku (nekako) je CameraX biblioteka. Slično ostalim Jetpack bibliotekama, CameraX-ov cilj je olakšati razvoj kamere. U svom najosnovnijem obliku, CameraX obuhvaća Android Kamera2, API koji aplikacijama omogućuje ispitivanje značajki kamere na uređaju, pod uvjetom da OEM izloži te značajke kamere API-ju. Korisnici mogu provjeriti koje su značajke kamere izložene Camera2 API-ju pomoću aplikacije Camera2 API Probe i zatim to usporediti sa značajkama dostupnim u standardnoj aplikaciji kamere.

Camera2 API sondaProgramer: March Media Lab

Cijena: besplatno.

4.2.

preuzimanje datoteka

Prednost korištenja CameraX kao omotača za Camera2 API je ta što interno rješava sve probleme kompatibilnosti specifične za uređaj koji se mogu pojaviti. Ovo će samo po sebi biti korisno za programere aplikacija za kameru jer može smanjiti standardni kod i vrijeme utrošeno na istraživanje problema s kamerom. No, to nije sve što CameraX može.

Dok je taj prvi dio uglavnom zanimljiv samo programerima, postoji drugi dio koji se odnosi i na programere i na krajnje korisnike: Proširenja dobavljača. Ovo je Googleov odgovor na fragmentaciju značajki kamere na Androidu. Proizvođači uređaja mogu odlučiti isporučiti biblioteke proširenja sa svojim telefonima koje omogućuju CameraX (i programerima i korisnicima) da iskoriste izvorne značajke kamere. Na primjer, recimo da vam se jako sviđa Samsungov efekt Portrait Mode, ali vam se ne sviđa sama aplikacija kamere. Ako Samsung odluči implementirati proširenje CameraX Portrait Mode u svoje telefone, bilo koja aplikacija treće strane koja koristi CameraX moći će koristiti Samsungov Portrait Mode. Očito, ovo nije ograničeno samo na tu jednu značajku. Proizvođači teoretski mogu otvoriti bilo koju značajku svoje kamere aplikacijama koje koriste CameraX.

Nažalost, postoji upozorenje koje sam ranije spomenuo: ovo nije uvjet za proizvođače. Google kaže podržavat će proširenja na svim novim i nadolazećim Pixel uređajima, počevši od Pixela 4. OPPO kaže otvorili su svoje modove Beauty i HDR. Drugi proizvođači originalne opreme mogu odlučiti učiniti samo svoje noćne načine rada dostupnima CameraX-u ili mogu odabrati da uopće ne implementiraju nikakva proširenja. U potpunosti ovisi o proizvođaču koji uređaj podržava koja CameraX proširenja (ako postoje). Google koristi se za održavanje popisa uređaja koji podržavaju proširenja dobavljača i značajke kamere koje su otvorili, ali nisu ažurirali popis posljednjih nekoliko mjeseci. Obratili smo se Googleu prije nekoliko tjedana i pitali ih mogu li pružiti ažurirani popis, ali tvrtka još nije odgovorila s popisom. Što se toga tiče, a nedavni Google post na blogu navodi da uređaji tvrtki Samsung, LG, OPPO, Xiaomi i Motorola (na Androidu 10) pružaju određena proširenja funkcije, ali post na blogu ne precizira točno koji su uređaji podržani ili koje funkcije imaju pružiti.

Ako dovoljno proizvođača odluči implementirati proširenja, Androidova kamera treće strane bit će puno svjetlija. Programeri neće morati gubiti vrijeme na ponovnu implementaciju značajke kamere za svaki uređaj koji mogu budući da će se za to pobrinuti CameraX okvir. Bit će manje fragmentacije značajki jer će slične značajke na svim uređajima biti dostupne putem zajedničkog sučelja. A postoji još mnogo mogućnosti.


Naravno, sve ovo ovisi o Googleovoj sposobnosti da uvjeri proizvođače da implementiraju CameraX Vendor Extension biblioteke u budućnosti. Osim ako se CameraX široko ne implementira, samo će povećati trenutnu fragmentaciju. Osobno se ipak nadam. Google može biti vrlo uvjerljiv kada to želi, a čini se da se puno radi na CameraX. Uzbudljivo je vidjeti moguće rješenje problema Androidove kamere na horizontu i veselim se vidjeti kako će se CameraX s vremenom poboljšati i proširiti.

Što mislite o CameraX? Hoće li Google uspjeti napraviti jedinstveno iskustvo kamere za Android?