App2SD

Revision as of 20:06, 13 August 2017 by Florian (talk | contribs)
(diff) ‚Üź Older revision | Latest revision (diff) | Newer revision ‚Üí (diff)

App2SD (App to SD) ist eine M√∂glichkeit, Apps auf die externe SD-Karte zu verschieben. Seit Android 6.0¬†Marshmallow "Marshmallow" besteht die M√∂glichkeit, die SD-Karte als internen Speicher zu formatieren, was Drittanbieterl√∂sungen, die App2SD oder Link2SD anbieten, f√ľr den Nutzer ggf. irrelevant werden l√§sst. Es h√§ngt allerdings vom spezifischen Nutzungsverhalten ab, welche M√∂glichkeit die beste zur Erweiterung des internen Speichers durch eine SD-Karte darstellt.

EinleitungEdit

Dieser Artikel basiert teilweise auf dem Thread von michael_and [1] aus dem Android-Hilfe-Forum. Dieser Artikel wurde freundlichst von ihm zur Verf√ľgung gestellt. Teilweise wurden Textpassagen w√∂rtlich kopiert oder bearbeitet eingef√ľgt. Eine Kennzeichnung wird hier nicht vorgenommen.

Wozu App2SDEdit

Android speichert Apps immer auf dem internen Speicher, dem sogenannten ROM. Dieser ist bei den meisten Ger√§ten auf 100-200 MB begrenzt und bietet damit nicht unbegrenzt Platz zum Speichern von Apps, insbesondere wenn man anf√§ngt, sein Android-Smartphone tiefergehend zu verwenden, zum Beispiel f√ľr Bildbearbeitung. Da die Apps auch ihre Daten auf dem internen Speicher ablegen, kann dieser schnell seine Grenzen erreichen. In diesem Fall w√ľrde Android die Installation von weiteren Apps verweigern. Um diesem Speichermangel zu entkommen, empfiehlt es sich, die Apps auf die Speicherkarte, die externe SD-Karte, auszulagern. Weiter im Detail: Wenn eine App installiert und benutzt wird, dann wird der folgende Speicher belegt, bei dem es sich um eine Partition im internen Telefonspeicher handelt:

(1) /data/app/<Dateiname>.Apk

(2) /data/dalvik-cache/<Dateiname_der_App>.dex

(3) /data/data/<Verzeichnisname_der_App>/lib/<Dateiname>.so

(4) /data/data/<Verzeichnisname_der_App>/<sonstige Dateien und Verzeichnisse>

Was ist das alles genau? Nun: (1) = Die heruntergeladene App (Gr√∂√üe wird im Android Market angezeigt) (2) = Eine aus (1) vom Betriebssystem generierte ausf√ľhrbare Datei. Bemerkung: Wenn sie gel√∂scht wird, stellt das Betriebssystem sie aus der *.apk-Datei (1) wieder her, ist also nicht schlimm, bringt aber auch nichts, au√üer man l√∂scht eine dalvik-cache-Datei, zu der es gar keine *.apk-Datei mehr gibt, also "Datenm√ľll", den es bei sauberer De-Installation aber eigentlich nicht geben darf. Wenn man auf ein App-Symbol tippt, um eine App zu starten, dann greift das Betriebssystem auf diese dalvik-Datei zu und NICHT auf die *.apk-Datei aus "(1)". (3)=library Dateien, sind bei einigen (vielen) Apps gar nicht vorhanden, k√∂nnen manchmal aber auch ziemlich gro√ü sein

(4) = Sonstige App-spezifischen Daten. Datenmenge unterschiedlich, im allgemeinen eher gering (Ausnahme z.B. Browser cache...)


Man sieht also: Wenn man (1), (2), (3) und (4) auf die SD-Karte versch√∂be, w√§re der interne Speicher entlastet. Bei den meisten heute √ľblichen Methoden wird aber nur ein TEIL davon auf die SD-Karte verschoben, oft nur (1).

