Google'i CameraX API võimaldab rakendustel kasutada parimaid kaamerafunktsioone

click fraud protection

Google'i CameraX-i hankijalaiendite API võimaldab kolmandate osapoolte kaamerarakendustel kasutada mõnda põhikaamerarakenduse parimat funktsiooni.

Internetis on pikka aega jooksnud nali, mille järgi saate teada, kas keegi kasutab Android-telefoni nende selfide halb kvaliteet. Kuigi meemid liialdavad kindlasti üsna palju, on nende taga paraku natuke tõtt. Android-telefonid on tavaliselt vähemalt paberil olnud kaamera jõudluse poolest iPhone'idest ees. Algseadmete tootjad, nagu LG ja Samsung, kasutavad tavaliselt rohkem piksleid ja suuremate avadega kaameraid kui konkureerivad iPhone'id. Spetsifikatsioonid pole aga kõik. Osa sellest, miks Apple saab kaameramängus võistelda, on iOS-i tarkvara tõttu. Kõik originaalseadmete tootjad Apple'ist ZTE-ni kasutavad fotode ja videote paremaks väljanägemiseks tarkvaramaagiat. Ettevõtted kasutavad algoritme müra vähendamiseks, värviküllastuse ja kontrasti reguleerimiseks ning isegi tumedate stseenide heledamaks muutmiseks, et muuta lõpptulemused meeldivamaks. See on ajalooliselt koht, kus Androidi originaalseadmete tootjad on Apple'ile alla jäänud.

Tarkvaraarendused

Viimasel ajal on aga asjad hakanud muutuma. Selle muudatuse suurim näide on ilmselt Google ja Pixel. Riistvara osas ei saa Pixeli kaameraid teiste lipulaevadega võrrelda. Tarkvara on see koht, kus Google määrab siiski erinevuse. Funktsioonidega, nagu portreerežiim, öövaade, HDR+ ja Super Res Zoom, on pikslid teeninud maine, kuna neil on parimad nutitelefonide kaamerad turul.

Teised Androidi originaalseadmete tootjad järgivad Google'i eeskuju. Samsung, OPPO, Xiaomi, Vivo, OnePlus jne on kõik Pixeli populaarsemate kaamerafunktsioonide versioonid tutvustanud ja neil on isegi oma unikaalsed funktsioonid. Moesõnadega nagu "AI" ja "masinõpe" üritavad Androidi originaalseadmete tootjad teid veenda, et nende tarkvara on tarkvara, mida soovite oma fotosid ja videoid täiustada. Oleme jõudnud punkti, kus Android-telefonid võivad kaamera jõudluse kõigis aspektides iPhone'idega tõeliselt konkureerida.

Probleem

Kahjuks on endiselt üks suur erand: kolmanda osapoole rakendused. Teie super-duper 50 kaameraga lipulaev võib sisseehitatud kaamerarakendusega teha hämmastavaid fotosid, kuid lülituge Instagrami, Snapchat või isegi kolmanda osapoole kaamerarakendus ja see on põhimõtteliselt garantii, et see, mida jäädvustate, ei näe peaaegu välja nagu hea. Justkui sellest veel vähe oleks, kaotate ka kõik lahedad kaamera funktsioonid ja režiimid. Seda seetõttu, et erinevalt iOS-ist pole Androidil tegelikult ühtset kaameraraamistikku. Muidugi on põhifunktsioonid olemas. Kolmanda osapoole rakendus suudab endiselt teha fotosid ja videoid ning kasutada välku. Aga mis juhtub siis, kui teie telefonil on lainurk- või telefoto andur? Võimalik, et arendajad pääsevad sellele teisele andurile juurde, kuid nende kasutatav meetod peab olema teie seadme jaoks spetsiifiline.

Oletame, et teil on LG V40 (ma tean, ma tean, kujutage ette, et teil on). V40-l on kolm sensorit: standard-, tele- ja ülilai. Sisseehitatud kaamerarakendusel pole probleeme kõigi nende erinevate andurite vahel vahetamisega. Kuid unustage ülilaia anduri kasutamine Instagramis. Nüüd võiks Instagram heita pilgu sellele, kuidas LG kaamerarakendus erinevaid andureid kasutab, ja välja töötada viisi, kuidas kasutajad saaksid teha lainurk- või suumivõtteid. Kuid see toimiks tõenäoliselt ainult LG V40 puhul. Kuigi Galaxy S10-l on samad kolm andurirežiimi (standardne, telefoto ja ülilai), peaks Instagrami meeskond Samsungi jaoks välja töötama teise meetodi.

