Wer viele Apps auf seinem Handy installiert hat, wird sicherlich bemerkt haben, dass der Telefonspeicher relativ schnell belegt ist. Dann müssen Apps gelöscht werden, um Platz für neue zu schaffen. Die meisten Nutzer verwenden jedoch zusätzlich eine SD-Karte, wo meistens noch sehr viel Speicherplatz vorhanden ist. Deshalb ist es sinnvoll seine App so zu gestalten, dass diese direkt auf die SD-Karte installiert, oder dorthin verschoben werden kann.
Speicherort festlegen: Es ist ziemlich einfach den Speicherort der App festzulegen. Dafür muss dem Manifest folgende Eigenschaft hinzugefügt werden:
android:installLocation. In Eclipse würde es zum Beispiel so aussehen:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:installLocation="preferExternal"
... >
Die Eigenschaft "installLocation" kann zwei Werte annehmen. Zum einen "
preferExternal". Bei diesem Wert wird die SD-Karte als Installationsort bevorzugt. Wenn die Karte voll ist, wird die App wie gewöhnlich im Telefonspeicher installiert. Außerdem hat der Benutzer die Möglichkeit, den Speicherort zwischen SD-Karte und Telefonspeicher zu wechseln.
Bei dem Wert "auto", hat der Entwickler keinen Einfluss darauf, wo die App installiert wird. Das System entscheidet selbstständig auf Basis verschiedener Faktoren wo die Anwendung installiert wird.
Die Funktion Anwendungen auf einen externen Speicher zu installieren wird nur von Geräten unterstützt, die das API Level 8 (2.2) oder höher benutzen. Wenn man bereits eine App entwickelt hat, die eine frühere API Version als 8 benutzt, besteht dennoch eine Möglichkeit das Speichern auf eine SD-Karte zuzulassen und weiterhin kompatibel mit früheren Versionen zu sein.
- Als erstes muss wie bereits oben beschrieben die "installLocation" dem Manifest hinzugefügt werden.
- Die "minSdkVersion" Eigenschaft muss beibehalten werden. Bei meiner App habe habe ich zum Beispiel die SDK-Version 4 benutzt.
- Jetzt muss nur noch der "build target" auf API Level 8 geändert werden. Diese Eigenschaft kann über "Project->Properties->Android" in Eclipse geändert werden. Ich musste zusätzlich noch "Project->Clean" aufrufen, damit der Fehler "installLocation nicht bekannt" verschwindet.
Wenn jetzt jemand eure Anwendung installiert, der eine API-Version geringer als 8 benutzt, wird die Anweisung "
installLocation" ignoriert, ansonsten wird die App wie oben beschrieben installiert.