App2SD: Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: „'''App2SD''' ist eine Möglichkeit alle Apps auf die externe SD-Karte verschoben werden können. == Wozu App2SD == Android speichert Apps immer auf d…“) |
Keine Bearbeitungszusammenfassung |
||
Zeile 7: | Zeile 7: | ||
Weiter im Details: | Weiter im Details: | ||
Wenn ich eine App installiert und benutzt, dann wird der folgende Speicher belegt, bei dem es sich um eine Partition im internen Telefonspeicher handelt: | Wenn ich eine App installiert und benutzt, dann wird der folgende Speicher belegt, bei dem es sich um eine Partition im internen Telefonspeicher handelt: | ||
(1) /data/app/<Dateiname>.apk | (1) /data/app/<Dateiname>.apk | ||
(2) /data/dalvik-cache/<Dateiname_der_App>.dex | (2) /data/dalvik-cache/<Dateiname_der_App>.dex | ||
(3) /data/data/<Verzeichnisname_der_App>/lib/<Dateiname>.so | (3) /data/data/<Verzeichnisname_der_App>/lib/<Dateiname>.so | ||
(4) /data/data/<Verzeichnisname_der_App>/<sonstige Dateien und Verzeichnisse> | (4) /data/data/<Verzeichnisname_der_App>/<sonstige Dateien und Verzeichnisse> | ||
Was ist das alles genau? Nun: | Was ist das alles genau? Nun: | ||
(1)=Die heruntergeladene App | (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)". | |||
(2)=Eine aus (1) vom Betriebssystem generierte ausführbare Datei. | |||
(3)=library Dateien, sind bei einigen (vielen) Apps gar nicht vorhanden, können manchmal aber auch ziemlich groß sein | (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...) | |||
(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 "verschieben" würde, wäre der interne Speicher komplett entlastet. Bei den meisten heute üblichen Methoden wird aber nur ein TEIL davon auf die SD-Karte verschoben, oft nur (1). | Man sieht also: Wenn man (1), (2), (3) und (4) auf die SD-Karte "verschieben" würde, wäre der interne Speicher komplett entlastet. Bei den meisten heute üblichen Methoden wird aber nur ein TEIL davon auf die SD-Karte verschoben, oft nur (1). | ||
Zeile 55: | Zeile 60: | ||
=== Beschreibung === | === Beschreibung === | ||
Man muss das Feature in der Regel über | Man muss das Feature in der Regel über das Recovery, zum Beispiel dem [[ClockWorkMod]]-Recovery einspielen. Bei den meisten Custom ROM's ist diese Funktion schon vorinstalliert. Nach dem Booten des Systems erkennt das Betriebssystem die zweite Partition der SD-Karte und bindet diese als Dateisystem ein (mounten). Diese Partition steht dann unter dem Pfad | ||
<pre>/system/sd/</pre> | |||
zur Verfügung.. | |||
Das ist die Grundvoraussetzung, das die Methode B reibungslos funktioniert. Über eine grafische Benutzeroberfläche kann man nun die Daten der App von <pre>/data/app</pre> nach <pre>/system/sd</pre> verschieben. Damit liegen die Daten nun auf der SD-Karte, genauer gesagt die zweite Partition. Dann wird ein symbolischer 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 eines grafischen User-Interfaces 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änkungen === | |||
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 nur wählen zwischen "nur *.apk files", "nur Dalvik-Cache", oder beides, aber diese Wahl betrifft dann halt alle (Nicht-System-)Apps. | |||
== Methode C == | |||
Die Methode C "Symbolic Links auf Dateien auf der SD-Karte" . | |||
=== Eckdaten === | |||
* ab Android 1.6 (oder sogar schon früher? - naja älteres Android hat hier eh niemand...) | |||
* (momentan probleme mit Android 2.3, siehe Bemerkung ganz am ende des Postings) | |||
* "root" benötigt | |||
* Zweite SD-Karten-Partition benötigt! (als zweite Partition nach der FAT32-Partition, aber auch als primary(!) Partition einrichten, und zwar als ext2/ext3/ext4 (je nachdem was dsa Androidsystem unterstützt)) | |||
* Auswahl auf "per App" Basis IST möglich (nur für Nicht-System-Apps) | |||
* Ob die zu verschiebende App ein "App2SD" gemäß "Methode A" unterstützt oder nicht, ist irrelevant. | |||
* Es kann (1), (2) und (3) verschoben werden (frei wählbar und kombinierbar pro App) | |||
=== Beschreibung === | |||
Das Prinzip ist das gleiche wie bei Methode B insofern, dass hier auch mit symbolic Links auf Orte auf der SD-Karte (2. Partition) gearbeitet wird. Der Unterschied ist der, dass nicht wie in Methode B ein Symbolic Link für ein ganzes 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 symbolic link stattfinden soll oder nicht. Die grafische Benutzeroberfläche wie auch das back-end-Prozessing stellt die App "Link2SD" bereit. Man kann auch hier jederzeit eine App (bzw.: Teil (1), (2) oder (3) einer App) zwischen internem und externem Speicher hin- und her schieben. | |||
Als Mountpunkt verwendet Link2SD den Ordner <pre>/data/sdext2/</pre> für die zweite Partition der SD-Karte. | |||
=== Vorteil === | |||
Man kann viel flexibler das auf die SD-Karte verschieben, was am sinnvollsten ist. | |||
Eine sinnvolle Vorgehensweise ist, folgende Teile auf die SD-Karte zu verschieben: | |||
(1) Alle *.apk Files (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) | |||