Einige Apps können nicht auf die SD-Karte verschoben werden

Ich habe Apps wie Any.DO und AK Notepad auf meinem Samsung Galaxy Y Android 2.3.6-Telefon installiert. Ich habe Titanium Backup und App 2 SD (App auf SD verschieben) ausprobiert , kann diese Apps aber immer noch nicht auf die SD-Karte verschieben. Was ist falsch? Kann mir hier jemand weiterhelfen?

Was passiert, wenn Sie versuchen, die Apps auf SD zu verschieben?
@Flow siehe meine Antwort. Beide Apps haben Widgets integriert, daher unterstützen sie App2SD höchstwahrscheinlich nicht.
Wenn Sie Ihre App wegen „wenig internem Speicher“ auf die SD-Karte verschieben möchten, gehen Sie zu android.stackexchange.com/questions/30620/…

Antworten (3)

Eine App muss App2SD explizit unterstützen, sonst können Sie sie nicht auf die Karte verschieben. Es gibt mehrere Gründe, warum eine App dies möglicherweise nicht unterstützt:

  • Verwenden von Widgets (beide genannten Apps scheinen in diese Kategorie zu fallen. AK Notepad: „Pin notes to your home screen“; Any.DO: „You can even add our widget to your homescreen“)
  • Ausführen eines Dienstes

Da die SD-Karte beim Verbinden mit einem Computer nicht zugänglich wäre, würden beide Dinge "abstürzen" (da sie nicht mehr auf ihre Daten zugreifen könnten usw.). Natürlich besteht immer die Möglichkeit, dass es dem Entwickler einfach egal war – in diesem Fall sollten Sie ihn kontaktieren und fragen.

Ich bin auf einen interessanten Fall gestoßen – eine App, f-droid.org/repository/browse/?fdid=com.nanoconverter.zlab , die einen Defekt hat – sie bietet Hintergrunddienste und Widgets, aber mein 4.2.2 kann sie verschieben SD-Karte (Verlust dieser Funktionalität, ofc).

Es gibt einige Faktoren, die dies beeinflussen können:

  1. Eine App muss ausdrücklich erklären, dass sie bevorzugt/möglich auf einer SD-Karte installiert werden soll.

    Ab API-Level 8 können Sie zulassen, dass Ihre Anwendung auf dem externen Speicher (z. B. der SD-Karte des Geräts) installiert wird. android:installLocationDies ist eine optionale Funktion, die Sie für Ihre Anwendung mit dem manifest-Attribut deklarieren können . Wenn Sie dieses Attribut nicht angeben, wird Ihre Anwendung nur auf dem internen Speicher installiert und kann nicht auf den externen Speicher verschoben werden .

    (Hervorhebung von mir)

  2. Eine App ist so eingestellt, dass sie mit API 7 (Froyo) oder niedriger kompiliert wird, was die Installation einer App auf einer SD-Karte nicht unterstützt (selbst wenn sie auf GingerBread oder neueren Geräten installiert ist).

    Die Möglichkeit, Ihre Anwendung auf dem externen Speicher zu installieren, ist eine Funktion, die nur auf Geräten mit API Level 8 (Android 2.2) oder höher verfügbar ist. Vorhandene Anwendungen, die vor API Level 8 erstellt wurden, werden immer auf dem internen Speicher installiert und können nicht auf den externen Speicher verschoben werden (auch nicht auf Geräten mit API Level 8) . Wenn Ihre Anwendung jedoch darauf ausgelegt ist, einen API-Level unter 8 zu unterstützen, können Sie diese Funktion für Geräte mit API-Level 8 oder höher unterstützen und dennoch mit Geräten kompatibel sein, die einen API-Level unter 8 verwenden.

    (Hervorhebung von mir)

Die Gründe, warum einige Apps nicht auf einer SD-Karte installiert werden sollen, sind folgende:

Wenn der Benutzer den USB-Massenspeicher aktiviert, um Dateien mit seinem Computer zu teilen (oder den externen Speicher anderweitig unmountet oder entfernt), wird jede Anwendung, die auf dem externen Speicher installiert ist und derzeit ausgeführt wird, beendet. Das System erkennt die Anwendung praktisch nicht, bis der Massenspeicher deaktiviert und der externe Speicher wieder auf dem Gerät bereitgestellt wird. Abgesehen davon, dass die Anwendung beendet und für den Benutzer nicht mehr verfügbar ist, kann dies einige Arten von Anwendungen ernsthafter beschädigen. Damit sich Ihre Anwendung durchweg wie erwartet verhält, sollten Sie aufgrund der genannten Folgen beim Aushängen des externen Speichers nicht zulassen, dass Ihre Anwendung auf dem externen Speicher installiert wird, wenn sie eine der folgenden Funktionen verwendet:

  • Dienstleistungen

    Ihre Ausführung Servicewird beendet und nicht neu gestartet, wenn der externe Speicher erneut bereitgestellt wird. [...]

  • Alarmdienste

    Ihre bei registrierten Alarme AlarmManagerwerden gelöscht. [...]

  • Engines für Eingabemethoden

    Ihr IME wird durch den Standard-IME ersetzt. [...]

  • Live-Hintergründe

    Ihr laufendes Live-Hintergrundbild wird durch das standardmäßige Live-Hintergrundbild ersetzt. [...]

  • App-Widgets

    Ihr App-Widget wird vom Startbildschirm entfernt. Wenn der externe Speicher erneut bereitgestellt wird, steht Ihr App-Widget dem Benutzer erst dann zur Auswahl zur Verfügung, wenn das System die Home-Anwendung zurücksetzt (normalerweise nicht vor einem Systemneustart).

  • Kundenbetreuer

    Ihre mit erstellten Konten AccountManagerverschwinden, bis der externe Speicher wieder bereitgestellt wird.

  • Sync-Adapter

    Ihre AbstractThreadedSyncAdapterund alle ihre Synchronisierungsfunktionen werden nicht funktionieren, bis der externe Speicher wieder bereitgestellt wird.

  • Geräteadministratoren

    Ihre DeviceAdminReceiverund alle zugehörigen Administratorfunktionen werden deaktiviert, was unvorhersehbare Folgen für die Gerätefunktionalität haben kann, die möglicherweise bestehen bleiben, nachdem der externe Speicher wieder bereitgestellt wird.

  • Broadcast-Empfänger warten auf "Boot Completed"

    Das System übermittelt die ACTION_BOOT_COMPLETEDÜbertragung, bevor der externe Speicher auf dem Gerät bereitgestellt wird. Wenn Ihre Anwendung auf dem externen Speicher installiert ist, kann sie diese Übertragung niemals empfangen.

Wenn Ihre Anwendung eine der oben aufgeführten Funktionen verwendet, sollten Sie nicht zulassen, dass Ihre Anwendung auf einem externen Speicher installiert wird.

(Einige Teile sind geschwärzt. Sie erklären, was Entwickler tun müssen, damit ihre Apps nach dem erneuten Einhängen der SD-Karte ordnungsgemäß funktionieren.)

Hinweis : Diese Antwort dient als allgemeine Information zu „Warum einige Apps nicht auf die SD-Karte verschoben werden können“

Quelle: Android-Entwickler: Ort der App-Installation .

Es ist definitiv möglich, Apps über Link2SD auf die SD-Karte zu verschieben und sie trotzdem perfekt funktionieren zu lassen (Widgets und Dienste inbegriffen).

BEARBEITEN: Die Verwendung dieser Methode erfordert Root-Zugriff auf Ihrem Telefon und erfordert auch, dass Ihre SD-Karte formatiert wird, um eine zweite Partition darauf zu haben.

Um zu vermeiden, dass die Antwort hier erneut redundant gepostet wird, lasse ich einfach einen Link darauf fallen: https://android.stackexchange.com/a/145591/167026