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

9

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

Izzy
quelle
1
Was passiert, wenn Sie versuchen, die Apps auf SD zu verschieben?
Flow
1
@ Flow siehe meine Antwort. In beiden Apps sind Widgets integriert, sodass App2SD höchstwahrscheinlich nicht unterstützt wird.
Izzy
Wenn Sie Ihre App wegen "wenig internem Speicher" auf SD-
Sylvain Huard

Antworten:

7

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: "Notizen an Ihren Startbildschirm anheften"; Any.DO: "Sie können unser Widget sogar Ihrem Startbildschirm hinzufügen")
  • Ausführen eines Dienstes

Da auf die SD-Karte beim Herstellen einer Verbindung zu einem Computer nicht zugegriffen werden kann, stürzen beide Dinge ab (da sie nicht mehr auf ihre Daten usw. zugreifen können). Natürlich gibt es immer die Möglichkeit, dass es dem Entwickler einfach egal war - in diesem Fall sollten Sie ihn kontaktieren und fragen.

Izzy
quelle
Ich bin auf einen interessanten Fall gestoßen - eine App, f-droid.org/repository/browse/?fdid=com.nanoconverter.zlab, die einen Defekt aufweist - sie bietet Hintergrunddienst und Widget, aber meine 4.2.2 kann sie verschieben SD-Karte (Verlust dieser Funktionalität, ofc).
Kostenlose Beratung
3

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

  1. Eine App muss ausdrücklich erklären, dass es vorzuziehen / möglich ist, auf einer SD-Karte installiert zu werden.

    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. Dies ist eine optionale Funktion, die Sie für Ihre Anwendung mit dem android:installLocationManifest-Attribut deklarieren können . Wenn Sie dieses Attribut nicht deklarieren, wird Ihre Anwendung nur auf dem internen Speicher installiert und kann nicht in den externen Speicher verschoben werden .

    (Hervorhebung von mir)

  2. Eine App wird so kompiliert, dass sie mit API 7 (Froyo) oder niedriger kompiliert wird. Dies unterstützt die Installation einer App auf einer SD-Karte nicht (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. Bestehende Anwendungen, die vor API Level 8 erstellt wurden, werden immer auf dem internen Speicher installiert und können nicht in den externen Speicher verschoben werden (auch nicht auf Geräten mit API Level 8) . Wenn Ihre Anwendung jedoch so konzipiert ist, dass sie eine API-Stufe unter 8 unterstützt, können Sie diese Funktion für Geräte mit API-Stufe 8 oder höher unterstützen und dennoch mit Geräten kompatibel sein, die eine API-Stufe unter 8 verwenden.

    (Hervorhebung von mir)

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

Wenn der Benutzer dem USB-Massenspeicher ermöglicht, Dateien für seinen Computer freizugeben (oder den externen Speicher auf andere Weise zu entfernen oder zu entfernen), wird jede auf dem externen Speicher installierte und aktuell ausgeführte Anwendung beendet. Das System wird von der Anwendung effektiv nicht mehr informiert, bis der Massenspeicher deaktiviert und der externe Speicher erneut auf dem Gerät bereitgestellt wird. Dies kann nicht nur dazu führen, dass die Anwendung beendet wird und für den Benutzer nicht mehr verfügbar ist, sondern auch dazu, dass einige Arten von Anwendungen schwerwiegender beschädigt werden. Damit sich Ihre Anwendung wie erwartet konsistent verhält, sollten Sie nicht zulassen, dass Ihre Anwendung auf dem externen Speicher installiert wird, wenn sie eine der folgenden Funktionen verwendet. Dies liegt an den genannten Konsequenzen, wenn der externe Speicher nicht bereitgestellt wird:

  • Dienstleistungen

    Ihr Lauf Servicewird beendet und nicht neu gestartet, wenn der externe Speicher erneut bereitgestellt wird. [...]

  • Alarmdienste

    Ihre bei registrierten Alarme AlarmManagerwerden storniert. [...]

  • Eingabemethoden-Engines

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

  • Live-Hintergründe

    Ihr laufendes Live Wallpaper wird durch das Standard-Live Wallpaper ersetzt. [...]

  • App Widgets

    Ihr App-Widget wird vom Startbildschirm entfernt. Wenn der externe Speicher erneut bereitgestellt wird, kann der Benutzer Ihr App-Widget erst auswählen, wenn das System die Heimanwendung zurücksetzt (normalerweise erst nach einem Neustart des Systems).

  • Kundenbetreuer

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

  • Adapter synchronisieren

    Ihre AbstractThreadedSyncAdapterund alle Synchronisierungsfunktionen funktionieren erst, wenn der externe Speicher erneut bereitgestellt wird.

  • Geräteadministratoren

    Ihre DeviceAdminReceiverund alle Verwaltungsfunktionen werden deaktiviert. Dies kann unvorhersehbare Folgen für die Gerätefunktionalität haben, die nach dem erneuten Bereitstellen des externen Speichers bestehen bleiben kann.

  • Rundfunkempfänger, die auf "Start abgeschlossen" warten

    Das System liefert den ACTION_BOOT_COMPLETEDBroadcast, 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 werden redigiert. 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 eine SD-Karte verschoben werden können".

Quelle: Android Entwickler: Ort der App-Installation .

Andrew T.
quelle
1

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

BEARBEITEN: Für diese Methode ist Root-Zugriff auf Ihrem Telefon erforderlich. Außerdem muss Ihre SD-Karte so formatiert sein, dass eine zweite Partition darauf vorhanden ist.

Um zu vermeiden, dass die Antwort hier erneut redundant veröffentlicht wird, füge ich einfach einen Link dazu ein: /android//a/145591/167026

Preisgegeben
quelle