Co wiesz o historii przechowywania plików w Androidzie?
sobes.tech AI
Odpowiedź od AI
Historia przechowywania plików w Androidzie przeszła przez kilka kluczowych etapów, odzwierciedlając dążenie do poprawy bezpieczeństwa, prywatności i wygody obsługi danych.
Początkowo, w starszych wersjach Androida, dostęp do systemu plików był stosunkowo swobodny. Aplikacje mogły czytać i pisać pliki praktycznie wszędzie na zewnętrznym magazynie (karte SD), korzystając z uprawnień WRITE_EXTERNAL_STORAGE i READ_EXTERNAL_STORAGE. To powodowało problemy z organizacją danych, konfliktami między aplikacjami i bezpieczeństwem, ponieważ jedna aplikacja mogła uzyskać dostęp do danych innej.
Sytuacja zaczęła się zmieniać wraz z pojawieniem się koncepcji sandboxa dla każdej aplikacji. Każda otrzymała wyznaczoną prywatną przestrzeń do przechowywania swoich danych (Context.getFilesDir(), Context.getCacheDir()), do której inne aplikacje nie miały bezpośredniego dostępu.
W Androidzie 4.4 (KitKat) wprowadzono Storage Access Framework (SAF) – API do zarządzania dostępem do dokumentów i innych plików przez specjalny interfejs użytkownika systemu. Umożliwiło to użytkownikom wybieranie plików i katalogów, do których aplikacja uzyskiwała tymczasowy dostęp, bez konieczności nadawania szerokich uprawnień READ_EXTERNAL_STORAGE.
Znaczące zmiany nastąpiły w Androidzie 6.0 (Marshmallow) wraz z wprowadzeniem uprawnień w czasie działania. Uprawnienia do odczytu i zapisu na zewnętrznym magazynie były żądane od użytkownika podczas działania aplikacji, co zwiększyło przejrzystość i kontrolę nad dostępem do danych.
Android 10 (Q) wprowadził Scoped Storage, odizolowane przechowywanie. To najważniejsza zmiana od lat. Zamiast szerokiego dostępu do całego zewnętrznego magazynu, domyślnie aplikacje mają dostęp tylko do:
- Ich własnych prywatnych katalogów (
getExternalFilesDir()). - Wspólnych kolekcji multimediów (zdjęcia, filmy, audio) przez API MediaStore.
- Innych plików wybranych przez użytkownika przez SAF.
Szeroki dostęp do zewnętrznego magazynu dla określonych typów plików (np. plików dokumentów) jest możliwy tylko przez SAF. Dla aplikacji, które potrzebują dostępu do wszystkich plików (np. menedżerów plików), wprowadzono nowe uprawnienie MANAGE_EXTERNAL_STORAGE, które wymaga specjalnego przeglądu i nie jest przyznawane większości aplikacji.
Niektóre ważne punkty:
- Pamięć wewnętrzna: Zawsze była prywatna dla każdej aplikacji.
- Pamięć zewnętrzna: Przeszła od swobodnego dostępu do ściśle kontrolowanego i izolowanego magazynu dla każdej aplikacji.
- MediaStore: jest preferowaną metodą pracy z plikami multimedialnymi w wspólnych kolekcjach.
- SAF: zapewnia bezpieczny i wygodny sposób, aby użytkownik mógł udzielić aplikacji dostępu do plików poza jej prywatną przestrzenią.
Ewolucja systemu przechowywania odzwierciedla dążenie Google do zwiększenia bezpieczeństwa danych użytkowników i uproszczenia zarządzania plikami dla deweloperów.