In einigen Ländern können Datenvolumen bis zu 10% des monatlichen Durchschnittseinkommens eines Nutzers kosten. Das bedeutet, dass die Minimierung der Downloadgröße Ihrer App und die Möglichkeit für Nutzer, die Datennutzung Ihrer App zu steuern, für viele Nutzer einen großen, spürbaren Vorteil haben kann. Durch die Minimierung der Downloadgröße wird auch Speicherplatz im internen Speicher gespart, der auf einigen Geräten nur begrenzt verfügbar ist.
Hier finden Sie einige Strategien, mit denen Sie die Datenmenge optimieren können, die Ihre App sowohl über das Netzwerk als auch im internen Speicher verwendet.
App-Größe reduzieren
Die App-Größe zu reduzieren ist eine der grundlegenden Möglichkeiten, Nutzern zu helfen, weniger Daten zu verbrauchen – sowohl Netzwerkdaten als auch internen Speicher. In diesem Abschnitt werden verschiedene Ansätze zur Reduzierung der App-Größe beschrieben.
Größe der grafischen Assets im APK reduzieren
- Grafische Assets tragen oft am meisten zur Größe des APK bei. Wenn Sie diese optimieren, können Sie die Downloadgröße verringern und so die Installationszeiten für Nutzer verkürzen.
- Verwenden Sie für grafische Assets wie Symbole das SVG-Format (Scalable Vector Graphics). SVG-Bilder sind im Vergleich zu Bitmap-Grafiken sehr klein und können zur Laufzeit in beliebiger Auflösung gerendert werden. Die Android Support Library bietet eine abwärtskompatible Implementierung für Vektorressourcen für Android 2.1 (API-Level 7). Erste Schritte mit Vektoren
- Verwenden Sie für Bilder ohne Vektoren, z. B. Fotos, das WebP-Format, um die Ladezeiten von Bildern zu verkürzen und Netzwerkbandbreite zu sparen. WebP führt nachweislich zu kleineren Dateigrößen als PNG und JPG bei mindestens derselben Bildqualität. Selbst bei verlustbehafteten Einstellungen kann WebP ein nahezu identisches Bild wie das Original erzeugen. Android unterstützt verlustbehaftetes WebP seit Android 4.0 (API-Level 14: Ice Cream Sandwich) und verlustfreies, transparentes WebP seit Android 4.2 (API-Level 17: Jelly Bean).
- Wenn Sie viele große Bilder mit unterschiedlichen Dichten haben, sollten Sie die Unterstützung für mehrere APKs verwenden, um Ihr APK nach Dichte aufzuteilen. So werden Builds für bestimmte Dichten erstellt. Nutzer mit Geräten mit niedriger Dichte müssen also keine ungenutzten Assets mit hoher Dichte herunterladen.
- Weitere Informationen zum Reduzieren der APK-Größe finden Sie unter APK-Größe reduzieren und Code und Ressourcen verkleinern. Außerdem finden Sie in dieser Reihe von Medium-Beiträgen eine detaillierte Anleitung zum Verringern der APK-Größe.
Codegröße reduzieren
- Jede Bibliothek in Ihrem Android-Projekt fügt dem APK potenziell ungenutzten Code hinzu. Seien Sie besonders vorsichtig bei der Verwendung externer Bibliotheken, da nicht alle Bibliotheken für die Verwendung in mobilen Apps konzipiert sind. Achten Sie darauf, dass die Bibliotheken, die Ihre App verwendet, für die mobile Nutzung optimiert sind.
- Sie können Ihren kompilierten Code mit einem Tool wie ProGuard optimieren. ProGuard identifiziert nicht verwendeten Code und entfernt ihn aus Ihrem APK.
Aktivieren Sie außerdem das Verkleinern von Ressourcen zur Build-Zeit, indem Sie
minifyEnabled=true
,shrinkResources=true
inbuild.gradle
festlegen. Dadurch werden nicht verwendete Ressourcen automatisch aus Ihrem APK entfernt. - Wenn Sie die Google Play-Dienste verwenden, sollten Sie nur die erforderlichen APIs selektiv in Ihre APK einbinden.
- Weitere Informationen zum Reduzieren der Codegröße in Ihrem APK finden Sie im Android-Training zum Thema Dependency-Injection-Frameworks vermeiden.
App auf externen Speicher (SD-Karte) verschieben
- Günstige Geräte haben oft wenig Speicherplatz. Nutzer können den Speicherplatz mit SD-Karten erweitern. Apps müssen jedoch explizit angeben, dass sie die Installation auf externen Speichermedien unterstützen, bevor Nutzer sie verschieben können.
- Ermöglichen Sie die Installation Ihrer App auf einem externen Speicher mit dem Flag
android:installLocation
in der Datei „AndroidManifest.xml“. Weitere Informationen dazu, wie Sie Ihre App für die Übertragung auf externen Speicher aktivieren, finden Sie im Android-Leitfaden zum Installationsort von Apps.
Speicherplatzbedarf der App nach der Installation reduzieren
- Wenn Ihre App wenig Speicherplatz benötigt, ist es weniger wahrscheinlich, dass Nutzer sie deinstallieren, wenn auf dem Gerät nur noch wenig freier Speicherplatz verfügbar ist. Es ist wichtig, Grenzen für Ihre Caches festzulegen, damit die Festplattennutzung Ihrer App nicht unbegrenzt ansteigt. Speichern Sie Ihre zwischengespeicherten Daten in
getCacheDir()
. Das System kann Dateien, die sich hier befinden, bei Bedarf löschen. Sie werden also nicht als Speicherplatz angezeigt, der für die App reserviert ist.
Konfigurierbare Netzwerknutzung anbieten
Die Android-Plattform bietet eine Reihe von Möglichkeiten, mit denen Sie Nutzern die Kontrolle über die Netzwerknutzung Ihrer App geben und sie für ihre eigenen Bedürfnisse optimieren können. Bei der ersten Verwendung kann Ihre App den Nutzer beispielsweise durch eine Reihe von netzwerkbezogenen Einstellungen führen. Sie können auch von außerhalb der App einen Bildschirm mit Netzwerkeinstellungen bereitstellen.
Onboarding-Prozesse für die Netzwerkauswahl der Nutzer bereitstellen
- Apps, die es Nutzern ermöglichen, den Datenverbrauch zu reduzieren, kommen gut an, auch wenn sie einen hohen Datenverbrauch haben. Wenn Ihre App viel Bandbreite verbraucht (z. B. bei Videostreaming-Apps), können Sie Nutzern eine Anleitung zur Konfiguration der Netzwerknutzung geben. Sie könnten dem Nutzer beispielsweise erlauben, Video-Streams mit niedrigerer Bitrate in Mobilfunknetzen zu erzwingen.
- Zusätzliche Einstellungen für Nutzer, mit denen sie die Datensynchronisierung, das Prefetching und das Verhalten bei der Netzwerknutzung steuern können (z. B. alle mit Sternchen markierten Nachrichtenkategorien nur über WLAN vorab abrufen), helfen Nutzern außerdem, das Verhalten Ihrer App an ihre Bedürfnisse anzupassen.
- Weitere Informationen zum Verwalten der Netzwerknutzung finden Sie im Android-Training Managing Network Usage.
Bildschirm für Netzwerkeinstellungen bereitstellen
- Sie können die Netzwerkeinstellungen der App über einen Bildschirm mit Netzwerkeinstellungen aufrufen, ohne die App zu öffnen. Sie können diesen Bildschirm entweder über die Systemeinstellungen oder über den Bildschirm zur Systemdatennutzung aufrufen.
- Wenn Sie einen Bildschirm mit Netzwerkeinstellungen bereitstellen möchten, auf den Nutzer sowohl über Ihre App als auch über die Systemeinstellungen zugreifen können, müssen Sie in Ihre App eine Aktivität einfügen, die die Aktion
ACTION_MANAGE_NETWORK_USAGE
unterstützt. - Weitere Informationen zum Hinzufügen eines Bildschirms für Netzwerkeinstellungen finden Sie im Android-Training Implementing a Preferences Activity.
Zusätzliche Ressourcen
Weitere Informationen zu diesem Thema finden Sie in den folgenden zusätzlichen Ressourcen: