CameraX ja sen todellinen vaikutus Android-mobiilivalokuvaukseen

  • CameraX on Jetpack-kirjasto, joka yksinkertaistaa kameran käyttöä ja tuo natiivisovelluksen edistyneitä ominaisuuksia kolmannen osapuolen sovelluksiin.
  • Camera2-rajapintaan verrattuna se tarjoaa käyttötapauksiin perustuvan korkean tason rajapinnan, joka on yhdenmukaisempi eri laitteiden välillä ja jolla on helppo pääsy laajennuksiin, kuten HDR, yötila tai bokeh.
  • Se parantaa merkittävästi tallennusta sovelluksissa, kuten sosiaalisessa mediassa tai viestien lähettämisessä, vaikka lopullinen laatu riippuu edelleen kunkin alustan käyttämästä pakkauksesta ja käsittelystä.
  • Sen kehitystyöhön kuuluvat HDR-video, samanaikaiset kamerat ja Ultra HDR -tuki, mikä vahvistaa laskennallisen valokuvauksen roolia Androidissa.

Esimerkki CameraX:n käytöstä sovelluksessa

Mobiilikuvaus Siitä on tullut useimpien käyttäjien ensisijainen tapa ottaa valokuvia. Jokainen Androidia käyttävä tietää kuitenkin, että kaikki valokuvat eivät näytä samalta: kuvaaminen natiivilla kamerasovelluksella ei ole sama asia kuin kuvaaminen Instagramilla, WhatsAppilla tai Snapchatilla. Tämä laatu-, terävyys- ja väriero on historiallisesti ollut yksi Androidin suurimmista heikkouksista verrattuna muihin käyttöjärjestelmiin.

Tämän kuilun pienentämiseksi Google loi KameraX, yhteensopivuuskirjasto, joka on suunniteltu siten, että kuka tahansa kehittäjä voi integroida samat ominaisuudet kuin alkuperäisessä kamerassa jokaisesta matkapuhelimesta ilman, että tarvitsee käsitellä satoja malleja, mukautuskerroksia ja laitteistovariaatioita.

Tässä artikkelissa näet Mikä on CameraX?, miten sen käyttötapauspohjainen lähestymistapa toimii, miten se eroaa Camera2-rajapinnasta, mikä on sen todellinen vaikutus kuvien laatu kolmannen osapuolen sovelluksissa ja miten se liittyy käsitteisiin, kuten laskennalliseen valokuvaukseen tai Ultra HDR -muotoon. Tarkastelemme myös sen kehitystä, rajoituksia ja sitä, miksi se, vaikka se on keskeinen osa, ei yksinään pysty ratkaisemaan kaikkia sosiaalisen median laatuongelmia.

CameraX ja sen vaikutus mobiilivalokuvaukseen

Mikä on CameraX?

KameraX Se on Jetpackiin sisältyvä Android-yhteensopivuuskirjasto, jonka Google on luonut Android-laitteille. yksinkertaistaa kameraa käyttävien sovellusten kehitystä mahdollisimman paljonSen päätavoitteena on vähentää käyttäytymisen ja laadun eroja kunkin valmistajan oman kamerasovelluksen ja kolmannen osapuolen sovellusten välillä, erityisesti niiden, joita käytämme jatkuvasti sosiaaliseen mediaan, viesteihin tai asiakirjojen skannaukseen.

Toisin kuin muut alemman tason API:t, kuten Camera2, CameraX toimii korkeammalla abstraktiotasolla ja tarjoaa kehittäjille Yhtenäinen ja helppokäyttöinen APIpiilottaen suuren osan laitteiden välisen yhteensopivuuden monimutkaisuudesta. Tämä antaa sovelluksille, kuten pankeille, sosiaalisille verkostoille, skannaussovelluksille tai kuvankäsittelysovelluksille, pääsyn edistyneet kameratilat (bokeh, HDR, yötila, kasvojen retusointi jne.) muutamalla koodirivillä sen sijaan, että kehitettäisiin räätälöityjä ratkaisuja jokaiselle mallille erikseen.

