
Viimastel aastatel on Android failihalduse ja süsteemi turvalisuse osas dramaatiliselt arenenud. Üks kõige vähem selgitatud – kuid nõuetekohase salvestusruumi ja kasutaja privaatsuse jaoks ülioluline – element on tuntud MediaProvideri moodul . Kui olete kunagi mõelnud, mis see komponent on, miks see mõnikord süsteemisõnumites kuvatakse, milliseid täiustusi see iga Androidi versiooniga kaasa toob või kuidas see teie telefoni mõjutab, siis me selgitame seda siin üksikasjalikult.
Telefoni seadetes navigeerides, salvestusruumi kasutust kontrollides või tehnilisi foorumeid sirvides on lihtne kohata nime MediaProvider, kuid enamik inimesi pole päris kindlad, mida see teeb või miks on see oluline selliste rakenduste nagu fotogaleriid, muusikapleierid ja failihaldurid sujuvaks toimimiseks . Vaatame lähemalt, et oleksite täielikult teadlik selle rollist oma igapäevases Androidi kogemuses, olenemata sellest, kas soovite lihtsalt oma telefoni paremini mõista või luua kohandatud rakendusi või ROM-e.
Mis on MediaProvider ja milline on selle funktsioon Androidis?
El Meediapakkuja moodul See on üks Androidi süsteemi sisemistest komponentidest, mis vastutab hallata, indekseerida ja pakkuda juurdepääsu multimeediafailidele näiteks fotosid, videoid ja muusikat, mis on salvestatud nii sisemällu kui ka välistele seadmetele (SD-kaardid, USB-draivid jne). See pole tavaline rakendus, vaid Süsteemi sisupakkuja mis tugineb avalikule andmebaasile MediaStore et teised rakendused saaksid multimeediasisule kiiresti ja turvaliselt juurde pääseda.
Selle peamine ülesanne on failide analüüsimine, nende metaandmete eraldamine ja optimeeritud tabelites indekseerimine . Need metaandmed sisaldavad selliseid elemente nagu failitüüp, video või heli kestus, pildi eraldusvõime, jäädvustamise kuupäev, suurus, salvestuskoht ja mõnel juhul ka fotode täiustatud EXIF-andmed .
Tänu sellele moodulile saavad rakendused kuvada kogu teie teeki ilma, et peaksite käsitsi kogu kaustapuud skannima . Näiteks fotogalerii ei pea iga kataloogi skannima: see saadab päringu MediaStore'ile ja millisekundites saab kõigi piltide lehekülgede kaupa loendi, mis on vastavalt vajadusele sorteeritud ja filtreeritud. See parandab oluliselt jõudlust ja aku tööiga võrreldes otsese failisüsteemi skannimisega.
MediaProvider integreerub ka ulatuspõhise salvestusmudeliga . Praktikas tähendab see, et moodul jõustab turvareegleid , et kontrollida, millised rakendused saavad teatud faile vaadata ja muuta. Näiteks peidab või eemaldab see tundlikke metaandmeid , näiteks foto tegemise täpse asukoha, kui rakendus seda teavet ei vaja või tal pole vajalikke õigusi.
Teine oluline aspekt on see, et MediaProvider on osa nn Mainline'i moodulitest (või süsteemi poolt uuendatavatest moodulitest), mis võimaldab Google'il ja tootjatel seda Google Play kaudu iseseisvalt uuendada . Nii parandatakse turvaauke, lisatakse ühilduvus uute failivormingutega ja täiustatakse funktsioone ilma täielikku süsteemiuuendust ootamata.
Kuidas MediaProvider teie igapäevaelu mõjutab
Kuigi te seda ei näe, töötab MediaProvider pidevalt taustal. Mõned selged näited selle kohta, kuidas see teie igapäevast kogemust mõjutab, on järgmised:
- Galerii kiire avamine: Fotode rakenduse avamisel esitab see päringu MediaStore'ile ja tänu mooduli eelnevale indekseerimisele saab teie pilte peaaegu koheselt kuvada.
- Otsib kuupäeva, tüübi või albumi järgi: Paljud galeriid võimaldavad filtreerida videote, selfide, ekraanipiltide või konkreetsete kuupäevade järgi. Kogu see teave pärineb MediaProvideri hallatavad metaandmed.
- Muusika- ja taskuhäälingusaadete mängijad: Esitaja, albumi, žanri või esitusloendite järgi koostatud loendid põhinevad andmetel, mille MediaProvider on helifailidest kogunud ja normaliseerinud.
- Sõnumid ja sotsiaalmeedia rakendused: Kui jagate fotot WhatsAppist, Telegramist või Instagramist pildivalija abil, on need tegelikult MediaStore'i kataloogi lugemine ja filtreerimine taotletud sisu tüübi järgi.
- Failihaldurid: Mõned brauserid kasutavad MediaStore'i päringuid kogu multimeedia kiireks loetlemiseks, selle asemel, et käsitsi tuhandeid kaustu ja faile sirvida.
Isegi vähem nähtavad ülesanded, näiteks kaameraga tehtud foto ilmumine galeriisse või pilve sekunditega, koordineeritakse tavaliselt MediaProvideriga, mis vastutab uue üksuse registreerimise, selle metaandmete hankimise ja huvitatud rakenduste teavitamise eest muudatustest.
MediaProvideri areng: Android 10-st Android 11-ni ja edasi

