Navidezna pomnilniška kartica Android. Razčlenitev pomnilniške kartice microSD v sistemu Android. Priprave na zastavo

To orodje vam omogoča ustvarjanje in upravljanje particij na kartici SD/pogonu USB vašega telefona ali tablice. Svoji napravi lahko dodate več RAM-a tako, da ustvarite izmenjalno particijo. Popravite lahko tudi poškodovane datotečne sisteme kartic SD. Podpira samo tip "glavne" particije.
Funkcije:

  • ustvarjanje predelnih sten;
  • brisanje particij;
  • obnovitev poškodovanih datotečnih sistemov.

Podprti datotečni sistemi:

  • FAT16, FAT32, EXT2, EXT3, EXT4, SWAP, NTFS (začenši z različico MoalBoal).

Zahteve:

  • Root telefon;
  • razpoložljivost Busyboxa;
  • namestitev v notranji pomnilnik;
  • Preden začnete delati z aplikacijo, odklopite kartico SD.

Navodila za ustvarjanje particij s programom

Prva stvar je, da prenesete vse svoje dragocene datoteke z bliskovnega pogona v računalnik, to pomeni, da bo po tem vse izbrisano z bliskovnega pogona.

- Odprite program

V razdelku Ustvari dvokliknite znak plus »+«

Prvi razdelek "1. del" izberite Fat32, drugi "2. del" izberite želeni ext2/3/4 ali zamenjajte.
- Uporabite drsnik za nastavitev velikosti posameznega odseka; potrditveno polje »Oblika« mora biti potrjeno.

Potrdite "V redu"

Vse je pripravljeno.

Kako vrniti bliskovni pogon na polno zmogljivost
Če se odločite izbrisati drugo particijo z bliskovnega pogona, lahko to storite.
- Pojdite v nastavitve telefona, »Pomnilnik« in kliknite »Odstrani kartico SD«.
- Odprite program
- V razdelku Ustvari enkrat kliknite znak plus »+«.
- V "Part 1" izberite Fat32, nastavite drsnik na polno zmogljivost bliskovnega pogona, potrditveno polje "Format" mora biti potrjeno.

Mehka tipka, kliknite "uporabi spremembe"

Potreba po razdelitvi pomnilniške kartice na več delov se običajno pojavi, ko telefon/tablica Android nima dovolj vgrajenega pomnilnika za namestitev aplikacij. Če izvedete podobno operacijo, lahko sprostite prostor v telefonu, na primer tako, da se premaknete na drugi del kartice microSD. Prej smo vam že povedali, kako lahko ustvarite/združite particije na pomnilniški kartici z in.

Ni vedno mogoče najti obnovitve za določen telefon/tablični računalnik, ki podpira particioniranje pomnilniške kartice, zato vam bomo v tem članku povedali, kako to storiti z aplikacijo AParted za Android.

Ta aplikacija ponuja naslednje funkcije (iz uradne dokumentacije):

  • Particioniranje zunanjega/notranjega pomnilnika naprave Android.
  • Formatiranje zunanjega/notranjega pomnilnika naprave Android.
  • Odstranjevanje particij.
  • Preverjanje in odpravljanje napak datotečnega sistema.
  • Spreminjanje velikosti particij.
  • Posodabljanje datotečnih sistemov.

V tem članku bomo uporabili samo prvega od njih.

Priprave na zastavo

Pred delitvijo obvezno naredite varnostno kopijo pomembnih podatkov (fotografij, videoposnetkov itd.), saj bodo med delitvijo vse datoteke izbrisane s pomnilniške kartice.

Prepričajte se, da je prisoten v vašem telefonu; brez njega AParted ne bo deloval.

Preden zaženete aplikacijo, morate onemogočiti pomnilniško kartico v nastavitvah Androida. Če želite to narediti, pojdite na "Nastavitve > Pomnilnik", v razdelku povezane kartice microSD kliknite element "Varno odstrani" in potrdite dejanje.

Postavitev prihodnjih odsekov

Zaženite aplikacijo AParted, na zavihku "CREATE" boste videli dve grafični predstavitvi pomnilniške kartice v obliki pravokotnikov: spodnji pravokotnik z napisom "SD memory card msdos partition tables" prikazuje trenutno postavitev particije, zgornji pa ena "Nove particijske tabele msdos" - postavitev bodočih particij na kartici microSD.

Kliknite na gumb "DODAJ", da dodate prvi del in z drsnikom določite njegovo velikost. Ta razdelek bo na voljo telefonu/tablici kot zunanji pomnilnik za fotografije, glasbo itd. Za natančnejšo razčlenitev kliknite na številko z MB, v polje, ki se prikaže, vnesite natančno velikost v megabajtih in potrdite spremembe s klikom na »V redu«. Pustite potrditveno polje »Oblika« omogočeno in datotečni sistem »fat32« nespremenjen.

Ponovno kliknite na gumb "DODAJ", da dodate drugo particijo na kartici microSD, ki bo v prihodnosti služila kot razširitev sistemskega pomnilnika naprave Android. Z drsnikom označite ves preostali prostor, pustite potrditveno polje "Format" omogočeno, kliknite na napis "fat32" in izberite enega od naslednjih datotečnih sistemov: "ext2", "ext3" ali "ext4".

In tukaj se začne zabava, priporočljivo je izbrati možnost »ext4«, vendar obstaja več razlogov, zakaj ne boste mogli ustvariti particije v tem datotečnem sistemu: jedro/vdelana programska oprema sistema Android, razred/proizvajalec (kakovost) pomnilniške kartice itd.

Zato poskusite najprej ustvariti particijo z »ext4«, nato »ext3« in »ext2«. Navsezadnje aplikacija Link2SD podpira vse zgoraj navedene datotečne sisteme.

Po izvedbi zgornjih operacij bi moral pravokotnik z oznako »Nove particijske tabele msdos« prikazati postavitev prihodnjih particij vaše pomnilniške kartice.

Izvedba zastave

Če želite uporabiti postavitev novih particij na pomnilniški kartici, kliknite gumb "UPORABI". Aplikacija AParted vas bo opozorila, da bodo vsi podatki na izmenljivem mediju izbrisani.

Nato se prikaže postopek particioniranja in formatiranja particij pomnilniške kartice, po zaključku katerega bo spodnji graf »SD particiona tabela pomnilniške kartice msdos« prikazal rezultat particioniranja medija. Ponovno pojdite na »Nastavitve > Shranjevanje« telefona/tablice in v razdelku zunanjega pomnilnika kliknite »Poveži kartico SD«. Po povezavi in ​​analizi kartice microSD s sistemom Android boste videli, da se je njen pomnilnik zmanjšal na velikost, ki ste jo nastavili.

Če status telefona prikazuje sporočilo, da je kartica SD poškodovana, znova zaženite sistem Android, po ponovnem zagonu bi se morala pomnilniška kartica samodejno povezati.

Nastavitev Link2SD

Namestite in zaženite. Program bi moral samodejno zaznati prisotnost druge particije na pomnilniški kartici in vas pozvati, da ustvarite skript za priklop. Na seznamu izberite datotečni sistem druge particije, ki ste jo navedli pri particioniranju pomnilniške kartice v aplikaciji AParted, potrdite zahtevo in po zaključku operacije kliknite gumb »Ponovni zagon naprave«.

Po ponovnem zagonu sistema Android lahko aplikacije prenesete iz pomnilnika naprave na drugo particijo zunanje pomnilniške kartice.

Med razvijanjem tekmovalne aplikacije sem naletel na težavo s shranjevanjem baze podatkov. Težava je bila, kako naj prepoznam zunanjo pomnilniško kartico. Na splošno iskanje po internetu ni dalo natančnega odgovora. Zato sem z združevanjem vseh najdenih rezultatov sestavil svoj razred. Če koga zanima naj pogleda pod rez.

Torej, začnimo s teorijo.

Terminologija

Google nam pove, da obstajajo naslednji pojmi:
  1. interno ( notranji) pomnilnik je del pomnilniške kartice, vgrajene v telefon. Ko je mapa aplikacije privzeto uporabljena, je zaščitena pred dostopom drugih aplikacij (uporaba notranjega pomnilnika).
  2. Zunanji ( zunanji) pomnilnik je splošni "zunanji pomnilnik", tj. to je lahko del vgrajenega pomnilnika ali naprava, ki jo je mogoče odstraniti. Običajno je to del vgrajenega pomnilnika, zadnjič, ko sem videl odstraniti napravo, je bilo v sistemu Android 2.2, kjer je bil vgrajeni pomnilnik približno 2 GB, priključeni pomnilnik pa je postal zunanji (Using the External Storage).
  3. Izbrisano ( odstranljiva) pomnilnik - vsa shramba, ki jo je mogoče odstraniti iz naprave brez »kirurških« posegov.

Pred KitKat 4.4 API ni zagotavljal funkcionalnosti za pridobivanje poti zunanjega pomnilnika. Od te različice (API 19) se je pojavila funkcija javne abstraktne datoteke getExternalFilesDirs(vrsta niza), ki vrne matriko nizov s potmi do notranjega in zunanjega pomnilnika. Kaj pa naša kartica SD, ki je vstavljena v režo? Spet ne moremo dobiti poti do njega.

rezultati iskanja

Za odgovor na vprašanje sem se obrnil na vsevednega Googla. A tudi on mi ni dal jasnega odgovora. Upoštevane so bile številne možnosti definicije, od uporabe standardnih funkcij, ki vodijo do zunanjega pomnilnika, vendar nimajo nobene zveze z odstranjenimi napravami za shranjevanje, do pravil za namestitev naprav za obdelavo (Android deluje na jedru Linuxa). V slednjih primerih so bile uporabljene »žične« poti do mape z nameščenimi napravami (ta imenik je v različnih različicah drugačen). Ne pozabite, da se pravila namestitve spreminjajo od različice do različice.

Na koncu sem se odločil združiti vse pridobljeno znanje in napisati svoj razred, ki lahko vrača poti do zunanjih in izbrisanih naprav.

Opis kode

Razred je bil ustvarjen MountDevice, ki vsebuje pot do naprave, vrsto naprave in zgoščeno vrednost.
Obstajata dve vrsti naprav (notranjega pomnilnika se nisem dotaknil, saj je do njega dostopen prek sistemskega API-ja).

Javni enum MountDeviceType (EXTERNAL_SD_CARD, REMOVABLE_SD_CARD)
In razred je nastal StorageHelper, ki išče razpoložljive pomnilniške kartice.

Razred StorageHelper izvaja dve metodi iskanja - skozi sistemsko okolje ( okolje) in z uporabo pripomočka Linux mount, oziroma rezultat njegove izvedbe.

Prva metoda - Okolje
Pri delu z okoljem uporabljam standardno funkcijo getExternalStorageDirectory() za pridobivanje informacij o zunanjem pomnilniku. Za pridobitev informacij o pomnilniku, ki se briše, uporabljam spremenljivko okolja " SECONDARY_STORAGE".

Zunanji pomnilnik je vedno en in običajno vedno obstaja, zato ga preverimo za berljivost, izračunamo hash in si ga zapomnimo. Brisati je lahko veliko pomnilnika, zato je treba nastali niz razdeliti z ločilom in preveriti vsako vrednost.

funkcija fillDevicesEnvirement

Pot niza = android.os.Environment.getExternalStorageDirectory() .getAbsolutePath(); if (!path.trim().isEmpty() && android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) ( testAndAdd(path, MountDeviceType.EXTERNAL_SD_CARD); ) // Pridobite odstranjevalec String rawSecondaryStoragesStr = System.getenv("SECONDARY_STORAGE"); if (rawSecondaryStoragesStr != null && !rawSecondaryStoragesStr.isEmpty()) ( // Vse sekundarne SD-KARTICE so razdeljene v matriko final String rawSecondaryStorages = rawSecondaryStoragesStr .split(File.pathSeparator); for (String rawSecondaryStorage: rawSecondaryStorages) ( testAndAdd( rawSecondaryStorage, MountDeviceType.REMOVABLE_SD_CARD); ) )


Rešitev je bila vzeta iz stackoverflow. Odgovor je nekje tam spodaj.
Druga metoda - montaža
Ker mi sistem dolgo ni mogel povedati poti do pomnilnika, ki se briše, sem se odločil pogledati v smeri montiranih naprav. Sistem ima konfiguracijske datoteke, ki opisujejo pravila za namestitev zunanjih naprav. Vse bi bilo v redu, vendar v Androidu različice 4.* navadni smrtniki nimajo dostopa do te datoteke, zato te metode ne bom upošteval.

Vrnimo se k pripomočku za pritrditev. Ko se ukaz izvaja brez parametrov, vrne seznam nameščenih datotečnih sistemov. Naprave, ki se brišejo, so običajno v formatu datotečnega sistema FAT, zato bomo označili vrstice, ki vsebujejo značilnost " maščoba". Zunanji pomnilnik bo označen s parametrom " varovalka".