Nüüd lisage segule Huawei, Vivo, OnePlus, Xiaomi, OPPO, Nokia, ZTE, HTC ja mis iganes muud kaubamärgid, mida võite mõelda. Nagu võite ette kujutada, muutuks iga kaubamärgi iga telefoni jaoks ainult potentsiaalsetele lisaanduritele juurdepääsu meetodi väljatöötamine uskumatult tüütuks. Ja siis peate säilitama ühilduvuse kõigi praeguste ja uute telefonidega.

Need piirangud kehtivad ka kaamera funktsioonide kohta. Sellised asjad nagu portreerežiim, öövaade ja HDR+ vajavad kasutamiseks konkreetseid seadmepõhiseid meetodeid või on kolmandate osapoolte rakendustele täiesti kättesaamatud.

Ilmselgelt pole see sellise rakenduse jaoks nagu Instagram liiga suur asi. See ei ole nende fookus ja võite alati kasutada oma telefoni kaamerarakendust, et esmalt pildistada. Aga kuidas on lood spetsiaalsete kaamerarakendustega?

Efektid

Avage Google Play pood ja otsige sõna "kaamera". Leiate sadu tulemusi. Isegi esimese osapoole kaameratarkvara täiustuste tõttu on kolmanda osapoole kaamerarakendused endiselt väga populaarsed. Mõne eesmärk on pakkuda rohkem tehnilisi funktsioone, nagu käsitsi säritus ja teravustamine (funktsioonid, mida teie telefoni kaamerarakendusel ei pruugi olla). Teiste eesmärk on pakkuda teie seadmetes ühtset kasutuskogemust.

Eriti viimasel põhjusel võib Androidi kaamera killustatus muuta laialdaselt ühilduva kaamerarakenduse arendamise ja hooldamise uskumatult keeruliseks. Kui soovite pakkuda lisafunktsioone, siis kuidas kavatsete kaasata kõigi potentsiaalsete esimese osapoole rakenduste võimalikud funktsioonid? Kui otsite ühtset kasutuskogemust, siis kuidas saate reaalselt tagada, et juurdepääs lainurksensorile igas seadmes, millel see on, toimib?

Vastus on: sa ei saa. Võite proovida toetada võimalikult palju funktsioone võimalikult paljudes seadmetes, kuid lõppkokkuvõttes on suhteliselt väikese tasu eest palju tööd. Pole raske ette kujutada, et vähemalt mõned arendajad on lihtsalt loobunud Androidi jaoks täisfunktsionaalse kaamerarakenduse loomisest. Tegelikult on mitmel.

Ohvrid

Otsige Play poest kaamerarakendusi. Märkad mõnda asja. Üks, seal on a palju valikutest. Teiseks, enamik neist teeb üsna sarnaseid asju (rakendab filtreid tagantjärele ja muud sellist). Kolmas, täpsemaid valikuid ei värskendata tõenäoliselt nii sageli. Võite isegi leida Google'ist tulemusi, mida enam poes pole.

Hiljuti oleme saanud üsna suure näite sellest, et keegi on öelnud, et see lõpetab. Moment otsustas Androidile mõeldud rakenduse Pro Camera arendamise peatada.

Momenti Pro Camera rakenduse eesmärk oli tuua Androidi täiustatud foto- ja videofunktsioonid. Need on vaid mõned funktsioonidest:

  • RGB histogrammid
  • Jaotatud fookus
  • Särituse, ISO, säriaja, valge tasakaalu käsitsi juhtimine
  • Fookuse tippimine
  • RAW jäädvustamine
  • Dünaamilised kaadrisageduse ja eraldusvõime muutused
Moment Pro Camera ekraanipildid. Läbi: 9to5Google

Probleem on selles, et paljud neist funktsioonidest lihtsalt ei tööta paljudes seadmetes. Momenti funktsioonide ühilduvuse loendi vaatamine on nagu tantsupõranda pildi vaatamine. Isegi sama tootesarja sees on funktsioonide tugi uskumatult killustatud. Pärast kaheaastast arendustööd ei ole Momentil enam võimalust oma rakenduse arendamist jätkata.

Roheline = toetab Moment Pro Camera. Kollane = seade toetab, kuid mitte minu Moment Pro kaamera. Punane = seade ei toeta. Pildi allikas: Moment. Laaditud: 9to5Google.

Lahendus?

Androidi esmakordsest väljalaskmisest on möödunud peaaegu 12 aastat, kuid meil võib lõpuks olla lahendus kaamera killustatusele.

See lahendus pärineb otse Google'ilt, kuigi see pole otse Androidi sisse ehitatud. Selle asemel on see a Jetpacki tugiteek. Kui olete Androidi rakenduste arendamisega tuttav, olete tõenäoliselt kokku puutunud AppCompati ja AndroidX-i tugiteegi komplektidega. Nende Google'i teekide eesmärk on hõlbustada arendajatel tagasiühilduvust vanemate Androidi versioonidega, võimaldades samal ajal tutvustada uusi funktsioone ja stiile.

