Sistemul de fișiere al dispozitivului mobil: ce este, structura directoarelor și cum funcționează

Autor: IT Sectr Publicat: 2026-03-13 Timp de citire: 11 min

Sistemul de fișiere al dispozitivului mobil este modul de organizare, stocare și denumire a datelor în memoria flash. Potrivit Android Developers, 2026, sistemele de operare mobile utilizează o structură ierarhică de directoare, unde fiecare aplicație rulează într-un sandbox izolat. Această arhitectură previne accesul neautorizat la date și asigură funcționarea stabilă a sistemului la rularea simultană a mai multor aplicații.

Principalele puncte

  • Sistemul de fișiere determină modul în care datele sunt organizate, indexate și protejate pe dispozitiv
  • Android utilizează partițiile /data, /system și /sdcard cu diferite drepturi de acces și sisteme de fișiere
  • iOS funcționează cu APFS și containere Sandbox, unde fiecare aplicație este izolată la nivel de nucleu
  • EXT4 și F2FS sunt sistemele de fișiere principale pe Android, APFS pe iOS, exFAT pe cardurile SD
  • Drepturile de acces Linux (rwx) pe Android și profilurile Sandbox pe iOS gestionează ce fișiere poate citi și modifica aplicația

Ce este sistemul de fișiere al dispozitivului mobil?

Sistemul de fișiere este o componentă software a sistemului de operare care gestionează modul în care datele sunt scrise, citite și organizate pe suportul fizic. Pe dispozitivele mobile, sistemul de fișiere îndeplinește funcții critic de importante: gestionarea spațiului memoriei flash, controlul accesului la fișiere pe baza permisiunilor, înregistrarea modificărilor pentru recuperarea după defecțiuni și optimizarea scrierii ținând cont de particularitățile memoriei NAND flash.

Spre deosebire de sistemele de operare desktop, sistemele de fișiere mobile sunt proiectate ținând cont de resursa limitată a ciclurilor de suprascriere a memoriei flash. Celulele NAND suportă un număr limitat de operații de ștergere — de la 3 000 la 10 000 de cicluri pentru memoria TLC și, respectiv, MLC. Pentru a prelungi durata de viață a dispozitivului de stocare, sistemele de fișiere aplică mecanisme de wear leveling (egalizarea uzurii) și comenzi TRIM. F2FS, dezvoltată de Samsung special pentru memoria flash, ține cont de geometria matricei NAND și plasează datele astfel încât să minimizeze fragmentarea și numărul operațiilor de ștergere a blocurilor.

Dispozitivele mobile moderne utilizează o combinație de mai multe sisteme de fișiere. Memoria internă (partiția /data) este formatată în EXT4 sau F2FS pe Android și APFS pe iOS. Cardurile SD utilizează în mod tradițional exFAT pentru suportul fișierelor mai mari de 4 GB sau FAT32 pentru compatibilitate maximă. Partiția /system pe Android este adesea montată doar pentru citire și utilizează EXT4 sau EROFS (Enhanced Read-Only File System) — un sistem de fișiere comprimat dezvoltat de Huawei pentru a reduce dimensiunea partiției de sistem.

Structura directoarelor pe Android

Ierarhia directoarelor Android se bazează pe structura Linux cu rădăcina în /. Fiecare partiție are propriul sistem de fișiere, drepturi de acces și destinație. O aplicație poate accesa doar un set limitat de directoare — restul sunt protejate de drepturile root.

CalePartițieSistem de fișiereAcces pentru aplicație
/dataUserdataF2FS / EXT4Doar propriul sandbox
/systemSystemEROFS / EXT4Doar citire (root)
/sdcardExternalexFAT / FAT32Cu permisiune
/cacheCacheEXT4Doar root
/vendorVendorEROFS / EXT4Doar citire (root)

Partiția /data și sandbox-ul aplicațiilor

Partiția /data este partiția principală pentru stocarea datelor utilizatorului, aplicațiilor instalate și setărilor acestora. Fiecare aplicație primește propriul director pe calea /data/data/<package_name>/. În interiorul acestui director, sistemul creează automat subdirectoare: files/ pentru fișierele aplicației, cache/ pentru fișiere temporare, databases/ pentru bazele de date SQLite, shared_prefs/ pentru SharedPreferences. Drepturile de acces la acest director se stabilesc la instalarea aplicației și nu pot fi modificate fără acces root. Partiția /data este formatată în F2FS pe majoritatea dispozitivelor moderne, ceea ce asigură o viteză de scriere aleatorie cu până la 40% mai mare comparativ cu EXT4.

Partiția /system și componentele de sistem

Partiția /system conține sistemul de operare, aplicațiile de sistem și bibliotecile. Această partiție este montată doar pentru citire pentru a preveni modificarea accidentală sau intenționată a fișierelor de sistem. Pe dispozitivele cu Android 10+ și Project Treble, partiția /system este dinamică și poate fi actualizată prin pachete OTA fără a fi necesară o refulare completă. Pentru aplicații, partiția /system este inaccesibilă — o încercare de scriere va genera o excepție SecurityException. Cu toate acestea, aplicațiile pot citi unele fișiere din /system, cum ar fi fonturile de sistem și fișierele de configurare, dacă au permisiunile corespunzătoare.

Punctul de montare /sdcard

Punctul de montare /sdcard este o legătură simbolică către partiția de stocare externă emulată sau fizică. Pe dispozitivele fără card SD, /sdcard indică către o subpartiție din /data care este alocată pentru acces partajat. Această partiție este vizibilă utilizatorului atunci când dispozitivul este conectat la computer prin protocolul MTP. Aplicațiile obțin acces la /sdcard prin permisiunile READ_EXTERNAL_STORAGE și WRITE_EXTERNAL_STORAGE, iar începând cu Android 10 — prin Scoped Storage utilizând API-ul MediaStore. Dimensiunea /sdcard reprezintă de obicei 60–80% din volumul total al memoriei flash a dispozitivului, iar restul este rezervat pentru partiția /data.

Structura directoarelor pe iOS

Pe iOS, sistemul de fișiere este organizat prin containere Sandbox ale aplicațiilor. Fiecare aplicație primește un director izolat, al cărui acces este limitat la nivelul nucleului XNU. Partiția utilizator utilizează sistemul de fișiere APFS (Apple File System), introdus în iOS 10.3. APFS suportă snapshot-uri, clonarea fișierelor și criptarea la nivel de fișier, ceea ce îl face optim pentru dispozitivele mobile.

Directoarele standard ale containerului Sandbox

Containerul Sandbox iOS include patru directoare principale: Documents, Library, tmp și SystemData. Fiecare director are propria politică de backup, perioadă de păstrare a datelor și nivel de acces. Documents este inclus automat în backup-ul iCloud și iTunes. Library conține subdirectoarele Caches (nu se face backup), Preferences (se face backup) și Application Support (se face backup). Directorul tmp este destinat fișierelor temporare — iOS le poate șterge în caz de lipsă de spațiu și nu este inclus în backup. SystemData este utilizat de sistemul însuși și este inaccesibil aplicației prin API-urile standard.

swift
let fm = FileManager.default

let documents = fm.urls(
    for: .documentDirectory,
    in: .userDomainMask
).first!

let caches = fm.urls(
    for: .cachesDirectory,
    in: .userDomainMask
).first!

let appSupport = fm.urls(
    for: .applicationSupportDirectory,
    in: .userDomainMask
).first!

Fiecare director al containerului Sandbox are propria clasă de protecție (protection class). iOS suportă patru clase: Complete Protection (fișierul este inaccesibil când dispozitivul este blocat), Protected Unless Open (fișierele deja deschise sunt accesibile la blocare), Protected Until First User Authentication (fișierele sunt accesibile după prima deblocare) și No Protection (fișierele sunt întotdeauna accesibile după pornirea dispozitivului). Implicit, toate fișierele din Documents și Library primesc clasa Complete Protection, ceea ce garantează protecția maximă a datelor utilizatorului. La crearea unui fișier, se poate specifica explicit o altă clasă de protecție dacă o aplicație de fundal trebuie să aibă acces la date atunci când dispozitivul este blocat.

Drepturi de acces și securitatea sistemului de fișiere

Gestionarea accesului la fișiere pe dispozitivele mobile reprezintă o diferență cheie între Android și iOS. Android utilizează modelul clasic de drepturi de acces Linux (citire, scriere, execuție) cu extensii pentru izolarea aplicațiilor. iOS aplică un model mai strict Sandbox, unde fiecare aplicație rulează într-un container izolat și nu are acces la fișierele altor aplicații fără mecanisme speciale.

Permisiuni pe Android

Pe Android, fiecare aplicație rulează cu un UID (User ID) separat. Toate fișierele create de aplicație în sandbox-ul său aparțin acestui UID și nu sunt vizibile pentru alte aplicații. Pentru accesul la directoarele partajate (stocare externă), aplicația trebuie să solicite permisiunile READ_EXTERNAL_STORAGE și WRITE_EXTERNAL_STORAGE. Începând cu Android 11, permisiunile trebuie solicitate în timpul execuției, iar aplicația cu targetSdkVersion 30+ pentru accesul la fișierele altor aplicații trebuie să utilizeze SAF. Încălcarea modelului de permisiuni duce la SecurityException, care este gestionată de blocul standard try-catch. Google Play verifică automat conformitatea aplicației cu politica de permisiuni înainte de publicare.

