Googlen CameraX-toimittajalaajennusten sovellusliittymä antaa kolmansien osapuolien kamerasovelluksille mahdollisuuden käyttää joitain varastokamerasovelluksen parhaista ominaisuuksista.
Internetissä on pitkäaikainen vitsi, josta voit kertoa, jos joku käyttää Android-puhelinta selfien huono laatu. Vaikka meemit liioittelevatkin melkoisesti, niiden takana on valitettavasti vähän totuutta. Android-puhelimet ovat yleensä olleet iPhonea edellä kameran suorituskyvyn suhteen, ainakin paperilla. OEM-valmistajat, kuten LG ja Samsung, käyttävät yleensä kameroita, joissa on enemmän pikseleitä ja suurempi aukko kuin kilpailevissa iPhoneissa. Tekniset tiedot eivät kuitenkaan ole kaikki. Osa siitä, miksi Apple voi kilpailla kamerapelissä, johtuu iOS-ohjelmistosta. Kaikki OEM-valmistajat Applesta ZTE: hen käyttävät ohjelmistotaikaa saadakseen valokuvat ja videot näyttämään paremmilta. Yritykset käyttävät algoritmeja vähentääkseen kohinaa, säätämällä värikylläisyyttä ja kontrastia ja jopa kirkastaakseen tummia kohtauksia, jotta lopputuloksesta tulee miellyttävämpi. Tämä on historiallisesti paikka, jossa Android OEM: t ovat jääneet Applen alle.
Ohjelmistokehitys
Viime aikoina asiat ovat kuitenkin alkaneet muuttua. Suurin esimerkki tästä muutoksesta on luultavasti Google ja Pixel-mallisto. Laitteiston suhteen Pixel-kameroita ei todellakaan voi verrata muihin lippulaivoihin. Ohjelmistoissa Google kuitenkin ratkaisee eron. Ominaisuuksilla, kuten muotokuvatila, yönäkymä, HDR+ ja Super Res Zoom, pikselit ovat ansainneet mainetta joidenkin markkinoiden parhaat älypuhelinkamerat.
Muut Androidin OEM-valmistajat seuraavat Googlen esimerkkiä. Samsung, OPPO, Xiaomi, Vivo, OnePlus jne. ovat kaikki ottaneet käyttöön omat versionsa Pixelin suosituimmista kameraominaisuuksista, ja heillä on jopa omia ainutlaatuisia ominaisuuksia. Androidin OEM-valmistajat yrittävät vakuuttaa sinulle sellaisilla muotisanoilla kuin "AI" ja "koneoppiminen", että heidän ohjelmistonsa on ohjelmisto, jolla haluat parantaa valokuviasi ja videoitasi. Olemme päässeet pisteeseen, jossa Android-puhelimet voivat aidosti kilpailla iPhone-puhelimia vastaan kaikissa kameran suorituskyvyn osissa.
Ongelma
Valitettavasti on edelleen yksi suuri poikkeus: kolmannen osapuolen sovellukset. Super-duper 50 kameran lippulaivasi saattaa ottaa upeita kuvia sisäänrakennetulla kamerasovelluksella, mutta vaihda Instagramiin, Snapchat tai jopa kolmannen osapuolen kamerasovellus, ja se on periaatteessa tae siitä, että ottamasi ei näytä läheskään hyvä. Ikään kuin tämä ei olisi tarpeeksi, menetät myös kaikki hienot kameran ominaisuudet ja tilat. Tämä johtuu siitä, että toisin kuin iOS, Androidilla ei oikeastaan ole yhtenäistä kamerakehystä. Toki perusominaisuudet löytyy. Kolmannen osapuolen sovellus voi silti ottaa valokuvia ja videoita ja käyttää salamaa. Mutta mitä tapahtuu, jos puhelimessasi on toissijainen anturi laajakulma- tai telekuvausta varten? On mahdollista, että kehittäjät voivat käyttää tätä toista anturia, mutta heidän käyttämänsä menetelmän on oltava laitekohtainen.
Oletetaan, että sinulla on LG V40 (tiedän, tiedän, kuvittele vain, että sinulla on). V40:ssä on kolme anturia: vakio-, tele- ja ultralaajakuva-anturia. Sisäänrakennetulla kamerasovelluksella ei ole ongelmia vaihtaa kaikkien näiden eri antureiden välillä. Mutta unohda ultraleveän anturin käyttö Instagramissa. Nyt Instagram voisi tarkastella, miten LG: n kamerasovellus käyttää erilaisia antureita ja kehittää tavan, jolla käyttäjät voivat ottaa laajakulma- tai zoomauskuvia. Mutta se todennäköisesti toimisi vain LG V40: ssä. Vaikka Galaxy S10:ssä on samat kolme anturitilaa (vakio-, tele- ja ultralaajakuva), Instagram-tiimin olisi kehitettävä toinen menetelmä Samsungille.
Lisää nyt joukkoon Huawei, Vivo, OnePlus, Xiaomi, OPPO, Nokia, ZTE, HTC ja mikä tahansa muu tuotemerkki, jota voit mahdollisesti ajatella. Kuten voit kuvitella, menetelmän kehittäminen vain mahdollisten lisäanturien saamiseksi jokaiselle puhelimelle jokaiselta tuotemerkiltä olisi uskomattoman työlästä. Ja sitten sinun on säilytettävä yhteensopivuus kaikkien nykyisten ja uusien puhelimien kanssa.
Nämä rajoitukset koskevat myös kameran ominaisuuksia. Muotokuvatilan, yönäkymän ja HDR+:n kaltaiset asiat tarvitsevat joko erityisiä laitekohtaisia menetelmiä käyttääkseen tai ne eivät ole kolmansien osapuolien sovellusten käytettävissä.
On selvää, että Instagramin kaltaiselle sovellukselle tämä ei ole liian iso juttu. Se ei ole heidän huomionsa, ja voit aina käyttää puhelimen kamerasovellusta ottaaksesi kuvan ensin. Mutta entä erilliset kamerasovellukset?
Tehosteet
Avaa Google Play Kauppa ja etsi sanalla "kamera". Löydät satoja tuloksia. Jopa ensimmäisen osapuolen kameraohjelmistojen parannuksista huolimatta kolmannen osapuolen kamerasovellukset ovat edelleen erittäin suosittuja. Jotkut pyrkivät tarjoamaan enemmän teknisiä ominaisuuksia, kuten manuaalista valotusta ja tarkennusta (ominaisuuksia, joita puhelimen kamerasovelluksessa ei välttämättä ole). Toiset pyrkivät tarjoamaan johdonmukaisen käyttökokemuksen kaikissa laitteissasi.
Erityisesti jälkimmäisestä syystä Androidin kameran pirstoutuminen voi tehdä laajasti yhteensopivan kamerasovelluksen kehittämisen ja ylläpidon uskomattoman vaikeaksi. Jos haluat tarjota lisäominaisuuksia, miten aiot sisällyttää kaikki mahdollisten ensimmäisen osapuolen sovellusten kaikki mahdolliset ominaisuudet? Jos etsit yhtenäistä kokemusta, kuinka voit realistisesti taata, että laajakulmasensorin käyttö kaikissa laitteissa, joissa se on, toimii?
Vastaus on: et voi. Voit yrittää tukea mahdollisimman monia ominaisuuksia mahdollisimman monessa laitteessa, mutta loppujen lopuksi se vaatii paljon työtä suhteellisen pienellä palkkiolla. Ei ole vaikea kuvitella, että ainakin muutama kehittäjä on yksinkertaisesti luopunut täysin varustetun kamerasovelluksen tekemisestä Androidille. Itse asiassa useilla on.
Uhrit
Etsi kamerasovelluksia Play Kaupasta. Huomaat muutaman asian. Yksi, siellä on a paljon vaihtoehdoista. Kaksi, useimmat heistä tekevät melko samanlaisia asioita (soveltavat suodattimia jälkikäteen ja niin edelleen). Kolmanneksi edistyneempiä vaihtoehtoja ei todennäköisesti päivitetä niin usein. Saatat jopa löytää Googlesta tuloksia, joita ei enää ole kaupassa.
Äskettäin olemme saaneet melko merkittävän esimerkin siitä, että joku lopettaa sen. Moment päätti lopettaa Androidin Pro Camera -sovelluksensa kehittämisen.
Momentin Pro Camera -sovelluksen tarkoituksena oli tuoda edistyneitä valokuva- ja videoominaisuuksia Androidiin. Nämä ovat vain muutamia niistä ominaisuuksista:
- RGB-histogrammit
- Jaettu tarkennus
- Valotuksen, ISO: n, suljinajan, valkotasapainon manuaalinen säätö
- Tarkennuksen huippu
- RAW-kaappaus
- Dynaamiset kuvanopeuden ja resoluution muutokset
Ongelmana on, että monet näistä ominaisuuksista eivät yksinkertaisesti toimi monissa laitteissa. Momentin ominaisuuksien yhteensopivuusluettelon katsominen on kuin katsoisi kuvaa tanssilattiasta. Jopa saman tuotelinjan sisällä ominaisuustuki on uskomattoman hajanaista. Kahden vuoden kehitystyön jälkeen Momentilla ei ole enää kykyä jatkaa sovelluksensa kehitystä.
Vihreä = Moment Pro -kameran tukema. Keltainen = laite tukee, mutta ei Moment Pro -kamerani. Punainen = laite ei tue. Kuvan lähde: Moment. Haettu kautta: 9to5Google.
Ratkaisu?
Androidin ensimmäisestä julkaisusta on kulunut melkein 12 vuotta, mutta voimme vihdoin löytää ratkaisun kameran pirstoutumiseen.
Tämä ratkaisu tulee suoraan Googlelta, vaikka sitä ei ole rakennettu suoraan Androidiin. Sen sijaan se on a Jetpackin tukikirjasto. Jos olet perehtynyt Android-sovellusten kehittämiseen, olet todennäköisesti törmännyt AppCompat- ja AndroidX-tukikirjastoihin. Näiden Googlen kirjastojen tarkoituksena on auttaa kehittäjiä ylläpitämään taaksepäin yhteensopivuutta vanhempien Android-versioiden kanssa samalla, kun ne voivat silti ottaa käyttöön uusia ominaisuuksia ja tyylejä.
Uudempi lisäys Jetpackiin (eräänlainen) on CameraX-kirjasto. Muiden Jetpack-kirjastojen tapaan CameraX: n tavoitteena on helpottaa kameran kehitystä. Perusmuodossaan CameraX kääri Androidin Kamera 2, API, jonka avulla sovellukset voivat tutkia laitteen kameran ominaisuuksia edellyttäen, että OEM paljastaa kyseiset kameran ominaisuudet API: lle. Käyttäjät voivat tarkistaa, mitkä kameran ominaisuudet näkyvät Camera2 API: lle käyttämällä Camera2 API Probe -sovellusta ja verrata niitä sitten varastokamerasovelluksen ominaisuuksiin.
Hinta: Ilmainen.
4.2.
CameraX: n käyttäminen Camera2 API: n kääreenä on se etu, että se ratkaisee sisäisesti mahdolliset laitekohtaiset yhteensopivuusongelmat. Pelkästään tämä on hyödyllistä kamerasovellusten kehittäjille, koska se voi vähentää vakiokoodia ja kamera-ongelmien tutkimiseen käytettyä aikaa. Se ei kuitenkaan ole kaikki, mitä CameraX voi tehdä.
Vaikka tämä ensimmäinen osa kiinnostaa enimmäkseen vain kehittäjiä, on toinen osa, joka koskee sekä kehittäjiä että loppukäyttäjiä: Toimittajan laajennukset. Tämä on Googlen vastaus kameran ominaisuuksien pirstoutumiseen Androidissa. Laitevalmistajat voivat halutessaan toimittaa puhelimiensa kanssa laajennuskirjastoja, joiden avulla CameraX (ja kehittäjät ja käyttäjät) voivat hyödyntää kameran alkuperäisiä ominaisuuksia. Oletetaan esimerkiksi, että pidät todella Samsungin Portrait Mode -tehosteesta, mutta et pidä itse kamerasovelluksesta. Jos Samsung päättää ottaa käyttöön CameraX Portrait Mode -laajennuksen puhelimiinsa, kaikki CameraX: ää käyttävät kolmannen osapuolen sovellukset voivat käyttää Samsungin muotokuvatilaa. Ilmeisesti tämä ei rajoitu vain tähän yhteen ominaisuuteen. Valmistajat voivat teoriassa avata mitä tahansa kameran ominaisuuksia CameraX-sovelluksille.
Valitettavasti on olemassa varoitus, jonka mainitsin aiemmin: tämä ei ole vaatimus valmistajille. Google sanoo ne tukevat laajennuksia kaikissa uusissa ja tulevissa Pixel-laitteissa Pixel 4:stä alkaen. OPPO sanoo he ovat avanneet kauneus- ja HDR-tilansa. Muut OEM-valmistajat voivat halutessaan asettaa vain yötilansa CameraX: n käyttöön tai ne voisivat olla ottamatta käyttöön mitään laajennuksia. Se on täysin valmistajasta kiinni, mikä laite tukee mitä CameraX-laajennuksia (jos sellaisia on). Google käytetään laiteluettelon ylläpitämiseen jotka tukevat Vendor Extensions -laajennuksia ja mitä kameran ominaisuuksia ne avasivat, mutta he eivät ole päivittäneet luetteloa useisiin viime kuukausiin. Otimme Googleen yhteyttä muutama viikko sitten ja kysyimme heiltä, voisiko he toimittaa päivitetyn luettelon, mutta yritys ei ole vielä vastannut luetteloa. Minkä arvoinen se on, a tuore Google-blogiviesti toteaa, että Samsungin, LG: n, OPPO: n, Xiaomin ja Motorolan laitteet (Android 10:ssä) tarjoavat jonkin verran laajennusta toimintoja, mutta blogikirjoituksessa ei kerrota tarkasti, mitä laitteita tuetaan tai mitä toimintoja ne toimivat tarjota.
Jos riittävä määrä valmistajia päättää ottaa käyttöön laajennuksia, Androidin kolmannen osapuolen kameranäkymästä tulee paljon kirkkaampi. Kehittäjien ei tarvitse tuhlata aikaa ottaakseen uudelleen käyttöön kameraominaisuuden jokaiselle laitteelle, koska CameraX: n kehys huolehtii siitä. Ominaisuuksien pirstoutuminen vähenee, koska samanlaiset ominaisuudet eri laitteissa ovat käytettävissä yhteisen käyttöliittymän kautta. Ja mahdollisuuksia on monia muitakin.
Tietenkin tämä kaikki riippuu Googlen kyvystä saada valmistajat ottamaan käyttöön CameraX Vendor Extension -kirjastoja jatkossa. Ellei CameraX ole laajalti toteutettu, se vain lisää nykyistä pirstoutumista. Henkilökohtaisesti olen kuitenkin toiveikas. Google voi olla erittäin vakuuttava, kun se haluaa olla, ja näyttää siltä, että CameraX vaatii paljon työtä. On jännittävää nähdä mahdollinen ratkaisu Androidin kamera-ongelmiin horisontissa, ja odotan innolla, kuinka CameraX paranee ja laajenee ajan myötä.
Mitä mieltä olet CameraX: stä? Onnistuuko Google luomaan yhtenäisen kamerakokemuksen Androidille?