Die MöglichkeitenEdit

Oft wird nicht die gesamte App mit all ihren Dateien auf die SD-Karte verschoben, sondern nur einzelne Teile. Um dies zu erreichen, gibt es drei Methoden.

Methode AEdit

Diese Methode bezeichnet man als "natives App2SD von Google". Dabei werden meist Apps zum Verschieben der Apps verwendet (z.B. App 2 SD, Move 2 SD).

EckdatenEdit

  • ab Android 2.2=Froyo
  • kein "root" ben√∂tigt
  • keine zweite SD-Karten-Partition ben√∂tigt
  • Auswahl auf "per App"-Basis m√∂glich
  • Viele Apps lassen sich aber gar nicht verschieben mit dieser Methode
  • Nur (1) wird verschoben (also nur die *.apk-Datei der jeweiligen App)

BeschreibungEdit

Man kann f√ľr jede selbst installierte App entscheiden, ob man diese auf die SD-Karte verschieben m√∂chte. Das geht auch nachtr√§glich, und es geht "hin" und "zur√ľck" nach Belieben. Dabei wird die *.apk-Datei nach "/sdcard/.android-secure/" (="/mnt/secure/asec/") verschoben. Au√üerdem entsteht der Einh√§ngpunkt (mount point) "/mnt/asec/<dateiname>/", wo sich die ausgelagerte .apk-Datei im Klartext befindet. Mit einem Datei-Browser kann man das √ľberpr√ľfen. Das Betriebssystem (ab 2.2) unterst√ľtzt diese F√§higkeit "ab Werk", f√ľr Android 2.1 und fr√ľher ist dies nicht m√∂glich.

EinschränkungenEdit

Da diese Methode "oberfl√§chlich" ist, ist es notwendig, dass die zu verschiebene App auch App2SD nach Methode A unterst√ľtzt. Ist dies nicht der Fall, ist diese Methode f√ľr die App nicht verf√ľgbar. Beispiele f√ľr diese nicht-funktionierenden Apps sind zum Beispiel diverse Widgets oder die App Android-Hilfe. Auch System-Apps kann man grunds√§tzlich nicht verschieben.

Diese Methode ist also Bestandteil des Betriebssystems. Dazu gibt es verschiedene grafische Benutzeroberflächen (=GUI), die das Hin- und Herschieben erleichtern, z.B. die App "Move2SD".

Methode BEdit

Die Methode B "symbolic links auf Verzeichniss(e) auf der SD-Karte" bekommt oft von App-Entwicklern ebenfalls den Namen "App2SD"; damit wird eine Verwechslung mit der Methode A erzeugt, das scheint aber niemanden so richtig zu interessieren.

EckdatenEdit

  • ab Android 1.6
  • Root-Zugang wird ben√∂tigt!
  • Zweite SD-Karten-Partition wird ben√∂tigt! (als zweite Partition nach der FAT32-Partition, aber auch als prim√§re(!) Partition einrichten, und zwar als ext2/ext3/ext4 (je nachdem was das Android-System unterst√ľtzt). Man sieht f√ľr die auszulagernden Dateien zwischen 500 und 1400 MB vor, dies sollte f√ľr den Normalgebrauch ausreichen. Gr√∂√üere Partitonen als 1,4 GB kann Berichten zufolge zu massiven Problemen f√ľhren.)
  • Auswahl auf "per App"-Basis NICHT m√∂glich (nur f√ľr "alle oder keine" Apps [nur Nicht-System-Apps])
  • Es ist irrelevant, ob die zu verschiebende App ein "App2SD" gem√§√ü "Methode A" unterst√ľtzt oder nicht
  • Bei A2SD wird nur (1) verschoben (nur die *.apk-Datei), bei neueren Varianten wie A2SD+ oder "Dark Tremor Apps2SD" kann auch zus√§tzlich wahlweise der dalvik-cache (2) und auch (3)+(4) auf die SD-Karte verschoben werden (aber nicht App-spezifisch).