kotlin
if (ContextCompat.checkSelfPermission(
    context,
    Manifest.permission.READ_EXTERNAL_STORAGE
) != PackageManager.PERMISSION_GRANTED) {
    ActivityCompat.requestPermissions(
        activity,
        arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE),
        REQUEST_CODE
    )
}

Sandbox pe iOS și Keychain

iOS Sandbox este implementat la nivelul nucleului XNU și nu permite aplicației să iasă în afara propriului container. Chiar dacă aplicația obține acces la URI-ul unui fișier extern prin Document Picker, sistemul de operare creează o copie temporară în containerul aplicației, în loc să ofere acces direct la original. Pentru schimbul de fișiere între aplicații, iOS utilizează mecanismele Share Sheet și UIActivityViewController, care copiază fișierul din containerul unei aplicații în containerul alteia. Pentru stocarea securizată a datelor de autentificare (token-uri, parole, chei), iOS oferă Keychain — un depozit criptat accesibil sistemului la nivel de nucleu. Keychain nu face parte din containerul Sandbox și este gestionat de un demon separat securityd, ceea ce asigură un nivel suplimentar de protecție chiar și în cazul compromiterii aplicației.

Caracteristicile sistemelor de fișiere: EXT4, APFS, F2FS

Alegerea sistemului de fișiere influențează direct performanța și fiabilitatea stocării datelor. Fiecare sistem de fișiere are propria arhitectură, optimizări și limitări. Este util pentru dezvoltator să înțeleagă aceste diferențe pentru a prezice comportamentul aplicației pe diferite dispozitive.

  • EXT4 — sistemul de fișiere standard Linux cu jurnalizare, suport pentru fișiere de până la 16 TB și volume de până la 1 EB. Este utilizat pe Android ca principal înainte de introducerea F2FS. Oferă fiabilitate datorită jurnalului, dar este inferior F2FS în ceea ce privește viteza de scriere aleatorie din cauza necesității actualizării inodurilor și bitmap-urilor de blocuri la fiecare operație
  • F2FS — sistem de fișiere dezvoltat de Samsung în 2012 special pentru memoria NAND flash. Ține cont de geometria matricei flash, utilizează o arhitectură log-structurată și oferă o performanță de scriere aleatorie cu 25–40% mai mare comparativ cu EXT4. Începând cu Android 11, F2FS este recomandat de Google ca sistem de fișiere principal pentru partiția /data
  • APFS — sistemul de fișiere Apple, introdus în 2017. Suportă snapshot-uri, clonarea fișierelor (copy-on-write), criptarea la nivel de fișier și controlul strict al integrității datelor prin sume de control. APFS este optimizat pentru SSD și utilizează comenzi TRIM pentru menținerea performanței pe întreaga durată de viață a dispozitivului de stocare
  • exFAT — sistemul de fișiere Microsoft, utilizat pe cardurile SD și unitățile USB. Suportă fișiere mai mari de 4 GB și volume de până la 128 PB. Nu are jurnalizare, astfel încât o întrerupere bruscă a alimentării poate duce la deteriorarea datelor. Este recomandat pentru medii detașabile, dar nu pentru partițiile de sistem

La dezvoltarea aplicațiilor, luați în considerare că diferite sisteme de fișiere au limitări diferite privind lungimea numelui de fișier (255 de octeți pentru EXT4 și F2FS, 255 de caractere Unicode pentru APFS), dimensiunea maximă a fișierului și suportul pentru caractere speciale. De exemplu, APFS permite caractere Unicode în numele fișierelor, inclusiv emoji-uri, în timp ce EXT4 este limitat la ASCII. Dacă aplicația creează fișiere cu nume în diferite limbi, testați funcționarea pe toate dispozitivele țintă — un nume de fișier creat corect pe APFS poate fi trunchiat pe EXT4.

Recomandări pentru lucrul cu sistemul de fișiere

