„Google“ „CameraX“ tiekėjo plėtinių API suteikia galimybę trečiųjų šalių kamerų programoms naudoti kai kurias geriausias kameros programos funkcijas.
Internete jau seniai sklinda pokštas, pagal kurį galite sužinoti, ar kas nors naudojasi „Android“ telefonu bloga jų asmenukių kokybė. Nors memai neabejotinai gerokai perdeda, už juos, deja, slypi dalis tiesos. „Android“ telefonai dažniausiai lenkia „iPhone“ fotoaparatų našumu, bent jau popieriuje. OEM gamintojai, tokie kaip LG ir Samsung, dažniausiai naudoja kameras su daugiau pikselių ir didesne diafragma nei konkuruojantys iPhone. Tačiau specifikacijos dar ne viskas. Dalis priežasčių, kodėl „Apple“ gali konkuruoti kameros žaidime, yra dėl „iOS“ programinės įrangos. Visi originalios įrangos gamintojai, nuo Apple iki ZTE, naudoja tam tikrą programinės įrangos magiją, kad nuotraukos ir vaizdo įrašai atrodytų geriau. Įmonės naudoja algoritmus, kad sumažintų triukšmą, patobulintų spalvų sodrumą ir kontrastą ir net paryškintų tamsias scenas, kad galutiniai rezultatai būtų malonesni. Istoriškai čia „Android“ originalios įrangos gamintojai nusileido „Apple“.
Programinės įrangos kūrimas
Tačiau visai neseniai viskas pradėjo keistis. Didžiausias šio pakeitimo pavyzdys tikriausiai yra „Google“ ir „Pixel“ serija. Kalbant apie techninę įrangą, „Pixel“ kameros tikrai negali lygintis su kitais flagmanais. Tačiau „Google“ lemia programinę įrangą. Su tokiomis funkcijomis kaip portreto režimas, naktinis vaizdas, HDR+ ir „Super Res Zoom“, „Pixels“ pelnė reputaciją dėl kai kurių geriausios išmaniųjų telefonų kameros rinkoje.
Kiti „Android“ originalios įrangos gamintojai seka „Google“ pavyzdžiu. „Samsung“, „OPPO“, „Xiaomi“, „Vivo“, „OnePlus“ ir kt. pristatė savo „Pixel“ populiaresnių fotoaparatų funkcijų versijas ir netgi turi keletą unikalių savo funkcijų. Naudodami tokius populiarius žodžius kaip „AI“ ir „mašininis mokymasis“, „Android“ OĮG bando jus įtikinti, kad jų programinė įranga yra ta programinė įranga, kuria norite patobulinti nuotraukas ir vaizdo įrašus. Pasiekėme tašką, kai „Android“ telefonai gali tikrai konkuruoti su „iPhone“ visais fotoaparato veikimo aspektais.
Problema
Deja, vis dar yra viena didelė išimtis: trečiųjų šalių programos. Jūsų super-duper 50 kamerų flagmanas gali padaryti nuostabias nuotraukas su integruota fotoaparato programa, bet pereikite prie Instagram, „Snapchat“ ar net trečiosios šalies fotoaparato programa, ir tai iš esmės yra garantija, kad tai, ką užfiksuojate, neatrodys beveik taip Gerai. Lyg to būtų negana, jūs taip pat prarandate visas šaunias fotoaparato funkcijas ir režimus. Taip yra todėl, kad skirtingai nei „iOS“, „Android“ iš tikrųjų neturi vieningos kameros sistemos. Žinoma, pagrindinės funkcijos yra. Trečiosios šalies programa vis tiek gali fotografuoti ir filmuoti bei naudoti blykstę. Bet kas atsitiks, jei jūsų telefone yra antrinis plataus kampo arba teleobjektyvo jutiklis? Gali būti, kad kūrėjai galės pasiekti tą antrąjį jutiklį, tačiau jų naudojamas metodas turės būti specifinis jūsų įrenginiui.
Tarkime, kad turite LG V40 (žinau, žinau, tik įsivaizduokite, kad turite). V40 turi tris jutiklius: standartinį, teleobjektyvų ir itin platų. Integruota kameros programa nesukelia problemų perjungiant visus šiuos skirtingus jutiklius. Tačiau pamirškite apie itin plataus jutiklio naudojimą „Instagram“. Dabar „Instagram“ galėtų pažvelgti į tai, kaip LG fotoaparato programėlė naudoja skirtingus jutiklius, ir sukurti būdą, kaip naudotojai galėtų fotografuoti plačiakampiu ar priartinimu. Bet tai tikriausiai veiktų tik „LG V40“. Nors „Galaxy S10“ turi tuos pačius tris jutiklio režimus (standartinį, teleobjektyvą ir itin platų), „Instagram“ komanda turėtų sukurti kitą „Samsung“ metodą.
Dabar į rinkinį pridėkite „Huawei“, „Vivo“, „OnePlus“, „Xiaomi“, „OPPO“, „Nokia“, „ZTE“, „HTC“ ir bet kurį kitą prekės ženklą, apie kurį galite galvoti. Kaip galite įsivaizduoti, bandymas sukurti metodą, kaip pasiekti tik galimus papildomus kiekvieno telefono kiekvieno prekės ženklo jutiklius, būtų neįtikėtinai varginantis. Ir tada jūs turite išlaikyti suderinamumą su visais esamais ir naujais telefonais.
Šie apribojimai taip pat taikomi fotoaparato funkcijoms. Tokiems dalykams kaip portreto režimas, naktinis vaizdas ir HDR+ reikia naudoti konkrečius kiekvienam įrenginiui taikomus metodus arba jie visiškai nepasiekiami trečiųjų šalių programoms.
Akivaizdu, kad tokiai programai kaip „Instagram“ tai nėra per didelis dalykas. Tai nėra jų dėmesys, todėl visada galite naudoti telefono fotoaparato programą, kad pirmiausia padarytumėte kadrą. Bet kaip su specialiomis fotoaparatų programomis?
Efektai
Atidarykite „Google Play“ parduotuvę ir ieškokite „kamera“. Jūs rasite šimtus rezultatų. Net patobulinus pirmosios šalies fotoaparatų programinę įrangą, trečiųjų šalių fotoaparatų programos vis dar yra labai populiarios. Kai kurie siekia pateikti daugiau techninių funkcijų, pvz., rankinio ekspozicijos ir fokusavimo (funkcijos, kurių gali nebūti jūsų telefono fotoaparato programoje). Kiti siekia užtikrinti nuoseklų UX visuose jūsų įrenginiuose.
Ypač dėl pastarosios priežasties dėl „Android“ fotoaparato susiskaidymo gali būti neįtikėtinai sunku sukurti ir prižiūrėti plačiai suderinamą fotoaparato programą. Jei norite suteikti papildomų funkcijų, kaip ketinate įtraukti visas galimas visų galimų pirmosios šalies programų funkcijas? Jei ieškote nuoseklios patirties, kaip galite realiai garantuoti, kad prieiga prie plataus kampo jutiklio kiekviename jį turinčiame įrenginyje veiks?
Atsakymas yra: tu negali. Galite pabandyti palaikyti kuo daugiau funkcijų kuo daugiau įrenginių, bet galiausiai už palyginti nedidelį atlygį reikės daug dirbti. Nesunku įsivaizduoti, kad bent keli kūrėjai tiesiog atsisakė sukurti visapusišką fotoaparato programą, skirtą „Android“. Tiesą sakant, keli turi.
Aukos
Eikite ir ieškokite fotoaparato programų „Play“ parduotuvėje. Pastebėsite keletą dalykų. Viena, yra a daug pasirinkimų. Antra, dauguma jų daro gana panašius dalykus (taiko filtrus po to ir panašiai). Trečia, sudėtingesnės parinktys tikriausiai neatnaujinamos taip dažnai. „Google“ netgi galite rasti rezultatų, kurių parduotuvėje nebėra.
Neseniai sulaukėme gana svarbaus pavyzdžio, kai kažkas pasitraukia. „Moment“ nusprendė nutraukti „Pro Camera“ programos, skirtos „Android“, kūrimą.
„Moment“ „Pro Camera“ programa skirta „Android“ įdiegti pažangias nuotraukų ir vaizdo įrašų funkcijas. Tai tik kelios iš šių funkcijų:
- RGB histogramos
- Padalintas dėmesys
- Rankinis ekspozicijos, ISO, užrakto greičio, baltos spalvos balanso valdymas
- Didžiausias dėmesys
- RAW fiksavimas
- Dinaminiai kadrų dažnio ir raiškos pokyčiai
Problema ta, kad daugelis šių funkcijų tiesiog neveikia daugelyje įrenginių. Žiūrėti į „Moment“ funkcijų suderinamumo sąrašą prilygsta šokių aikštelės nuotraukai. Net toje pačioje produktų linijoje funkcijų palaikymas yra neįtikėtinai suskaidytas. Po dvejų metų kūrimo „Moment“ nebegali tęsti savo programos kūrimo.
Žalia = palaiko „Moment Pro Camera“. Geltona = palaiko įrenginys, bet ne mano „Moment Pro“ kamera. Raudona = įrenginys nepalaikomas. Vaizdo šaltinis: Moment. Gauta per: 9to 5Google.
Sprendimas?
Praėjo beveik 12 metų nuo tada, kai pirmą kartą buvo išleista „Android“, bet pagaliau galime rasti sprendimą dėl fotoaparato susiskaidymo.
Šis sprendimas gaunamas tiesiai iš „Google“, nors jis nėra tiesiogiai integruotas į „Android“. Vietoj to, tai a Jetpack palaikymo biblioteka. Jei esate susipažinę su „Android“ programų kūrimu, tikriausiai susidūrėte su „AppCompat“ ir „AndroidX“ palaikymo bibliotekų rinkiniais. Šiomis „Google“ bibliotekomis siekiama, kad kūrėjai galėtų lengviau išlaikyti atgalinį suderinamumą su senesnėmis „Android“ versijomis, tačiau vis tiek gali įdiegti naujas funkcijas ir stilius.
Naujesnis „Jetpack“ (savotiškas) papildymas yra „CameraX“ biblioteka. Kaip ir kitose „Jetpack“ bibliotekose, „CameraX“ tikslas yra palengvinti fotoaparato kūrimą. Paprasčiausia forma „CameraX“ apima „Android“. Kamera 2, API, leidžianti programoms patikrinti įrenginio kameros funkcijas, jei OĮG pateikia šias fotoaparato funkcijas API. Naudotojai gali patikrinti, kokias fotoaparato funkcijas veikia „Camera2“ API, naudodami „Camera2 API Probe“ programą, o tada palyginti jas su funkcijomis, esančiomis atsarginėje kameros programoje.
Kaina: Nemokama.
4.2.
„CameraX“ kaip „Camera2“ API įvynioklio naudojimo pranašumas yra tas, kad viduje ji išsprendžia visas su įrenginiu susijusias suderinamumo problemas, kurios gali kilti. Vien tai bus naudinga fotoaparato programų kūrėjams, nes tai gali sumažinti kodo kodą ir laiką, praleistą tiriant fotoaparato problemas. Tačiau tai dar ne viskas, ką gali padaryti „CameraX“.
Nors ši pirmoji dalis dažniausiai yra įdomi tik kūrėjams, yra kita dalis, kuri taikoma ir kūrėjams, ir galutiniams vartotojams: Pardavėjo plėtiniai. Tai yra „Google“ atsakymas į fotoaparato funkcijų susiskaidymą „Android“. Įrenginių gamintojai gali pasirinkti kartu su savo telefonais pristatyti plėtinių bibliotekas, kurios leidžia „CameraX“ (ir kūrėjams bei naudotojams) panaudoti vietines fotoaparato funkcijas. Pavyzdžiui, tarkime, kad jums labai patinka „Samsung“ portreto režimo efektas, bet nepatinka pati fotoaparato programa. Jei „Samsung“ nuspręs savo telefonuose įdiegti „CameraX Portrait Mode“ plėtinį, bet kuri trečiosios šalies programa, naudojanti „CameraX“, galės naudoti „Samsung“ portreto režimą. Akivaizdu, kad tai neapsiriboja tik ta viena funkcija. Gamintojai teoriškai gali atverti bet kurias savo fotoaparato funkcijas programoms naudodami CameraX.
Deja, yra įspėjimas, kurį minėjau anksčiau: tai nėra gamintojams reikalavimas. Google sako jie palaikys plėtinius visuose naujuose ir būsimuose „Pixel“ įrenginiuose, pradedant nuo „Pixel 4“. OPPO sako jie atidarė savo grožio ir HDR režimus. Kiti originalios įrangos gamintojai galėjo pasirinkti, kad „CameraX“ būtų pasiekiami tik jų naktiniai režimai, arba jie galėjo pasirinkti nediegti jokių plėtinių. Visiškai nuo gamintojo priklauso, kuris įrenginys palaiko kokius CameraX plėtinius (jei tokių yra). Google naudojamas įrenginių sąrašui tvarkyti kurie palaiko tiekėjų plėtinius ir kokias fotoaparato funkcijas jie atvėrė, tačiau jie neatnaujino sąrašo pastaruosius kelis mėnesius. Prieš kelias savaites susisiekėme su „Google“ ir paklausėme, ar jie galėtų pateikti atnaujintą sąrašą, tačiau bendrovė sąrašo dar neatsakė. Ko verta, a naujausias „Google“ tinklaraščio įrašas teigia, kad „Samsung“, LG, OPPO, „Xiaomi“ ir „Motorola“ įrenginiuose (naudojant „Android 10“) yra tam tikras plėtinys funkcijos, tačiau tinklaraščio įraše tiksliai nenurodoma, kurie įrenginiai palaikomi ir kokias funkcijas jie atlieka teikti.
Jei pakankamai gamintojų nuspręs įdiegti plėtinius, „Android“ trečiosios šalies fotoaparatų scena bus daug ryškesnė. Kūrėjams nereikės gaišti laiko iš naujo įdiegiant fotoaparato funkciją kiekviename įrenginyje, nes tuo pasirūpins „CameraX“ sistema. Bus mažiau funkcijų suskaidymo, nes panašios funkcijos visuose įrenginiuose bus pasiekiamos per bendrą sąsają. Ir yra daug daugiau galimybių.
Žinoma, viskas priklauso nuo „Google“ sugebėjimo įtikinti gamintojus įdiegti „CameraX Vendor Extension“ bibliotekas. Jei „CameraX“ nebus plačiai įdiegtas, jis tik padidins dabartinį susiskaidymą. Tačiau asmeniškai aš tikiuosi. „Google“ gali būti labai įtikinama, kai to nori, ir atrodo, kad į „CameraX“ reikia įdėti daug darbo. Įdomu matyti galimą „Android“ fotoaparato problemų sprendimą ir nekantriai laukiu, kaip laikui bėgant „CameraX“ tobulės ir išsiplės.
Ką manote apie CameraX? Ar „Google“ pavyks sukurti vieningą „Android“ fotoaparato patirtį?