Nie można przenieść kilku aplikacji na kartę SD

9

Mam aplikacje takie jak Any.DO i AK Notepad zainstalowane w moim telefonie Samsung Galaxy Y Android 2.3.6. Próbowałem Titanium Backup i App 2 SD (przenieś aplikację na SD), ale nadal nie jestem w stanie przenieść tych aplikacji na kartę SD. Co jest nie tak? Czy ktoś może mi pomóc tutaj?

Izzy
źródło
1
Co się stanie, jeśli spróbujesz przenieść aplikacje na SD?
Flow,
1
@ Flow zobacz moją odpowiedź. Obie aplikacje mają zintegrowane widżety, więc najprawdopodobniej nie obsługują App2SD.
Izzy
Jeśli chcesz przenieść aplikację na kartę SD z powodu „małej ilości pamięci wewnętrznej”, sprawdź android.stackexchange.com/questions/30620/…
Sylvain Huard,

Odpowiedzi:

7

Aplikacja musi jawnie obsługiwać App2SD, w przeciwnym razie nie można przenieść jej na kartę. Istnieje kilka powodów, dla których aplikacja może go nie obsługiwać:

  • za pomocą widgetów (wydaje się, że obie wymienione aplikacje należą do tej kategorii. Notatnik AK: „Przypnij notatki do ekranu głównego”; Any.DO: „Możesz nawet dodać nasz widget do ekranu głównego”)
  • prowadzenie usługi

Ponieważ karta SD byłaby niedostępna podczas łączenia z komputerem, obie rzeczy „ulegałyby awarii” (ponieważ nie mogliby już uzyskać dostępu do swoich danych itp.). Oczywiście zawsze istnieje możliwość, że deweloper po prostu nie dbał - w takim przypadku należy się z nim skontaktować i zapytać.

Izzy
źródło
Spotkałem interesujący przypadek - aplikację, f-droid.org/repository/browse/?fdid=com.nanoconverter.zlab, która ma wadę - oferuje obsługę w tle i widget, ale mój 4.2.2 może go przenieść do Karta SD (utrata tej funkcji, ofc).
Bezpłatne konsultacje
3

Istnieje kilka czynników, które mogą mieć na to wpływ:

  1. Aplikacja musi wyraźnie oświadczyć, że lepiej / można ją zainstalować na karcie SD.

    Począwszy od poziomu API 8, możesz zezwolić na instalację aplikacji w pamięci zewnętrznej (na przykład na karcie SD urządzenia). Jest to opcjonalna funkcja, którą można zadeklarować dla aplikacji za pomocą android:installLocationatrybutu manifestu. Jeśli nie zadeklarujesz tego atrybutu, aplikacja zostanie zainstalowana tylko w pamięci wewnętrznej i nie będzie można jej przenieść do pamięci zewnętrznej .

    (Moje podkreślenie)

  2. Aplikacja jest ustawiona na kompilację przy użyciu API 7 (Froyo) lub niższego, co nie obsługuje instalowania aplikacji na karcie SD (nawet jeśli jest zainstalowana na GingerBread lub nowszych urządzeniach)

    Możliwość zainstalowania aplikacji w pamięci zewnętrznej jest funkcją dostępną tylko na urządzeniach z interfejsem API poziomu 8 (Android 2.2) lub nowszym. Istniejące aplikacje, które zostały zbudowane przed API poziomu 8, zawsze będą instalowane w pamięci wewnętrznej i nie mogą zostać przeniesione do pamięci zewnętrznej (nawet na urządzeniach z API poziomu 8) . Jeśli jednak aplikacja jest zaprojektowana do obsługi poziomu interfejsu API niższego niż 8, możesz wybrać obsługę tej funkcji dla urządzeń z poziomem API 8 lub wyższym i nadal być kompatybilnym z urządzeniami korzystającymi z poziomu API niższego niż 8.

    (Moje podkreślenie)

Powody, dla których niektóre aplikacje nie są preferowane do instalowania na karcie SD, są następujące:

Gdy użytkownik umożliwi pamięci masowej USB udostępnianie plików swojemu komputerowi (lub w inny sposób odmontuje lub usunie pamięć zewnętrzną), każda aplikacja zainstalowana w pamięci zewnętrznej i aktualnie uruchomiona zostanie zabita. System skutecznie nie rozpoznaje aplikacji, dopóki pamięć masowa nie zostanie wyłączona, a pamięć zewnętrzna zostanie ponownie zamontowana w urządzeniu. Oprócz zabicia aplikacji i uczynienia jej niedostępnym dla użytkownika, może to poważniej uszkodzić niektóre typy aplikacji. Aby aplikacja zachowywała się zgodnie z oczekiwaniami, nie należy zezwalać na instalowanie aplikacji w pamięci zewnętrznej, jeśli korzysta ona z jednej z następujących funkcji, ze względu na przytoczone konsekwencje odmontowania pamięci zewnętrznej:

  • Usługi

    Twój bieg Servicezostanie zabity i nie zostanie ponownie uruchomiony po ponownym zamontowaniu pamięci zewnętrznej. [...]

  • Usługi alarmowe

    Twoje zarejestrowane alarmy AlarmManagerzostaną anulowane. [...]

  • Silniki metody wprowadzania danych

    Twój edytor IME zostanie zastąpiony domyślnym edytorem IME. [...]

  • Animowane tapety

    Twoja działająca Live Wallpaper zostanie zastąpiona domyślną Live Wallpaper. [...]

  • Widżety aplikacji

    Twój widget aplikacji zostanie usunięty z ekranu głównego. Gdy pamięć zewnętrzna zostanie ponownie zamontowana, widżet aplikacji nie będzie dostępny dla użytkownika, dopóki system nie zresetuje aplikacji domowej (zwykle nie do momentu ponownego uruchomienia systemu).

  • Menadżerowie konta

    Twoje konta utworzone za pomocą AccountManagerznikną, dopóki pamięć zewnętrzna nie zostanie ponownie zamontowana.

  • Synchronizuj adaptery

    Twoja AbstractThreadedSyncAdapteri cała jej funkcja synchronizacji nie będzie działać, dopóki pamięć zewnętrzna nie zostanie ponownie zamontowana.

  • Administratorów urządzeń

    Twoje DeviceAdminReceiveri wszystkie jego funkcje administracyjne zostaną wyłączone, co może mieć nieprzewidywalne konsekwencje dla funkcjonalności urządzenia, które mogą się utrzymywać po ponownym zamontowaniu pamięci zewnętrznej.

  • Odbiorniki rozgłoszeniowe nasłuchują „rozruch zakończony”

    System dostarcza ACTION_BOOT_COMPLETEDtransmisję przed podłączeniem pamięci zewnętrznej do urządzenia. Jeśli aplikacja jest zainstalowana w pamięci zewnętrznej, nigdy nie będzie mogła odbierać tej transmisji.

Jeśli aplikacja korzysta z którejkolwiek z wymienionych powyżej funkcji, nie należy zezwalać jej na instalację w pamięci zewnętrznej.

(Niektóre części zostały zredagowane. Wyjaśniają, co muszą zrobić programiści, aby ich aplikacje działały poprawnie po ponownym zamontowaniu karty SD).

Uwaga : ta odpowiedź służy jako ogólna informacja do „Dlaczego niektórych aplikacji nie można przenieść na kartę SD”

Źródło: Android Developers: App Install Location .

Andrew T.
źródło
1

Z pewnością możliwe jest przeniesienie aplikacji na kartę SD i nadal ich doskonałe działanie (w tym widżety i usługi) za pośrednictwem Link2SD.

EDYCJA: Korzystanie z tej metody wymaga dostępu do konta root w telefonie, a także wymaga sformatowania karty SD, aby mieć na niej drugą partycję.

Aby uniknąć niepotrzebnego publikowania odpowiedzi tutaj, po prostu upuszczę link do niej: https://android.stackexchange.com/a/145591/167026

Ujawniony
źródło