Android 6.0 „Marshmallow” i obsługa kart pamięci SD

Jak być może już słyszeliście, w Androidzie 6.0 zaszły spore zmiany w obsłudze kart pamięci. Do tej pory jednak większość użytkowników nie mogła ich wypróbować, ponieważ nowa wersja systemu dostępna była jedynie na Nexusach nieposiadających gniazd na karty pamięci lub raczej niedostępnych u nas urządzeniach z serii Android One. To się jednak powoli zmienia dzięki aktualizacjom od producentów oraz już całkiem stabilnym kompilacją CyanogenModa 13.

Niestety, Google nie przyłożyło się do wyjaśniania owych zmian użytkownikom, a nie są one takie proste i jednoznaczne jak się wydaje. Dlatego postanowiłem napisać ten artykuł. Otóż Android 6.0 po wykryciu karty pamięci oferuje jej sformatowanie na dwa sposoby:

  • Jako pamięć przenośną, co nie zmienia praktycznie prawie nic w zakresie obsługi karty SD względem poprzednich wersji systemu. Prawie, ponieważ tracimy tu możliwość przenoszenia aplikacji na kartę pamięci (ta opcja została w Marshmallow zarezerwowana jedynie dla kart sformatowanych jako pamięć wewnętrzna). Oczywiście po zrootowaniu nadal da się korzystać z rozwiązań w stylu Link2SD, ale out-of-box aplikacji przenieść się nie da.
  • Jako pamięć wewnętrzną, co skutkuje  utratą dostępu do pamięci wbudowanej z poziomu menadżerów plików i możliwością przechowywania na niej jedynie programów i ich danych (ponownie, jeśli mamy roota da się to obejść), a karta SD staje się niewidoczna w custom recovery czy innych urządzeniach po jej przełożeniu (ponieważ jest zaszyfrowana). Można natomiast przenosić na nią aplikacje, a nawet od razu je tam instalować (bez ich ręcznego przerzucania po instalacji). Niestety nadal nie wszystkie – tak jak w poprzednich wersjach systemu, deweloperzy nadal mogą to blokować. Są też czasem problemy ze znikaniem przeniesionych programów po restarcie systemu czy zainstalowaniu aktualizacji. Dodatkowo, karta pamięci staje się domyślną lokalizacją zapisu wszystkich plików (np. w aplikacji aparatu Google).

Także jak widać nie jest tak idealnie, że karta pamięci jest scalana z pamięcią wbudowaną i możemy na nią przenosić wszystkie aplikacje. Ograniczenia nadal występują, po prostu aplikacje mogą być w końcu instalowane bezpośrednio na karcie pamięci, co usuwa problem z niemożnością ich zainstalowania ze względu na zbyt mało miejsca w pamięci wbudowanej urządzenia mimo wystarczającej ilości pamięci na karcie SD.

Mam nadzieję, że ten krótki opis pomoże Wam podjąć decyzję co zrobić ze swoją kartą pamięci w Androidzie 6.0 🙂

UWAGA! Po sformatowaniu karty pamięci należy pamiętać o niezwłocznym zrestartowaniu systemu. Niestety żaden komunikat informujący o tym się nie pojawia po zakończeniu procesu. A powinien, ponieważ bez restartu karta SD sformatowana jako pamięć wewnętrzna nie jest jeszcze poprawnie widziana przez system i próba przeniesienia na nią aplikacji czy danych może się skończyć bootloopem, a w konsekwencji koniecznością przeprowadzania wipe’a. Dopiero po restarcie można bez obaw uruchomić proces przenoszenia danych i zacząć ręcznie przerzucać aplikacje.

revanmj's tech blog