Opomba: pri uporabi te metode vrste nameščenih naprav niso vedno pravilno določene (najverjetneje nekaj nisem upošteval). Opazil sem razliko v različnih različicah Androida. Zato se ta metoda lahko uporablja kot dodatna.

funkcijo fillDevicesProcess

poskusi ( Runtime runtime = Runtime.getRuntime(); proc = runtime.exec("mount"); try ( is = proc.getInputStream(); isr = new InputStreamReader(is); br = new BufferedReader(isr); while ( (line = br.readLine()) != null) ( if (line.contains("secure")) nadaljuj; if (line.contains("asec")) nadaljuj; if (line.contains("fat") ) (// TF kartica String columns = line.split(" "); if (columns != null && columns.length > 1) ( testAndAdd(columns, MountDeviceType.REMOVABLE_SD_CARD); ) ) else if (line.contains(" varovalka")) (// notranji(zunanji) // shranjevanje String columns = line.split(" "); if (columns != null && columns.length > 1) ( // mount = mount.concat(columns + " \n"); testAndAdd(columns, MountDeviceType.EXTERNAL_SD_CARD); ) ) ) ) končno ( ... ) ) catch (Izjema e) ( ... )

Izvorna koda za celoten razred še ni nikjer. Nekega dne ga bom poskusil objaviti na gitHubu.

Kdo še uporablja kakšne metode?

Oznake: dodajte oznake

Nekatere naprave Android imajo reže za pomnilniške kartice (običajno format microSD). Če vaša naprava podpira kartice SD, lahko:

  • povečati zmogljivost pomnilnika;
  • uporabite kartico za nekatere funkcije in aplikacije.

Če želite izvedeti, ali ima vaša naprava režo za kartico SD, obiščite spletno mesto proizvajalca.

Opomba. Nekatere od teh korakov je mogoče izvesti samo v napravah s sistemom Android 6.0 in novejšim.

Kako namestiti kartico SD

1. korak: Vstavite kartico SD.
  1. Preverite, kje se nahaja reža za kartico SD.
  2. Izklopi telefon.
  3. Odstranite pladenj za kartico SD ali odstranite zadnji pokrov naprave (odvisno od modela). Po potrebi dvignite jeziček, ki drži kartico.
  4. Vstavite kartico SD v režo. Če ste dvignili pritrdilni jeziček, ga spustite.
  5. Ponovno namestite pladenj za kartico SD ali zadnji pokrov naprave.
2. korak: Vklopite kartico SD.
  1. Počakajte, da se prikaže obvestilo kartice SD.
  2. Kliknite Uglasi.
  3. Izberite želeno vrsto shranjevanja.
    • Odstranljiv pomnilnik:
      Kartico lahko prenesete v drugo napravo skupaj z vsemi svojimi datotekami (kot so fotografije in glasba). Aplikacij ni mogoče premakniti na izmenljivi pogon.
    • Notranji spomin:
      Kartica lahko shranjuje aplikacije in podatke samo za to napravo. Če ga premaknete v drugo napravo, bodo vsi podatki na njem izbrisani.
  4. Sledite navodilom na zaslonu za nastavitev kartice SD.
  5. Ko končate, kliknite pripravljena.

Kako uporabljati kartico SD

Kako premakniti aplikacije na kartico SD

Če ste kartico povezali kot notranji pomnilnik, lahko nanjo prenašate aplikacije.

Opomba. Vseh aplikacij ni mogoče prenesti na kartico SD.

Kako premakniti datoteke na kartico SD

Če ste kartico SD namestili kot izmenljivo napravo za shranjevanje, lahko nanjo prenašate različne datoteke, kot so glasba in fotografije. Po tem jih lahko izbrišete iz notranjega pomnilnika naprave.

1. korak: Kopirajte datoteke na kartico SD.

2. korak: Izbrišite datoteke iz notranjega pomnilnika.

Ogledate si lahko vsebino kartice SD in vidite, koliko prostora je še ostalo.

Ko se kartica SD uporablja kot notranji pomnilnik

Ko se kartica SD uporablja kot izmenljiva naprava za shranjevanje

  1. Povlecite navzdol z vrha zaslona, ​​da odprete ploščo z obvestili.
  2. Pod obvestilom kartice SD tapnite Odprto.

Dolphin lahko shranjuje podatke na navidezno kartico SD z imenom sd.raw. Privzeto bo ustvarjen z velikostjo 128 MB.

Navidezna kartica SD ima pomembno vlogo pri domačih aplikacijah v Dolphinu. Proge po meri Project M in Mario Kart Wii sta dva dobra primera, saj lahko nekatere domače aplikacije delujejo le z uporabo datotek, shranjenih na kartici SD prave strojne opreme, za katero so bile zasnovane.

Vsebina

Ustvarjanje virtualne kartice SD

Priporočljivo je, da ustvarite enega z velikostjo vsaj 1 GB za velike domače aplikacije, na primer Project M, in ne več kot 2 GB za najboljšo združljivost, saj obstajajo težave z združljivostjo pri nekaterih domačih aplikacijah, ki se poskušajo izvajati s kartico SDHC na pravi strojni opremi. .

Ukazna vrstica in izvršljive datoteke

WinImage je nezanesljiv, saj nenavadno povzroči desinhronizacijo in nekaj drugih nepredvidljivih težav. ImDisk bo v redu.

Hitri vodnik za namestitev in urejanje virtualne kartice SD z Gonilnik virtualnega diska ImDisk:

  1. Desni klik na sd.raw datoteko in kliknite "Namesti kot virtualni disk ImDisk" iz kontekstnega menija.
  2. Potrditveno polje Odstranljivi mediji nato udari "V REDU". Vnaprej določena črka pogona in vse ostalo bo v redu.
    • Navidezna kartica SD bo zdaj prikazana kot "Izmenljivi disk", v katerega lahko izvorno okno Raziskovalca bere in piše vanjo.
  3. Ko končate z urejanjem navidezne kartice SD, jo preprosto odklopite tako, da z desno miškino tipko kliknete »Izmenljivi disk« in nato kliknete "Odpni virtualni disk ImDisk" iz kontekstnega menija.
    • Navidezno kartico SD morate pred uporabo z Dolphin odstraniti.

Dolphin Nastavitev

Pojdite na Možnosti > Konfiguriraj ... > Wii > in omogočite Vstavite kartico SD.

Uporaba

Z aplikacijo Homebrew

Zunanje datoteke, ki se uporabljajo za aplikacijo homebrew, morajo biti shranjene znotraj sd.raw in sama aplikacija homebrew ( boot.elf oz boot.dol) mora obstajati zunaj njega, da se Dolphin naloži. Projekt M se bo na primer naložil iz korena SD \projektm\ in Dolphin bo moral zagnati projekt M \apps\projectm\boot.elf, NE na virtualni kartici SD. Zaradi udobja je idealno imeti enake kopije vzporedno med notranjostjo in zunanjostjo virtualne kartice SD.

Vendar pa je mogoče zagnati aplikacijo homebrew z virtualne kartice SD prek podvigov homebrew za Wii.

Aplikacija za zagon iger Wii bo delovala samo, če je določena igra Wii nastavljena kot privzeti ISO. Znotraj seznama iger Dolphin odprite kontekstni meni (z desnim klikom) katere koli igre Wii in kliknite Nastavi kot privzeti ISO. Naredite to, preden z Dolphinom naložite domačo aplikacijo.

Za Netplay

Netplay se bo sčasoma desinhroniziral, če bo karkoli prebralo navidezno kartico SD, ki ni klonirana, ne glede na enako velikost, kot je bila ustvarjena, in enake strukture datotek/map v njenem korenu. Da bi to preprečili, sd.raw mora biti kopiran iz gostiteljevega računalnika v pridružitvene računalnike pred začetkom netplaya. Če je bila navidezna kartica SD uporabljena brez povezave ali na spletu z onemogočenim zapisovalnim blokom, se bo spremenila kontrolna vsota MD5 ("Datum dostopa" datotek je tisto, kar je drugačno pri navidezni kartici SD), vendar ne bo povzročilo desinhronizacije. Kartica SD je morala prihajajo od drugod ali so podvržene datotekam, spremenjenim znotraj, da so "drugačne".

Za aplikacijo za zagon iger Wii morajo imeti uporabniki na obeh straneh najprej iste kopije aplikacije homebrew in igre na seznamu iger, nato pa igro nastaviti kot privzeti ISO, kot je omenjeno v prejšnjem razdelku.