Jetpacki uuem lisand (omamoodi) on CameraX teek. Sarnaselt teistele Jetpacki raamatukogudele on CameraX-i eesmärk muuta kaamera arendamine lihtsamaks. Kõige lihtsamal kujul ümbritseb CameraX Androidi Kaamera 2, API, mis võimaldab rakendustel uurida seadme kaamera funktsioone, eeldusel, et originaalseadmete tootja avaldab need kaamera funktsioonid API-le. Kasutajad saavad vaadata, millised kaamera funktsioonid on Camera2 API-ga kokku puutunud, kasutades rakendust Camera2 API Probe, ja seejärel võrrelda seda põhikaamerarakenduses saadaolevate funktsioonidega.

Camera2 API sondArendaja: March Media Lab

Hind: tasuta.

4.2.

Lae alla

CameraX-i kasutamise eeliseks Camera2 API ümbrisena on see, et see lahendab sisemiselt kõik seadmepõhised ühilduvusprobleemid, mis võivad tekkida. Ainuüksi see on kasulik kaamerarakenduste arendajatele, kuna see võib vähendada põhikoodi ja kaameraprobleemide uurimisele kuluvat aega. See pole aga kõik, mida CameraX teha saab.

Kuigi see esimene osa on enamasti huvitav ainult arendajatele, on veel üks osa, mis kehtib nii arendajatele kui ka lõppkasutajatele: Tarnija laiendused. See on Google'i vastus kaamera funktsioonide killustatusele Androidis. Seadmetootjad saavad valida oma telefonidega laiendusteekide tarnimise, mis võimaldavad CameraXil (ja arendajatel ja kasutajatel) kasutada kaamera algfunktsioone. Näiteks öelge, et teile meeldib väga Samsungi portreerežiimi efekt, kuid teile ei meeldi kaamerarakendus ise. Kui Samsung otsustab oma telefonides rakendada CameraX-i portreerežiimi laienduse, saavad kõik CameraX-i kasutavad kolmanda osapoole rakendused kasutada Samsungi portreerežiimi. Ilmselgelt ei piirdu see ainult selle ühe funktsiooniga. Tootjad saavad teoreetiliselt avada kõik oma kaamera funktsioonid CameraX-i kasutavate rakenduste jaoks.

Kahjuks on hoiatus, mida ma varem mainisin: see ei ole tootjate jaoks nõue. Google ütleb nad toetavad laiendusi kõigis uutes ja tulevastes Pixeli seadmetes, alustades Pixel 4-st. OPPO ütleb nad on avanud oma ilu- ja HDR-režiimid. Teised originaalseadmete tootjad võivad teha CameraX-ile kättesaadavaks ainult oma öörežiimid või mitte rakendada laiendusi. See on täiesti tootja otsustada, milline seade milliseid CameraX-i laiendusi (kui neid on) toetab. Google kasutatakse seadmete loendi pidamiseks mis toetavad teenusepakkuja laiendusi ja milliseid kaamerafunktsioone nad avasid, kuid nad pole loendit viimase mitme kuu jooksul värskendanud. Pöördusime Google'iga paar nädalat tagasi ja küsisime neilt, kas nad saaksid esitada värskendatud loendi, kuid ettevõte pole veel loendiga vastanud. Selle eest, mida see väärt on, a hiljutine Google'i ajaveebi postitus teatab, et Samsungi, LG, OPPO, Xiaomi ja Motorola seadmed (Android 10 puhul) pakuvad teatud laiendust funktsioone, kuid ajaveebi postituses ei ole täpselt välja toodud, milliseid seadmeid toetatakse või mis funktsioone nad täidavad pakkuda.

Kui paljud tootjad otsustavad laiendusi rakendada, on Androidi kolmanda osapoole kaamera stseen palju heledam. Arendajad ei pea raiskama aega kaamera funktsiooni uuesti juurutamiseks igas võimalikus seadmes, kuna CameraX-i raamistik hoolitseb selle eest. Funktsioonide killustatus väheneb, kuna sarnased funktsioonid kõigis seadmetes on juurdepääsetavad ühise liidese kaudu. Ja võimalusi on veel palju.


Loomulikult sõltub see kõik Google'i võimest veenda tootjaid CameraX Vendor Extensioni teeke edaspidi rakendama. Kui CameraX ei ole laialdaselt rakendatud, suurendab see praegust killustatust. Isiklikult olen siiski lootusrikas. Google võib olla väga veenev, kui ta seda soovib, ja tundub, et CameraX-iga tehakse palju tööd. On põnev näha Androidi kaameraprobleemide võimalikku lahendust silmapiiril ja ootan huviga, kuidas CameraX aja jooksul paraneb ja laieneb.

Mida arvad CameraX-ist? Kas Google'il õnnestub luua Androidi jaoks ühtne kaamerakogemus?