Google tiivistää CameraX:n seuraavasti: yhteensopivuuskirjasto Tämä antaa sovelluksille mahdollisuuden hyötyä samoista ominaisuuksista kuin laitteen oma kamerasovellus. Käytännössä tämä tarkoittaa, että monet aiemmin valmistajan kamerasovelluksen yksinoikeudella saatavilla olleet ominaisuudet (kuten tietyt muotokuvatilat tai kasvojenparannusalgoritmit) voivat nyt olla saatavilla myös laitteen omassa kamerasovelluksessa. Instagram, WhatsApp, Snapchat tai mikä tahansa muu sovellus joka päättää integroida CameraX:n ja sen laajennukset.

CameraX:n vaikutus kolmannen osapuolen sovelluksiin

Miten CameraX toimii?

Yksi CameraX:n keskeisistä ominaisuuksista on, että se perustuu Käytä koteloitaCameraX on konsepti, joka yksinkertaistaa kameran käyttöä. Sen sijaan, että kehittäjän pakotettaisiin säätämään kuvasuhdetta, suuntaa, esikatselun kokoa tai lopullista kuvan kokoa manuaalisesti, CameraX tarjoaa valmiita lohkoja yleisimpiin toimintoihin.

CameraX:n tärkeimmät käyttötapaukset ovat:

  • Esikatselu: Sen avulla voit näyttää reaaliajassa, mitä kamera tallentaa pinta tai käyttöliittymänäkymässä. CameraX käsittelee automaattisesti monimutkaisia ​​ongelmia, kuten kuvasuhteen, laitteen sijainnin mukaisen kierron ja näytön koon mukautumisen.
  • Kuvanotto: hallinnoi valokuvien ottaminen ja tallentaminen korkealla laadulla. Säädä parametreja, kuten resoluutiota, tulostusmuotoa tai tarkennusta, ja voit hyödyntää mobiililaitteen kuvaprosessorin edistyneitä ominaisuuksia parempien tulosten saavuttamiseksi ilman, että kehittäjän tarvitsee hienosäätää jokaista yksityiskohtaa.
  • Videon tallennus (VideoCapture): Se tukee videotallennusta, mukaan lukien HDR video laitteilla, jotka tukevat sitä. Se käsittelee koodauksen, bittinopeuden, kuvataajuuden ja muut parametrit, mikä vapauttaa kehittäjän joutumasta käsittelemään antureiden tai valmistajien välisiä eroja.
  • Kuvaanalyysi (ImageAnalysis): sallii pääsyn raakakehysvirtaan reaaliaikainen käsittely, konenäköalgoritmeja tai koneoppimismalleja (esim. QR-koodinlukijoita, tekstintunnistusjärjestelmiä tai objektilaskureita).

Nämä käyttötapaukset voivat yhdistää ja linkittää elinkaareen komponentin (kuten aktiviteetin tai fragmentin) funktion, jotta CameraX ohjaa automaattisesti kameran avaamista ja sulkemista estäen resurssivuodot tai anturin lukkiutumisen. Esimerkiksi on mahdollista näyttää esikatselu reaaliaikaisen analyysin aikana ja samalla sallia valokuvien ottaminen, kun käyttäjä painaa laukaisinta.

Lisäksi CameraX sisältää valinnaisen API:n, jolla kameralaajennuksetSen kautta kehittäjä voi aktivoida valmistajan alkuperäisessä kamerassaan toteuttamia lisäominaisuuksia, kuten:

  • Bokeh- tai muotokuvatila: taustan sumentaminen kohteen korostamiseksi.
  • High Dynamic Range (HDR): Parempi valon ja varjojen käsittely, yksityiskohtien säilyttäminen monimutkaisilla alueilla.
  • Yötila: Heikossa valaistuksessa otettujen kohtausten optimointi useiden kuvien yhdistämällä.
  • Kasvojen retusointi: ihon, silmien tai sävyjen hienovaraisia ​​säätöjä miellyttävämpien muotokuvien luomiseksi.

Kaikki tämä aktivoidaan hyvin muutamalla koodirivillä, koska CameraX vastaa käännöksestä nämä yleiset pyynnöt kunkin valmistajan erityistoimintoihin, kun ne ovat saatavilla.

Erot CameraX:n ja Camera2 API:n välillä

Ennen CameraX:ää suositeltu tapa käyttää kameraa Androidilla oli Camera2-sovellusliittymäTämä käyttöliittymä, joka on ollut saatavilla järjestelmän vanhemmista versioista lähtien, on suunniteltu mahdollistamaan kehittäjien pääsyn edistyneet kameran säätimetmanuaalitarkennus, valotus, valkotasapaino, RAW-kuvaus, muiden muassa.

Camera2 järjestää jokaisen laitteen ominaisuudet useille tasoille (Legacy, Limited, Full ja Level 3), ja laitteiston tukemasta tasosta riippuen sovellus voi tai ei voi käyttää tiettyjä edistyneitä ominaisuuksia. Tämä tarjosi valtavaa joustavuutta, mutta se tarkoitti myös korkea toteutuksen monimutkaisuusvarsinkin jos tavoitteena oli tukea useita eri malleja.

Suurin ero on, että Camera2 on suunniteltu kerrokseksi matalan tason hienosäätöön suuntautunutkun taas CameraX toimii kerroksena korkea taso, joka toimii siltana valmistajan oman kameran ja kolmannen osapuolen sovellusten välillä. Joitakin tämän eron keskeisiä näkökohtia ovat:

  • Abstraktio ja yksinkertaisuus: CameraX vähentää merkittävästi tarvittavan koodin määrää. Monet toiminnot, jotka vaativat kymmeniä tai satoja rivejä Camera2:ssa, ratkaistaan ​​CameraX:ssä vain muutamalla hyvin määritellyllä kutsulla.
  • Laitteiden välinen yhteenkuuluvuus: CameraX on suunniteltu tarjoamaan johdonmukainen käyttäytyminen eri mobiililaitteilla. Google ylläpitää automatisoitua testauslaboratoriota, joka suorittaa CameraX-testejä useilla eri laitteilla ja Android-versioilla yhteensopivuusongelmien havaitsemiseksi ja korjaamiseksi.
  • Keskity käyttötapauksiin: Vaikka Camera2 edellyttää kehittäjältä työnkulkujen, kuvakaappausten ja asetusten suoraa hallintaa, CameraX keskittyy käyttötapauksiin (Preview, ImageCapture, VideoCapture, ImageAnalysis), jotka heijastavat paremmin sovellusten todellisia tarpeita.
  • Integrointi valmistajan laajennusten kanssa: CameraX sisältää API:n extensiones mikä helpottaa samojen toimintojen käyttöä kuin natiivi kamerasovellus, mikä Camera2:ssa yleensä edellyttää mukautettuja tai epästandardeja integraatioita.

Camera2 on kuitenkin edelleen hyödyllinen kehityshankkeissa, jotka vaativat ammatillinen valvonta tai erittäin erityisiä ominaisuuksia, kun taas CameraX:ää suositellaan erityisesti sovelluksille, jotka etsivät tasapainoa laadun, yksinkertaisuuden ja yhteensopivuuden välillä.

Ratkaiseeko CameraX kolmannen osapuolen sovellusten laatuongelman?

Yleinen kysymys käyttäjien keskuudessa on, onko CameraX... lopullinen ratkaisu Klassinen ongelma, jossa Androidista someen ladatut kuvat ja videot näyttävät huonommilta kuin muilla järjestelmillä, on eri asia. Todellisuus on vivahteikkaampi: CameraX Se parantaa huomattavasti kameran toimintojen käyttöämutta se ei hallitse koko prosessia, ennen kuin kuva saapuu sosiaaliseen verkostoon.