BeschreibungEdit

Man muss diese Funktion in der Regel √ľber das Recovery, zum Beispiel das ClockWorkMod-Recovery einspielen. Bei den meisten Custom-ROMs ist diese Funktion schon vorinstalliert. Nach dem Starten des Systems (boot) erkennt das Betriebssystem die zweite Partition der SD-Karte und bindet diese als Dateisystem ein (mount). Diese Partition steht dann unter dem Pfad

/system/sd/

zur Verf√ľgung..

Das ist die Grundvoraussetzung, dass die Methode B reibungslos funktioniert. Über eine grafische Benutzeroberfläche kann man nun die Daten der App von

/data/app

nach

/system/sd

verschieben. Damit liegen die Daten nun auf der SD-Karte, genauer: auf der zweiten Partition. Dann wird ein symbolischer Link (symbolic link) erzeugt, der von /data/app/ nach /system/sd/app/ zeigt. Auf diese Weise kann das Betriebssystem wie gewohnt auf "/data/app/<Dateiname>.apk" zugreifen und merkt gar nicht, dass diese Datei auf der SD-Karte liegt, bzw. es ist ihm "egal". Alle Betriebssystem-Operationen k√∂nnen also wie √ľblich ablaufen, die √Ąnderung ist f√ľr das Betriebssystem v√∂llig transparent, und darum geht es auch f√ľr Android 1.6 oder 2.1.

Auf die gleiche Weise kann man auch den Dalvik-cache auf die SD-Karte "umleiten". Ein Beispiel einer grafischen Bedienoberfläche (user interface) ist die App "A2SDGUI for Darktremor A2SD", womit man (1) (apk) oder (2) (dalvik-cache) von dem internen Speicher auf die SD verschieben kann.

EinschränkungenEdit

Diese Methode erlaubt es nicht, einzelne Apps auf die SD-Karte zu verlagern, es geht nur f√ľr alle Apps oder f√ľr keine. Man kann w√§hlen zwischen "nur *.[[Apk]-Dateien", "nur Dalvik-Cache" oder beides, aber diese Wahl betrifft dann folglich alle (Nicht-System-)Apps.

Methode CEdit

Die Methode C ist "Symbolic links auf Dateien auf der SD-Karte".

EckdatenEdit

  • ab Android 1.6 (oder sogar schon fr√ľher? - naja √§lteres Android hat hier eh niemand...)
  • (momentan Probleme mit Android 2.3, siehe Bemerkung unten)
  • "root" wird ben√∂tigt
  • Zweite SD-Karten-Partition wird ben√∂tigt! (als zweite Partition nach der FAT32-Partition, aber auch als primary(!) Partition einrichten, und zwar als ext2/ext3/ext4 (je nachdem, was das Android-System unterst√ľtzt))
  • Auswahl auf "per App"-Basis IST m√∂glich (auch f√ľr System-Apps)
  • Es ist irrelevant, ob die zu verschiebende App ein "App2SD" gem√§√ü "Methode A" unterst√ľtzt oder nicht
  • Es kann (1), (2) und (3) verschoben werden (frei w√§hlbar und kombinierbar pro App)

BeschreibungEdit

Das Prinzip ist insofern das Gleiche wie bei Methode B, als das hier ebenfalls mit symbolischen Links (engl. symbolic links) auf Orte er SD-Karte (2. Partition) gearbeitet wird. Der Unterschied ist, dass nicht wie ein symbolischer Link f√ľr ein komplettes Verzeichnis angelegt wird (f√ľr alle *.apk oder alle Dalvik-cache-Dateien), sondern dass pro App und pro Kategorie (1)/(2)/(3) entschieden werden kann, ob eine Umleitung zur SD-Karte per Link eingerichtet werden soll, oder nicht. Die grafische Benutzeroberfl√§che, wie auch die eigentliche Ausf√ľhrung stellt z.B. die App Link2SD ¬†[2] bereit. Man kann auch hier jederzeit eine App (bzw. Teil (1), (2) oder (3) dieser) zwischen internem und externem Speicher hin- und her schieben.