Funcționarea fiabilă cu sistemul de fișiere al dispozitivului mobil necesită respectarea câtorva reguli cheie. Acestea se bazează pe analiza erorilor tipice ale dezvoltatorilor și recomandările documentației oficiale.

  • Nu utilizați căi codificate fix către directoare. Obțineți întotdeauna căile prin API-uri de sistem: context.filesDir pe Android, NSSearchPathForDirectoriesInDomains pe iOS. Căile fixe se schimbă între versiunile de sistem de operare și dispozitive
  • Gestionați excepțiile operațiilor cu fișiere: IOException, FileNotFoundException, SecurityException. Pe iOS, toate operațiile FileManager pot genera erori — încapsulați-le în do-catch. Pe Android, operațiile cu stocarea externă se pot încheia cu eroare din cauza lipsei suportului
  • Verificați spațiul disponibil înainte de scriere. Utilizați File.getUsableSpace() pe Android și URLResourceValues.volumeAvailableCapacityKey pe iOS. Atenționați utilizatorul dacă spațiul liber este insuficient
  • Evitați stocarea fișierelor mari în directoarele care intră în backup. Pe iOS, excludeți cache-ul din backup prin isExcludedFromBackup. Pe Android, preferați cacheDir pentru fișiere temporare
  • Testați comportamentul la umplerea stocării și întreruperea bruscă a alimentării. Utilizați scrierea tranzacțională: scrieți într-un fișier temporar, apoi redenumiți atomic

Acordați o atenție deosebită diferențelor cross-platform. Căile către fișiere pe Android se construiesc cu slash (/data/data/.../files/), pe iOS — prin schema URL (file:///var/mobile/.../Documents/). Dacă aplicația dvs. utilizează un framework multi-platformă (Flutter, React Native, Kotlin Multiplatform), unificați operațiile cu fișiere prin adaptoare de platformă. De exemplu, Flutter oferă pachetul path_provider, care returnează calea corectă către Documents sau filesDir pe ambele platforme fără a scrie cod dependent de platformă. Nu concatenați niciodată căile prin operații pe șiruri de caractere — utilizați File.join() sau URL.appendingPathComponent(), care gestionează corect separatoarele pe diferite platforme.

Întrebări frecvente

Ce sistem de fișiere este utilizat implicit pe Android?

Pe dispozitivele Android moderne (11+) pentru partiția /data se utilizează F2FS. Pe dispozitivele vechi — EXT4. Partiția /system utilizează EROFS sau EXT4. Cardurile SD sunt formatate în exFAT sau FAT32 în funcție de capacitate.

Cu ce se deosebește APFS de EXT4?

APFS suportă snapshot-uri, clonarea fișierelor, criptarea la nivel de fișier și sume de control. EXT4 are jurnalizare și o compatibilitate mai largă. APFS este optimizat pentru SSD, EXT4 este un sistem de fișiere universal.

Cum obțin calea către directorul documents pe iOS?

Utilizați FileManager.default.urls(for: .documentDirectory, in: .userDomainMask). Metoda returnează un array de URL-uri, primul element fiind directorul principal Documents al containerului Sandbox al aplicației.

Ce este Scoped Storage pe Android?

Scoped Storage este un model de acces introdus în Android 10 care limitează accesul direct la sistemul de fișiere. Aplicațiile pot citi fără permisiune doar propriile fișiere. Pentru accesul la fișierele media partajate se utilizează API-ul MediaStore.

Ce sistem de fișiere este mai bun pentru cardul SD — FAT32 sau exFAT?

exFAT este preferat pentru cardurile SD cu capacitate mai mare de 32 GB, deoarece suportă fișiere mai mari de 4 GB. FAT32 asigură compatibilitate maximă cu dispozitivele vechi, dar limitează dimensiunea fișierului la 4 GB.

Rezumat

  • Sistemul de fișiere al dispozitivului mobil gestionează stocarea, indexarea și protecția datelor în memoria flash ținând cont de resursa limitată a celulelor NAND
  • Android utilizează partițiile /data (F2FS/EXT4), /system (EROFS/EXT4) și /sdcard (exFAT/FAT32) cu modele de acces diferite
  • iOS funcționează pe APFS cu containere Sandbox, unde fiecare aplicație este izolată la nivelul nucleului XNU
  • F2FS oferă o performanță de scriere aleatorie cu 25–40% mai mare comparativ cu EXT4 datorită arhitecturii log-structurate
  • Permisiunile pe Android se bazează pe modelul UID Linux, pe iOS — pe profilurile Sandbox cu patru clase de protecție a fișierelor
  • Sistemele de fișiere diferite au limitări privind lungimea numelor, dimensiunea fișierelor și suportul pentru caractere — testați pe toate dispozitivele țintă
  • Scrierea tranzacțională și verificarea spațiului disponibil înainte de salvare previn deteriorarea datelor la defecțiuni

Vom dezvolta o aplicație mobilă la cheie

IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.

Discutați proiectul

Citiți și