MediaProvideri arengus algas suur hüpe ulatusliku salvestusruumi tulekuga Android 10-sse. Sellest hetkest alates korraldas süsteem ümber meediafailide tuvastamise ja rakendustele nähtavuse, sundides MediaProviderit muutuma palju nutikamaks ja turvalisemaks.
Muudatused, mis on tehtud alates Android 10-st
Sellest versioonist alates on Android teinud mitmeid olulisi täiustusi, mis on seotud multimeediafailidest andmete tuvastamise ja ekstraheerimisega :
- Süsteem määrab kindlaks faili sisutüüp, kasutades MIME tüübi esimest osaNäiteks teab ta, et
image/pngyimage/x-newly-invented-formatNad on mõlemad pilditüübidSee võimaldab kasutaja õigusi ja nendega seotud käitumist paremini kirjeldada. - Turvalisuse parandamiseks tuleta MIME tüüp ainult laiendist failist, vältides sisu tuvastamise tehnikaid, mis võivad avada haavatavusi.
- MIME määramine põhineb a-l Debian Linuxi ja Androidi enda definitsioonidelt päritud tabelite kombinatsioonSee tagab ebatavaliste vormingute palju usaldusväärsema ja järjepidevama tuvastamise.
- MediaProvider delegeerib täiustatud metaandmete hankimise spetsiaalsetele tööriistadele:
MediaMetadataRetrieverfailide jaoksvideo/*yaudio/*, JaExifInterfacefailide jaoksimage/*, saades seega kestus, bitikiirus, eraldusvõime, suund, kaamera teave ja muud kasulikku teavet.
See muudatuste komplekt võimaldas rakendustel saada usaldusväärsemaid ja standardiseeritumaid metaandmeid , tugevdades samal ajal turvameetmeid ja pannes aluse tänapäevastele täiustatud juurdepääsuõigustele.
Alates Android 11-st on tehtud täiustusi
Android 11-ga ehitas MediaProvider neile alustele edasi ja astus edasi rakenduste sisu korraldamise, jõudluse ja võimaluste osas :
- Tehti indekseerimise põhjalikud parandused failidest ja metaandmetest. Nüüd sobitab moodul saadaolevad metaandmed MediaStore'i API-de pakutavaga, viies sisemiselt salvestatu paremini vastavusse sellega, mida rakendused päringuid teha saavad.
- Andmebaasi lisati uusi veerge, näiteks
is_favoriteja konsultatsiooni argumentQUERY_ARG_MATCH_FAVORITESee võimaldab galeriitüüpi rakendusi Lemmikuteks märgitud sisu kiire filtreerimine kasutaja poolt. - MediaProvider hakkas indeksi värviruumi metaandmedHDR-sisu käsitlemiseks, elutruumate fotode esitamiseks ja täpsemaks esituseks täiustatud ekraanidel on see ülioluline.
- Veerg tutvustati
is_trashedja argumentQUERY_ARG_MATCH_TRASHEDet selgelt eristada faile, mis asuvad prügikastvõimaldades galeriidel seda prügikasti natiivselt hallata. - Nad ilmusid Uued API-d hulgitoimingute jaoks mitme elemendi puhul ühe kasutaja kinnitusdialoogi abil, sealhulgas:
createDeleteRequest()mitme faili korraga kustutamiseks.createFavoriteRequest()mitme lemmiku märkimiseks või märgistuse eemaldamiseks ühe toiminguga.createTrashRequest()failide partiide otse prügikasti saatmiseks.createWriteRequest()mitme üksuse kirjutamisõiguste taotlemiseks.
- Lisati uusi veerge, näiteks
GENERATION_ADDEDyGENERATION_MODIFIEDmis lubavad rakendusi kiiresti tuvastada, mis on eelmisest sünkroonimisest saadik muutunud. ilma et peaks kogu teeki uuesti skannima. - Üks lisati Avalik API
GROUP BYmis võimaldab teil tulemusi grupeerida albumi, kuupäeva või muude metaandmete järgi ilma rakenduses keerukat järeltöötlust tegemata. - See oli täiustatud
ExifInterfacepara Metaandmete ekstraheerimine PNG- ja WebP-konteineritest, laiendades täiustatud viisil töödeldavate pildivormingute arvu. - SystemUI alustas metaandmete kirjutamist
DateTimeOriginalekraanipiltidel, et MediaProvider saaks seda tüüpi piltide paremaks korraldamiseks ja kuvamiseks galeriide sees.
Arhitektuuri osas migreeriti MediaProvider APK-in-APEX- vormingusse . See tähendab, et Java-kood on pakitud APK-na süsteemitaseme APEX-konteinerisse. Eeliseks on see, et moodulit saab laadida väga varakult alglaadimisprotsessis , isegi enne paljusid raamistiku osi, ning samal ajal saab seda kiiresti uuendada Google Play kaudu.
MediaProvider ja Mainline moodulid: eraldiseisvad värskendused Androidis

Üks Google'i peamisi strateegiaid killustatuse vastu võitlemiseks ja turvalisemate seadmete pakkumiseks on Mainline'i moodulite loomine . Need on süsteemikomponendid, mida saab Google Playst sõltumatult uuendada ilma tootja otsese sekkumiseta või täieliku OTA-värskenduse installimise vajaduseta.
Nende moodulite hulka kuuluvad MediaProvider, aga ka teised, näiteks ART (rakenduse käituskeskkond), Conscrypt (krüptograafiline teek), Media , Media Codecs , Wi-Fi , Tethering ja paljud teised. Koos võimaldavad need Androidil parandada kriitilisi vigu, parandada jõudlust ja lisada funktsioone, ilma et see oleks täielikult sõltuv iga tootja väljalaskegraafikust.
Oluline on selgitada, et kuigi modulaarset arhitektuuri hakati kasutusele võtma Android 10-ga, sai MediaProvider Mainline'i värskendustest kasu alates Android 11-st. Tänu sellele saab Google turvaaukude, uute multimeediavormingutega ühildumatuse või indekseerimise jõudlusprobleemi tuvastamisel selle parandada ja värskenduse välja anda nagu iga teise Google Play rakenduse. Nii jääb teie telefon turvalisemaks ja järjepidevamaks ülejäänud ökosüsteemiga, isegi kui teie tootja ei ole uute Androidi versioonide avaldamisega eriti kiire.
Millised on veel Mainline'i moodulid ja kuidas MediaProvider nendega seotud on?

MediaProvider on vaid üks paljudest Mainline'i moodulitest, mis on loodud süsteemi modulaarsemaks, turvalisemaks ja hõlpsamini uuendatavaks muutmiseks. Mõned olulisemad, eriti multimeedia ja võrgukogemusega seotud, on järgmised:
- Meedia: See tegeleb multimeediafailide töötlemisega mobiilseadmes, sealhulgas taasesituse, jäädvustamise ja voogesituse haldamise teenustega.
- Meediakoodekid: See hoiab heli- ja videokoodekid ajakohasena, võimaldades paremat ühilduvust ja turvalisust dekodeerimisel ja kodeerimisel ilma kogu süsteemi puutumata.
- KUNST: See haldab rakenduse käituskeskkonda (kompileerimine, baitkoodi optimeerimine jne). Selle mooduli täiustused mõjutavad otseselt rakenduse jõudlus.
- Konskrüpt: See uuendab süsteemi krüptograafilist osa, mis on turvaliste ühenduste, sertifikaatide ja krüptimise jaoks ülioluline.
- WiFi: See sisaldab WiFi-ühenduvuse loogikat, mis võimaldab rakendada järgmist: Stabiilsuse, ühilduvuse ja turvalisuse täiustused ilma täieliku OTA-ta.
- Sidumine: Juhtige WiFi-, USB-, Bluetooth- või Etherneti-ühenduste jagamist oma mobiilseadme kaudu.
- Lubade kontroller: Värskenda moodulit, mis haldab kasutajate õigusi ja privaatsusliidese elemente.
MediaProvider teeb tihedat koostööd meedia- ja meediakoodekite moodulitega , kuna viimased vastutavad MediaProvideri indekseeritud sisu dekodeerimise ja töötlemise eest. Uute vormingute ilmumisel või olemasolevate koodekite värskendamisel saab MediaProvider hakata neid uuemaid vorminguid (näiteks uusi HEVC variante, HDR-i või helikoodekeid) ära tundma ja kataloogima ilma täieliku Androidi värskenduseta, eeldusel, et ka teised meediamoodulid on värskendatud.
Selleks, et teada saada, milliseid Mainline'i mooduleid teie telefon toetab, saate kasutada selliseid tööriistu nagu tasuta rakendus Mainline Updater , mis näitab, millised moodulid on saadaval ja viib teid ühe nupuga Google Play süsteemivärskenduste jaotisse . Seal näete, kas on ootel parandusi, mis mõjutavad muu hulgas MediaProviderit.
Meediapakkuja, privaatsus ja salvestusruumi turvalisus

Üks suurimaid MediaProvideriga seotud viimase aja edusamme on kasutajate privaatsuse kaitse . Varem said paljud rakendused juurde pääseda tervetele kaustadele välisel salvestusruumil ja lugeda väga üksikasjalikke metaandmeid – sealhulgas fotodele manustatud GPS-asukohta – ilma süsteemi peenhäälestuseta.
Mahuka salvestusruumi + MediaProvideri + MediaStore'i kombinatsiooniga on asjad muutunud:
- Rakendustel on piiratud juurdepääs fotodele, videotele ja helile. Näiteks saab fototöötlusrakendus juurde pääseda kasutaja valitud konkreetsele pildile fotovalijaaga mitte ülejäänud galeriid.
- Meediapakkuja saab tundlike metaandmete redigeerimine või piiramine, näiteks jäädvustamise täpne asukoht või sisemise kaamera teave, kui rakendus neid andmeid ei vaja.
- Lubasid tuleb juurde granuleeritud ja läbipaistevAsi pole enam salvestusruumile täieliku juurdepääsu lubamises või keelamises, vaid juurdepääsu andmises teatud tüüpi sisu (pildid, videod, heli) või isegi kasutaja valitud failid.
- Tugevdatud on kaitset pahatahtlike rakenduste eest, mis üritavad salvestusruumi privaatsete dokumentide või tundliku sisu otsimiseks skannida. MediaProvider toimib järgmiselt: filter ja kohtunik sellest, mida saab näha või muuta.
Kõik see on ühendatud täiustatud kogemuste võimalustega, nagu näiteks uusim fotovalija ja pilvepõhised meediasisu pakkujad , mille andmevoos on osa ka MediaProvider.
API-d ja kasutusnäited: kuidas rakendused MediaProvideriga suhtlevad

Kasutajarakendused ei suhtle otse MediaProvideriga, vaid pigem MediaStore'i kaudu , mis on avalik API, mis toimib liidesena. See API pakub täielikku kavatsuste, konstantide ja päringumeetodite ökosüsteemi meediafailidele standardiseeritud viisil juurdepääsuks.
Sisu jäädvustamise ja valimise katsed
MediaStore'i (ja laiemalt ka MediaProvideri) ärakasutamise silmapaistvamate kavatsuste hulgas on:
MediaStore.ACTION_IMAGE_CAPTURE: See võimaldab teil kaamera käivitada pildi jäädvustamiseks ja selle tagasi helistaja rakendusse suunamiseks.MediaStore.ACTION_IMAGE_CAPTURE_SECURE: Sarnane eelmisele, aga mõeldud keskkondadele, kus seade on kaitstud (PIN-kood, muster, biomeetria) ja tuleb säilitada turvaline kontekst.MediaStore.ACTION_VIDEO_CAPTURE: Käivitage kaamera videorežiimis ja tagastage tulemus helistajarakendusele.MediaStore.ACTION_PICK_IMAGES: avage fotovalija kaasaegne Android, mis pakub ühtset kogemust piltide ja videote valimiseks erinevatest allikatest (kohalik salvestusruum, pilv jne).MediaStore.ACTION_PICK_IMAGES_SETTINGS: See viib fotovalija ja meediateenuse pakkujatega seotud säteteni.MediaStore.ACTION_REVIEWyMediaStore.ACTION_REVIEW_SECURE: Need võimaldavad teil äsja jäädvustatud multimeediasisu kontrollitud kontekstis üle vaadata või eelvaadata.
Lisaks neile kavatsustele määratleb MediaStore pika nimekirja lisadest ja konstantidest , mida MediaProvider arvestab ja kasutab konkreetsete reeglite rakendamiseks. Mõned näited:
EXTRA_DURATION_LIMIT: Video salvestamisel lubatud maksimaalne salvestusaeg.EXTRA_SIZE_LIMIT: maksimaalne väljundfaili suurus.EXTRA_OUTPUT: URI, kuhu saadud pilt või video salvestatakse.EXTRA_PICK_IMAGES_MAX: Kasutaja saab selektori seansi jooksul valida maksimaalselt üksuste arvu.
Täpsemad päringud MediaStore'ile
Rakendused, mis peavad lugema meediateeki, kasutavad MediaStore'ile päringuid erinevate argumentide ja filtritega. Mõned MediaProvider MediaStore'i kaudu pakutavad funktsioonid on järgmised:
- Filtreeritud lemmikute ja prügikasti järgi: argumentide kasutamine
QUERY_ARG_MATCH_FAVORITEyQUERY_ARG_MATCH_TRASHED, rakendused saavad ainult lemmikuteks märgitud üksused või need, mis prügikastis on. - Järkjärgulise muutuse tuvastamine: veerud nagu
GENERATION_ADDEDyGENERATION_MODIFIEDNeed võimaldavad teil kiiresti näha, milliseid elemente on pärast eelmist sünkroonimist lisatud või muudetud, mis on varundusrakenduste või täiustatud galeriide jaoks ülioluline. - Kasutaja juhitavad hulgitoimingud: meetodid, näiteks
createDeleteRequest(),createTrashRequest(),createFavoriteRequest()ocreateWriteRequest()luba rakendused partiimuudatuste ettepanekuidKuid just süsteem kuvab kasutajale kinnitusdialoogi, et tal oleks lõplik sõnaõigus. - EXIF-i lugemine ja kirjutamine: läbi
ExifInterfaceRakendused saavad lugeda selliseid välju nagu orientatsioon, võtteaeg, kaamera mudel, asukoht (kui see on saadaval ja kasutaja on selle lubanud) ja muud metaandmed. See on ülioluline järgmistel eesmärkidel: pöörake fotosid õigesti, järjestage need kronoloogiliselt või kuvage jäädvustamisandmeid.
Meediapakkuja, pilvesalvestus ja fotovalija

Tänapäevase fotovalija ja pilvepõhiste meediateenuse pakkujate tulekuga on MediaProvideri roll fotode ja videote valiku töövoogudes veelgi olulisemaks muutunud.
Android lubab teatud rakendustel, tavaliselt tootjate määratud pilvefototeenustel, toimida pilvemeediapakkujatena . Need rakendused edastavad pilves talletatud sisu fotovalijale, et kasutaja saaks valida lisaks kohalikele failidele ka kaugteenustes talletatud faile.
Selles stsenaariumis töötavad MediaProvider ja Photo Picker käsikäes:
- Süsteem initsialiseerib eelistatud pilveteenuse pakkuja ja sünkroonib perioodiliselt multimeedia metaandmed fotovalija taustsüsteemi abil.
- Kui rakendus käivitab fotovalija, kasutades selliseid kavatsusi nagu
ACTION_PICK_IMAGESoACTION_GET_CONTENT, valija ühendage üheks ruudustikuks MediaProvideri pakutavad kohalikud elemendid ja CloudMediaProvideri pakutavad kaugelemendid. - Kasutaja kerimisel küsib valija optimeeritud pisipildid tarnijatele, et laadimine oleks kiire ja tõhus.
- Pärast valiku lõpetamist, kui pilvesisu on valitud, genereerib süsteem Turvalised URI-d Ja MediaProvider koordineerib FUSE'i ja teiste kihtide kaudu juurdepääsu tegelikele andmetele, kaitstes alati õigusi ja privaatsust.
CloudMediaProvider omalt poolt avalikustab selliseid meetodeid nagu onQueryMedia(), onQueryDeletedMedia(), onQueryAlbums(), onOpenMedia() u onOpenPreview()mida fotovalija kasutab üksuste, albumite ja kustutatud sisu loetlemiseks ning nii eelvaadete kui ka täisfaili avamiseks. Kuigi need meetodid on rakendatud väljaspool MediaProviderit, integreerub süsteemi meediamoodul nendega, et pakkuda järjepidev kogemus kohaliku ja pilvemeedia kasutamiseks.
MediaProvider ja ühilduv video transkodeerimine

Teine täiustatud funktsioon, milles MediaProvideril on võtmeroll, on ühilduva meediasisu transkodeerimine . See funktsioon võimaldab seadmetel kasutada kaasaegseid ja tõhusaid videovorminguid – näiteks HEVC või teatud HDR-profiile – ilma et see katkestaks ühilduvust vanemate rakendustega, mis mõistavad ainult klassikalisi vorminguid, näiteks AVC (H.264).
Mehhanism töötab järgmiselt:
- Tootjad ja kasutajad saavad kaamerat konfigureerida nii, et see salvestab vaikimisi HEVC-vormingus või muud formaadid, mis on ruumi ja ribalaiuse osas tõhusamad.
- Kui rakendus, mis ei toeta HEVC-d Kui proovite videot avada MediaStore'i ja MediaProvideri kaudu, võib süsteem faili lugemise pealtkuulamine tänu FUSE (failisüsteem kasutajaruumis) kasutamisele.
- Kui tuvastatakse, et rakendus ei toeta vormingut, siis MediaProvider koos Meediatranskodeerimise teenus, käivitab taustal toimuva teisendamise, et genereerida versioon AVC-s või muus ühilduvas vormingus.
- Rakendus saab failideskriptori, mis osutab juba transkodeeritud versioonile (või originaalile, kui rakendus seda vormingut toetab) viisil, mis on arendaja jaoks täiesti läbipaistev.
Sellele transkodeerimisprotsessile kehtivad kuritarvituste vältimiseks aja- ja ressursipiirangud : näiteks töödeldakse ainult teatud pikkusega videoid ning järjestikuste seansside arv või rakenduse töötlemisaeg kokku on piiratud. Kui need piirangud ületatakse, tagastab süsteem algse töötlemata faili.
Selle saavutamiseks sisaldab arhitektuur mitmeid komponente:
- Meediatranskodeerimise haldur: Süsteemi API, mis võimaldab MediaProvideril ja teistel raamistiku osadel transkodeerimisteenusega suhelda.
- Meediatranskodeerimise teenus: teenus, mis haldab transkodeerimisjärjekordi, aktiivseid seansse ja koodeki ressursside eraldamist.
- Meediatranskooder: natiivne teek, mis teostab vormingute vahel teisendamist, tuginedes MediaCodec ja võimalikes OEM-lisandmoodulites selliste toimingute jaoks nagu HDR → SDR teisendamine.
MediaProvider on kogu selle voo keskmes: see on moodul, mis peatab failide lugemise katse , otsustab, kas rakenduse võimaluste kohaselt on transkodeerimine vajalik või mitte, ja lõpuks edastab õige deskriptori kas algsele või transkodeeritud failile.
Kohandamine ja laiendamine: MediaProvider arendajatele ja tootjatele
Üks MediaProvideri võimsamaid – ja vähemtuntud – funktsioone on võime selle käitumist kohandada . See pakub erilist huvi kohandatud ROM-ide arendajatele, originaalseadmete tootjatele ja tootjatele , aga see aitab ka mõista, miks mõned seadmed käituvad teatud salvestusvormingute või -radade puhul mõnevõrra erinevalt.
Kohandatud meediavormingud
Tootjad saavad lisada tuge patenteeritud või ebatavalistele meediumivormingutele . Iga uue tüübi puhul peavad nad:
- Registreerige üks unikaalne faililaiend ja seostada see kindla MIME tüübiga,
MimeUtils. - Mooduli seadistamine Meediaekstraktor et see saaks selles vormingus metaandmeid lugeda ja MediaProvider saaks need õigesti indekseerida.
- Puhul
video/*yaudio/*, jätkuvalt toetudaMediaMetadataRetrieverasjakohaste metaandmete avaldamiseks. - Puhul
image/*laiendada või kasutadaandroid.media.ExifInterfacevälja võtma ja tagastama normaliseeritud EXIF-metaandmed isegi kohandatud pildivormingutes.
Oluline on märkida, et AOSP-s juba määratletud laienduste või MIME tüüpide ümberdefineerimine ei ole lubatud , et vältida seadmetevahelisi vastuolusid või konflikte.
Indekseerimiseks mõeldud salvestusseadmete valik
MediaProvider indekseerib vaikimisi kõik tagastatud köited StorageManager.getStorageVolumes() kus StorageVolume.getMediaStoreVolumeName() See ei ole tühi. Kuid originaalseadmete tootjad (OEM-id) saavad täpsusta, millised köited indekseeritakse brändi loomine VolumeInfo.MOUNT_FLAG_INDEXABLE nendes seadmetes, mis soovivad neid meediateegis kuvada.
Soovitatav on vältida ajutiste köidete märkimist indekseeritavateks – näiteks teatud USB OTG-draivid, mida sageli ühendatakse ja lahti ühendatakse –, et vältida andmebaasi ebajärjekindlust või vigu, mis võivad tekkida köite ootamatust kadumisest.
MTP-virna asendamine ja kohandamine
MTP (Media Transfer Protocol) taga olev loogika, mida kasutatakse failide edastamiseks mobiilseadme ja arvuti vahel USB kaudu , on MediaProvideri moodulist eraldatud. Alates teatud versioonidest asub MTP-pinu täielikult moodulist väljaspool ja selle toimimine on garanteeritud ainult avalike ja süsteemi API-de abil.
See võimaldab tootjatel, kes vajavad spetsiifilisi edastuslahendusi, oma MTP-virna asendada või kohandada, kui need säilitavad ühilduvuse MediaStore'i ja MediaProvideri lepingutega , nii et failide kopeerimise ja arvutist lugemise kogemus jääks järjepidevaks.
Vaikimisi kaustad ja väljajätmisloend
Salvestusmahu esmakordsel aktiveerimisel loob MediaProvider tavaliselt rea standardkaustad kui Music/, Podcasts/, Ringtones/, Alarms/, Notifications/, Pictures/, Movies/, Download/, DCIM/, Documents/, Audiobooks/ y Recordings/ (Viimane pole mõnes vanemas versioonis saadaval).
Seadmete puhul, millel on spetsiifilised organisatsioonilised nõuded, saavad originaalseadmete tootjad (OEM-id) pakkuda väljajäetavate kaustade loend ressursi ülekatte kaudu esmase loomise ajal config_foldersToSkipInDefaultCreationSeega võivad nad näiteks takistada kaustade loomist vaikimisi. Notifications/ o Ringtones/ kui neil on juba olemas alternatiivne süsteem.
Meediapakkuja sõltuvused ja tehnilised nõuded

MediaProvideri kohandamisel peavad originaalseadmete tootjad (OEM-id) arvestama mitmete tehniliste sõltuvustega , et tagada kõige jätkuv korrektne toimimine:
- Kui kasutate mittestandardsed multimeediafailivormingudIga vorming tuleb registreerida mõlemas
MimeUtilsnagu moodulis MeediaekstraktorVastasel juhul ei saa MediaProvider neid indekseerida ega täielikke metaandmeid esitada. - Selleks, et tagada kohandatud salvestusseadmete komplekti (SD-pesad, sisseehitatud USB-pordid jne) indekseerimine, rakendatakse järgmist:
StorageManagerServiceSoovitud mahud tuleb märkidaVolumeInfo.MOUNT_FLAG_INDEXABLE. - Kui kasutatakse kohandatud MTP-virna, peab see põhinema ainult järgmisel: Avalikud ja süsteemi API-d et see jääks MediaStore'iga ühilduvaks ja ei katkestaks arvuti ja seadme meediateegi vahelist suhtlust.
Lisaks peavad seadmed video transkodeerimise kontekstis vastama teatud minimaalsetele riistvaranõuetele : HEVC kodeeringu tugi peab olema sisse lülitatud kaameras, piisav lugemis- ja kirjutamisjõudlus salvestusruumis ning koodekid, mis on võimelised saavutama konverteerimisülesannetes kõrge töötlemiskiiruse.
MediaProvideri testimine, diagnoosimine ja levinud vead

Tavakasutuses jääb MediaProvider tavaliselt märkamatuks. Nagu iga süsteemikomponent, võib ka see probleeme tekitada: ootamatud sulgemised , vead teatud failide lugemisel, tõrked metaandmete värskendamisel või krahhid rikutud köidete skannimisel.
Androidi ökosüsteemis on selle korrektse toimimise kontrollimiseks mitu automatiseeritud testi :
- CtsProviderTestCases: testikomplekt Ühilduvuse testide komplekt mis valideerib MediaStore'i avalike API-de käitumist MediaProvideri suhtes.
- Meediapakkuja testid: sisemised testid keskendusid mooduli ja selle komponentide spetsiifilisele käitumisele.
Arendajad või tehnikud saavad neid testikomplekte käivitada selliste käskudega nagu:
atest --test-mapping packages/providers/MediaProvider
Tehnilistes foorumites on mõned kasutajad teatanud Korduvad MediaProvideri krahhid mäluvigade tõttu (OutOfMemoryError), eriti väga suurte videokogude skannimisel või kahjustatud SD-kaardi partitsioonide käsitlemisel. Sellistel juhtudel on soovitatav:
- Kontrolli sisemise ja välise mälu füüsiline olek (vormindage või vahetage kaart välja, kui sellel on vigu).
- Süsteemi ja selle hooldamine uuendatud Mainline'i moodulid Google Playst paranduste saamiseks.
- Kontrollige, kas mõni rakendus genereerib rikutud failid või anomaalsete metaandmetega failid mis põhjustavad indekseerimise tõrkeid.
MediaProvideriga seotud tööriistad ja utiliidid

Kui soovite lisateavet MediaProvideri värskendamise või installitud Mainline'i moodulite kohta, saate kasutada mõnda tööriista:
- Peavoolu uuendaja: lihtne rakendus, mis loetleb Teie seadmes olevad põhimoodulid See pakub ka otseteid Google Play süsteemivärskenduste paneelile. See on kasulik selle kontrollimiseks, kas teie MediaProvider ja muud olulised komponendid on ajakohased.
- Meediapakkuja haldur: avatud lähtekoodiga Xposed moodul, mis võimaldab Jälgige ja piirake MediaStore'i kasutamist rakenduste poolt. Selle abil saavad edasijõudnud kasutajad vaadata, millised rakendused teevad kõige rohkem päringuid, milliseid õigusi nad kasutavad ja isegi piirata teatud juurdepääsu privaatsuse parandamiseks.
Sellised tööriistad pole tavakasutaja jaoks hädavajalikud, kuid pakuvad täiendavat kontrolli neile, kes soovivad oma Android-seadmes multimeedia käitumist ja privaatsust detailsemalt hallata.
MediaProvider on saanud Androidi süsteemi keskseks komponendiks: see korraldab tõhusalt kogu multimeediasisu, kaitseb privaatsust paremini ulatusliku salvestusruumi kaudu, hõlbustab tänapäevaste vormingute transkodeerimist ja uueneb iseseisvalt tänu Mainline'i moodulitele. Selle nähtamatu komponendi toimimise mõistmine selgitab, miks teie galerii, muusikarakendused ja pilveteenused toimivad tänapäeval kiiremini, järjepidevamalt ja palju turvalisemalt kui süsteemi eelmistes põlvkondades.


