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?
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:
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.
Es gibt einige Faktoren, die dies beeinflussen können:
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:installLocation
Dies 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)
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
Service
wird beendet und nicht neu gestartet, wenn der externe Speicher erneut bereitgestellt wird. [...]Alarmdienste
Ihre bei registrierten Alarme
AlarmManager
werden 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
AccountManager
verschwinden, bis der externe Speicher wieder bereitgestellt wird.Sync-Adapter
Ihre
AbstractThreadedSyncAdapter
und alle ihre Synchronisierungsfunktionen werden nicht funktionieren, bis der externe Speicher wieder bereitgestellt wird.Geräteadministratoren
Ihre
DeviceAdminReceiver
und 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“
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
Fluss
Izzy
Sylvain Huard