Wycofanie SDCardFS

SDCardFS jest wycofywany na urządzeniach wprowadzonych na rynek z Androidem 11 lub nowszym i jądrem w wersji 5.4 lub nowszej. Na takich urządzeniach testowanie VTS nie zezwala na zamontowane systemy plików wymienione jako SDCardFS. Urządzenia z Androidem 11 lub nowszym, ale z jądrem w wersji 4.19 lub starszej mogą nadal korzystać z SDCardFS, ale Google nie zapewnia dodatkowego wsparcia.

Przed wycofaniem SDCardFS umożliwiał kontrolowanie dostępu do emulowanej pamięci wewnętrznej i zewnętrznych kart SD, dzięki czemu aplikacje miały dostęp tylko do danych, które były dla nich istotne. Dodatkowo zapewniało ono warstwę ignorowania wielkości liter, a także dodatkowe śledzenie miejsca na dane.

Funkcja zastępująca SDCardFS

Zastępujący go SDCardFS korzysta z kilku funkcji systemu plików jądra Linuksa, aby osiągnąć podobne rezultaty. Wielkość liter jest obsługiwana bezpośrednio przez system plików, co powoduje, że czasy wyszukiwania są niemal identyczne w przypadku folderów z uwzględnianiem i bez uwzględniania wielkości liter. Dzięki temu SDCardFS nie spowalnia działania w przypadku dużych folderów. Śledzenie limitów, które SDCardFS wykonywał w celu szybkiego zbierania danych o pamięci na potrzeby ustawień, jest teraz konfigurowane z przestrzeni użytkownika za pomocą limitów projektu. W niektórych kontekstach, w których wydajność jest kluczowa, katalogi są montowane w miejscu. Nowa implementacja FUSE zapewnia pamięć o ograniczonym zakresie na potrzeby bezpośredniego dostępu do systemu plików, głównie w celu obsługi pomijania informacji o lokalizacji.

Konfigurowanie funkcji wymiany karty SD

Aby włączyć limity projektu i składanie wielkości liter w przypadku emulowanej pamięci bez SDCardFS na urządzeniu wprowadzonym na rynek z Androidem 11 lub nowszym, dziedzicz z emulated_storage.mk w pliku device.mk:

$(call inherit-product, $(SRC_TARGET_DIR)/product/emulated_storage.mk)

Ostrzeżenie: nie rób tego na urządzeniach z Androidem 10 lub starszym, ponieważ natywna niewrażliwość systemu plików na wielkość liter jest niezgodna z ustawieniami szyfrowania opartymi na plikach, które są używane na takich urządzeniach. Na takich urządzeniach konieczne jest dalsze korzystanie z SDCardFS.

Powody wycofania SDCardFS

Istnieje wiele powodów, dla których SDCardFS jest wycofywany.

Stabilność

SDCardFS ma kilka problemów związanych z rozróżnianiem wielkości liter, a także z niedoborem pamięci. Wyszukiwanie bez uwzględniania wielkości liter może być dość wolne w przypadku dużych katalogów, ponieważ musi ono przeszukiwać katalog niższego poziomu w celu znalezienia alternatywnych przypadków. Jednoczesne uzyskiwanie dostępu do górnego i dolnego systemu plików może również powodować problemy.

Równość na wyższym poziomie

SDCardFS wymaga dodatkowych poprawek w systemie VFS, aby obsługiwać zmianę opcji w przypadku montowania przez powiązanie. Te poprawki powodują dodatkową pracę związaną z akceptowaniem zmian w tych obszarach. Funkcje SDCardFS można replikować za pomocą komponentów wyższego poziomu, co eliminuje ten problem.

Równoważność funkcji z interfejsem API

W poprzedniej wersji Androida pamięć o ograniczonym zakresie ograniczała dostęp do określonych typów metadanych. Bezpośredni dostęp do pamięci za pomocą SDCardFS nie obsługuje tych funkcji pamięci o ograniczonym zakresie.