Toisaalta CameraX sallii kolmannen osapuolen sovellusten tallentaa parhaat HDR-, yö-, bokeh- tai Ultra HDR -algoritmit kun laitteisto sitä tukee. Se myös hyödyntää laitteen kuvankäsittelyohjelmaa paremmin ja vähentää eroja alkuperäiseen kamerasovellukseen verrattuna. Tämä itsessään on jo merkittävä harppaus eteenpäin jokapäiväisessä valokuvauskokemuksessa.

Instagramissa, WhatsAppissa tai missä tahansa sosiaalisessa mediassa näkemäsi lopullinen laatu riippuu kuitenkin myös muista keskeisistä tekijöistä:

  • Sovelluksen käyttämä pakkaus: Monet alustat pienentävät kuvien ja videoiden kokoa aggressiivisesti säästääkseen dataa ja nopeuttaakseen latausta. Tämä pakkaus voi tuhota osan CameraX:n tallentamista yksityiskohdista.
  • Sisäiset prosessointialgoritmit: Jokainen sovellus voi käyttää omia suodattimiaan, skaalausta ja säätöjä ennen kuvan lataamista, mikä vaikuttaa lopputulokseen.
  • Järjestelmien toteutuserot: Sama sovellus ei aina toimi samalla tavalla kaikissa käyttöjärjestelmissä. Androidilla laitteiden valtava määrä pakottaa sovellukset käyttämään yleisempiä strategioita, jotka monissa tapauksissa heikentävät laatua.

Siksi, vaikka CameraX Se helpottaa sovellusten täydellisyyttä valokuvaustoimintojen suhteen.Se ei täysin poista pakkaus-, skaalaus- tai latausstrategiaongelmia, joita kukin alusta päättää toteuttaa. Toisin sanoen CameraX on erittäin tärkeä askel kohti kolmannen osapuolen sovelluksilla otettujen kuvien parantamista, mutta Lopullinen laatu riippuu edelleen siitä, mitä kukin kehittäjä tekee sisällöllä..

CameraX:n edut käyttäjille

Niille, jotka haluavat vain ottaa valokuvia ja videoita ilman komplikaatioita, CameraX:n käyttöönotto suosituissa sovelluksissa tarkoittaa useita... suorat hyödyt Päivittäin.

Ensinnäkin sovellukset voivat hyödyntää sama kuvankäsittelytekniikka Puhelimen oma kamerasovellus käyttää algoritmeja kohinanvaimennukseen, yksityiskohtien parantamiseen, kontrastin ja värien hallintaan sekä erityistiloja yökuvaukseen, muotokuviin ja maisemiin. Tämä vähentää tunnetta, että puhelimen kamerasovellus on "ainoa, joka ottaa hyviä kuvia".

Toiseksi, CameraX:n avulla voit ottaa kuvia suurempi dynaaminen alue Tässä kohtaa HDR- ja Ultra HDR -tuki tulevat mukaan kuvaan. Tämä tarkoittaa kohtauksia, joissa on voimakkaita kirkkaita kohtia ja syviä varjoja, joissa yksityiskohdat säilyvät paremmin, mikä on erittäin arvostettua nykyaikaisessa mobiilivalokuvauksessa.

Lisäksi tukea HDR-video ja samanaikaiset kamerat Se avaa oven uusille kokemuksille, kuten etu- ja takakameralla samanaikaisesti tallentamiseen tai videoiden tallentamiseen rikkaammalla ja kirkkaammalla väritoistolla, edellyttäen, että näyttö ja katselusovellus ovat yhteensopivia.

Lopuksi, kameran yhdenmukainen toiminta eri sovelluksissa vähentää turhautumista: vähemmän kameran kaatumisia, jumiutumisia, suuntaongelmia ja vääristyneitä esikatseluja. Kaikki tämä on mahdollista, koska Google testaa CameraX:n automaattisesti useilla laitteilla ja tunnistaa sekä korjaa yhteensopivuusvirheet.