Als Mount-Punkt f√ľr die zweite Partition der SD-Karte verwendet Link2SD den Ordner /data/sdext2/.

Eine Anleitung zum Einrichten von Link2SD findet man hier.

VorteilEdit

Man kann flexibel auf die SD-Karte verschieben, was am sinnvollsten ist. Eine sinnvolle Vorgehensweise wäre, folgende Teile auf die SD-Karte zu verschieben:

(1) Alle "*.apk"-Dateien (weil diese im operativen Betrieb nicht verwendet werden, also keine Geschwindigkeitseinbuße bei langsamer externen Speicherkarte)

(2) Dalvik-Cache: nur f√ľr die Apps, die eher selten verwendet werden und wo man ggf. geringe Geschwindigkeitseinbu√üen in Kauf nehmen kann, oder auch solche, die einen sehr gro√üen Dalvik-Cache haben und wo es sich somit richtig lohnt.

(3) Library-Dateien: gleiche Vorgehensweise wie f√ľr (2)

Methoden mischenEdit

Da wir in der Linuxwelt sind, ist so ziemlich alles möglich, so auch das Kombinieren von den App2SD-Methoden. Die Frage nach dem Sinn ist mehr oder weniger einfach gesagt: Sinnvoll ist es fast nie! Die Möglichkeiten der Kombination:

Mischen von Methode A und BEdit

Mit Methode B werden alle *.apk-Dateien auf die SD-Karte (ext-Partition) verlagert.

Wenn wir jetzt noch Methode A ("2.2+ native") hinzunehmen, können wir uns einige Apps aussuchen, deren *.apk-Dateien auf die erste Partition der SD-Karte nach

/sdcard/.android-secure/

verschoben werden. Das hei√üt, wir w√ľrden Apps (genauer: deren *.apk-Dateien) zwischen SD-Karte Partition 2 (ext2/3/4) nach SD-Karte Partition 1 (FAT32) verschieben. Das bringt eigentlich genau gar nichts, au√üer in dem seltenen Fall, dass die eine Partition zu klein wird und wir es auf die andere verschieben m√ľssen. Dann w√ľrden wir aber Methode A nicht dazu verwenden, den internen Telefonspeicher zu entlasten, sondern dazu, die zweite (offenbar zu klein bemessene) Partition der SD-Karte zu entlasten (auf Kosten der FAT32-Datenpartition).

Mischen von Methode A und CEdit

Hier ist es genauso wie mit der Methode A und B.

Mischen von Methode B und CEdit

Einen Nutzen gibt es hier eigentlich √ľberhaupt nicht, denn beide Methoden lagern die Dateien auf dieselbe Partition der SD-Karte aus. Vermutlich wird es beim Mischen dieser Methoden sogar zu Konflikten kommen, da beide Methoden dieselbe Partition der SD-Karte auf unterschiedliche Weise verwenden. Je nachdem, unter welchen Verzeichnissen und Unterverzeichnissen die Dateien abgelegt werden, kann es im besten Fall (bei sich nicht √ľberscheidenden Namen) zu keinen Konflikten kommen, aber das ist unsicher.

Ein weiterer Punkt ist das "Einh√§ngen" der Dateib√§ume ("mount"): Beide Methoden verwenden ein (eigenes) Script, das die zweite SD-Karten-Partition ins Dateisystem einh√§ngt (mount). Je nachdem, wie intelligent diese Scripts geschrieben sind, bemerken sie, dass das Dateisystem schon eingeh√§ngt ist, oder die Scripts "bocken". Man kann also nicht genau sagen, ob das Mischen im Ansatz √ľberhaupt funktioniert oder nicht.


EinzelnachweisEdit