Kuinka ottaa CameraX käyttöön sovelluksessa

Kehittäjille, jotka haluavat integroida CameraX:n, perusohje perustuu muutamaan hyvin määriteltyyn vaiheeseen ilman, että tarvitsee mennä Camera2:n monimutkaisempiin yksityiskohtiin.

  1. Lisää projektiin riippuvuuksia: arkistossa build.gradle Riippuvuudet CameraX-ydin, elinkaari ja tarvittavien käyttötapausten erityismoduulit (Preview, ImageCapture, VideoCapture, ImageAnalysis, Extensions).
  2. Aseta käyttöoikeudet: Sovelluksen on pyydettävä ja hallittava kameran käyttöoikeuksia ja, jos videota tallennetaan äänen kanssa, myös äänen tallennusoikeuksia. CameraX integroituu hyvin ajonaikaisten käyttöoikeusrajapintojen (API) kanssa.
  3. Valitse tarvittavat käyttötapaukset: Määritellään, käyttääkö sovellus vain esikatseluja vai myös valokuvien ottamista, videoiden tallennusta tai kuva-analyysiä. Tämä valinta tehdään sovelluksen tyypin perusteella: sosiaalinen media, pankkitoiminta, asiakirjojen luku, viivakoodien skannaus jne.
  4. Kameran yhdistäminen elinkaareen: AndroidX Lifecycle -komponentteja käytetään, jotta CameraX tietää, milloin kameran työnkulku on aloitettava tai lopetettava toiminnon tai fragmentin tilan perusteella, estäen muistivuotoja ja kaatumisia näyttöä käännettäessä tai sovelluksesta poistuttaessa.

Kiitos modulaarinen muotoiluCameraX antaa kehittäjille mahdollisuuden keskittyä siihen, mitä heidän sovelluksensa tarvitsee tehdä (esim. skannata asiakirja, ottaa selfie, tallentaa lyhyt video) sen sijaan, että heidän tarvitsisi painida kunkin laitteen sisäisten yksityiskohtien kanssa. Monissa tapauksissa se on Suositeltu vaihtoehto uusille sovelluksille joiden on käytettävä kameraa luotettavasti monenlaisissa matkapuhelimissa.

Mitä laitteita CameraX tukee?

CameraX on suunniteltu toimimaan laitteet, joissa on Android 5.0 (API-taso 21) tai uudemmat versiotTämä tarjoaa erittäin laajan kattavuuden Android-mobiililaitemarkkinoista, mikä tekee siitä erittäin houkuttelevan ratkaisun kehittäjille, jotka haluavat tavoittaa mahdollisimman paljon käyttäjiä.

Tiettyjen lisäominaisuuksien saatavuus riippuu kuitenkin aina tietty laitteisto Ominaisuudet, kuten HDR, yökuvaustila, edistynyt bokeh ja 10-bittinen tallennus, edellyttävät yhteensopivia kuvakennoja ja -prosessoreita. Kirjasto tunnistaa käytettävissä olevat ominaisuudet ja säätää toimintaa virheiden tai epäjohdonmukaisten kokemusten estämiseksi.

Google ylläpitää automatisoitu testauslaboratorio CameraX:lle, joka arvioi sen suorituskykyä eri laitteilla, tuotemerkeillä ja Android-versioilla. Tämä auttaa varmistamaan, että alustan luontaisesta pirstaloittuneisuudesta huolimatta kameran peruskäyttäytyminen pysyy vakaana ja ennustettavana eri terminaalien välillä.

CameraX:n kehitys: uudet ominaisuudet ja tuki Ultra HDR:lle

CameraX ei ole staattinen kirjasto; Google päivittää sitä säännöllisesti uusien ominaisuuksien lisäämiseksi. uusia laskennallisen valokuvauksen ominaisuuksia ja parantaa sen integrointia Android-ekosysteemiin. Esimerkiksi versio 1.3 Se toi mukanaan tuen samanaikaisille kameroille, HDR-videotallennukselle ja useammille reaaliaikaisille tehosteille; siitä lähtien Google on jatkanut ominaisuuksiensa laajentamista, mukaan lukien tuen muodoille, kuten Ultra HDR.

Viimeisimpiin versioihin sisällytetyistä parannuksista seuraavat erottuvat:

  • Tuki samanaikaisille kameroille: Mahdollisuus käyttää kahta kameraa samanaikaisesti yhteensopivilla laitteilla, kuten etu- ja takakameraa tai kahta takakameraa eri objektiiveilla. Tämä mahdollistaa luovempia tallennuskokemuksia, kuten reaaliaikaiset reaktiot tai sujuvat kohtauksenvaihdot.
  • HDR-videotallennus: kyky tallentaa videota laajemmalla dynaamisella alueella, mikä tarjoaa enemmän yksityiskohtia kirkkaissa ja varjoissa sekä rikkaamman väripaletin yhdessä yhteensopivien näyttöjen kanssa.
  • Lisää reaaliaikaisia ​​tehosteita: Kuva-analyysiprosessin parannuksia, jotka helpottavat sumennusten, värien säätöjen tai luovien suodattimien käyttöä tallennuksen aikana ilman raskasta ulkoista prosessointia.
  • Ultra HDR -kuvan yhteensopivuus: Ultra HDR -formaatin asteittainen integrointi mahdollistaa kuvien ottamisen laajemmalla kirkkausalueella ja eloisammilla väreillä, tuoden tuloksen lähemmäksi sitä, miten ihmissilmä havaitsee kohtauksen.

El Ultra HDR -muoto Se on yksi jännittävimmistä viimeaikaisista edistysaskeleista mobiilivalokuvauksessa. Vaikka monet kamerat käyttivät jo HDR-tekniikoita ohjelmistotasolla, lopputulos oli silti tavallinen (SDR) kuva. Ultra HDR:n avulla kuviin lisätään kirkkaus- ja väritietoja, jotka yhteensopivilla näytöillä muuntuvat realistisemmiksi ja syvällisemmiksi kuviksi.

CameraX:llä on tässä tärkeä rooli, koska se on keino, joka mahdollistaa mikä tahansa sovellus voivat hyödyntää tätä muotoa, ei vain rajoittumalla valmistajan kamerasovellukseen. Tämä hyödyttää paitsi sosiaalisia verkostoja ja viestisovelluksia, myös muita kamera-, muokkaus- tai sisällöntallennussovelluksia, jotka haluavat tarjota rikkaampi visuaalinen kokemus.

CameraX:n Ultra HDR -tuki auttaa Androidia ylläpitämään mobiilivalokuvauksen nopeaa innovaatiota ja yhdenmukaistamaan laitteiston potentiaalin sovellusten käyttäjille helposti tarjoamien ominaisuuksien kanssa.

Kaiken kaikkiaan CameraX on vakiinnuttanut asemansa yhtenä Keskeiset työkalut mobiilivalokuvauksen nykyhetkeen ja tulevaisuuteen AndroidillaSen kyky tuoda edistyneitä natiiveja kameraominaisuuksia kolmannen osapuolen sovelluksiin, vähentää pirstoutumista ja helpottaa teknologioiden, kuten Ultra HDR:n ja HDR-videon, käyttöönottoa tarkoittaa, että yhä useammat kehittäjät valitsevat tämän kirjaston korkealaatuisten visuaalisten kokemusten luomiseen. Käyttäjille tämä tarkoittaa viimeistellympiä ja yhdenmukaisempia valokuvia ja videoita, jotka hyödyntävät paremmin heidän älypuhelimensa potentiaalia riippumatta siitä, mitä sovellusta he käyttävät.