Akkuverbrauch in der mobilen Entwicklung: Was es ist, Ursachen und Bekämpfungsmethoden

Autor: IT Sectr Veröffentlicht: 2026-07-28 Lesezeit: 10 Min.

Erhöhter Akkuverbrauch — eine der häufigsten Beschwerden von Nutzern mobiler Anwendungen. Die App beginnt, ungewöhnlich viel Energie zu verbrauchen, was selbst im Hintergrund zu einer schnellen Entladung des Geräts führt. Laut Google I/O 2023 haben bis zu 30% der Apps im Google Play Store Probleme mit dem Energieverbrauch, die sich direkt auf die Nutzerbindung auswirken. In diesem Artikel werden wir die Ursachen, Diagnose und Optimierungsmethoden untersuchen.

Wichtige Punkte

  • WakeLock — die Hauptursache für Energieverluste, wenn es nicht rechtzeitig freigegeben wird
  • Netzwerkanfragen ohne Batching halten das Funkmodul ständig aktiv
  • Hochpräziser Standort verbraucht 10-mal mehr Energie als der ungefähre Standort
  • WorkManager — die Standard-API für Hintergrundaufgaben unter Berücksichtigung des Akkuzustands
  • Profiling mit Battery Historian und Energy Profiler ist vor der Veröffentlichung obligatorisch

Was ist Akkuverbrauch in mobilen Apps?

Erhöhter Akkuverbrauch ist ein Zustand, bei dem eine mobile App deutlich mehr Energie verbraucht als bei typischen Nutzungsszenarien erwartet. Der Nutzer bemerkt, dass sich das Gerät nach der Installation oder Aktualisierung einer App 20-30% schneller entlädt.

Moderne mobile Betriebssysteme — Android und iOS — verfügen über integrierte Mechanismen zur Steuerung des Energieverbrauchs. Android verwendet Battery Optimization und iOS Background Modes. Eine unsachgemäße Nutzung der APIs kann diese Mechanismen jedoch umgehen.

Laut einer Studie der Purdue University (2021) verbrauchen etwa 60% der Apps Energie für Hintergrundaufgaben ohne offensichtliche Notwendigkeit. Dies ist besonders häufig bei Apps mit Werbung, Analytik und dauerhaften Netzwerkverbindungen.

Wie wird der Akkuverbrauch gemessen?

Der Energieverbrauch wird in mA·h (Milliamperestunden) gemessen. Android liefert Daten über die BatteryManager-API, die den Verbrauch jeder Komponente verfolgt: CPU, Funkmodul, GPS, Display und Sensoren.

kotlin
val batteryManager = getSystemService(Context.BATTERY_SERVICE) as BatteryManager
val chargeCounter = batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CHARGE_COUNTER)
val capacity = batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY)
// chargeCounter / capacity * 100 = current charge percentage

Die BatteryManager-API ermöglicht es, die aktuelle Ladung und Akkukapazität abzurufen, liefert aber keine details pro App — dafür werden Systemdienstprogramme benötigt.

Hauptursachen für erhöhten Energieverbrauch

WakeLock — der gefährlichste Mechanismus für den Akku. Wenn eine App einen WakeLock hält, ohne ihn freizugeben, wechselt das Gerät nicht in den Schlafmodus. Jede Stunde des Haltens eines WakeLocks verbraucht etwa 50-80 mA·h.

Netzwerkanfragen ohne Batching sind die zweithäufigste Ursache. Jedes Mal, wenn eine App eine Netzwerkverbindung herstellt, wechselt das Funkmodul vom energiesparenden in den aktiven Modus. Häufige kurze Anfragen im Abstand von weniger als 5 Minuten halten das Funkmodul ständig aktiv.

Die hochpräzise GPS-Standortermittlung (GPS_PROVIDER) verbraucht 10-15-mal mehr Energie als die ungefähre Standortermittlung (NETWORK_PROVIDER). Ständige Standortaktualisierungen im Hintergrund sind eine der häufigsten Nutzerbeschwerden.

  • Animationen und Rendering ohne Hardwarebeschleunigung belasten die GPU
  • Sensoren (Beschleunigungssensor, Gyroskop) im Hintergrund ohne Notwendigkeit
  • Bluetooth-Scans mit hoher Gerätefindungsfrequenz
  • Caching großer Datenmengen auf die SD-Karte ohne Berücksichtigung des Akkuzustands

Laut Android Developers Blog verbraucht eine durchschnittliche App etwa 15% des gesamten Akkuverbrauchs des Geräts. Wird dieses Niveau überschritten, ist eine obligatorische Prüfung des Energieverbrauchs erforderlich.

Wie diagnostiziert man Akkuprobleme?

Battery Historian — Googles offizielles Werkzeug zur Analyse des Energieverbrauchs. Es nimmt BatteryStats-Dumps von ADB entgegen und visualisiert den Verbrauch nach Komponenten: CPU, Netzwerk, GPS, WakeLock und Display.

Um einen Dump zu erstellen, führen Sie den Befehl aus: adb shell dumpsys batterystats. Nachdem Sie 2-3 Stunden lang Daten bei normaler Nutzung gesammelt haben, können Sie den Bericht zur Analyse in Battery Historian hochladen.

Android Energy Profiler in Android Studio verfolgt den Energieverbrauch in Echtzeit. Er zeigt den Verbrauch von CPU, Netzwerk, GPS und Display für jeden App-Vorgang an.

bash
# Reset battery stats before test
adb shell dumpsys batterystats --reset

# Use the app for 2-3 hours

# Export dump for Battery Historian
adb shell dumpsys batterystats > batterystats_dump.txt

Analyse unter iOS

Für iOS wird Energy Log über Xcode Instruments verwendet. Es sammelt Energieverbrauchsdaten aufgeschlüsselt nach Modulen: CPU, Netzwerk, GPU, Display, Standort. Lesezeit: 15-30 Minuten pro Sitzungsanalyse.

Auf einem physischen iOS-Gerät werden die Energieverbrauchsstatistiken auch in Settings > Battery angezeigt. Wenn eine App beim Verbrauch in den Top 10 ist, ist das ein Signal zur Optimierung.

Optimierungsmethoden für den Energieverbrauch

WorkManager — die Standard-API für Hintergrundaufgaben, die den Akkuzustand, das Netzwerk und den Doze-Modus berücksichtigt. Sie garantiert die Aufgabenausführung unter optimalen Bedingungen statt sofort und spart so bis zu 40% Energie bei Hintergrundoperationen.

kotlin
val workRequest = OneTimeWorkRequestBuilder<SyncWorker>()
    .setConstraints(
        Constraints.Builder()
            .setRequiresCharging(true)
            .setRequiresBatteryNotLow(true)
            .setRequiresNetworkType(NetworkType.CONNECTED)
            .build()
    )
    .build()
WorkManager.getInstance(this).enqueue(workRequest)

Batching von Netzwerkanfragen

Anfragen-Batching — die Zusammenfassung mehrerer Netzwerkoperationen in einer Kommunikationssitzung. Statt 10 einzelner Anfragen führt die App eine Batch-Anfrage durch, wodurch die aktive Zeit des Funkmoduls von 30 Sekunden auf 2-3 Sekunden reduziert wird.

  • Retrofit mit OkHttp unterstützt Batching über Interceptor
  • Firebase Cloud Messaging ermöglicht die Zusammenfassung von Benachrichtigungen in einer Sitzung
  • GraphQL — ein REST-Ersatz, bei dem eine Abfrage mehrere ersetzt

Optimierung der Standortermittlung

FusedLocationProviderClient von Google Play Services wählt die optimale Standortquelle basierend auf der erforderlichen Genauigkeit aus. Verwenden Sie für Hintergrundaufgaben die Priorität PRIORITY_BALANCED_POWER_ACCURACY — dies bietet eine Genauigkeit von bis zu 100 Metern bei minimalem Akkuverbrauch.

Verwenden Sie unter iOS Significant Location Change anstelle von Continuous Location. Dies ermöglicht Aktualisierungen nur bei signifikanten Bewegungen (mehr als 500 Meter), anstatt alle paar Sekunden.

Werkzeuge zur Analyse des Energieverbrauchs

Android Battery Historian — Googles Web-Tool zur Visualisierung von BatteryStats-Daten. Unterstützt Dump-Import, farbcodierte Komponenten und Sitzungsvergleiche. Wichtige Metriken: WakeLock-Haltezeit, Funkmodul-Aktivität, GPS-Sitzungen.

Xcode Energy Organizer sammelt Energieverbrauchsdaten von Produktionsnutzern über TestFlight und den App Store. Sie erhalten einen Bericht über den durchschnittlichen Verbrauch auf verschiedenen Geräten und iOS-Versionen. Dies ermöglicht die Verfolgung von Regressionen nach Updates.

PerfDog (Tencent) — ein plattformübergreifendes Leistungstestwerkzeug, das Energieverbrauchsmessungen umfasst. Unterstützt iOS und Android, ermöglicht die Aufzeichnung von Metriken mit 1-10 Bildern pro Sekunde.

WerkzeugPlattformMetriken
Battery HistorianAndroidWakeLock, Netzwerk, GPS, CPU, Display
Energy ProfilerAndroid StudioCPU, Netzwerk, GPS, Funk in Echtzeit
Energy LogiOS (Xcode)CPU, Netzwerk, GPU, Display, Standort
PerfDogiOS + AndroidEnergie, FPS, CPU, Speicher (alle zusammen)

Laut Apple WWDC 2023 reduziert die Verwendung des Energy Organizers den durchschnittlichen Energieverbrauch von Apps um 15-25%, indem Regressionen vor der Veröffentlichung im App Store identifiziert und behoben werden.

Häufig gestellte Fragen

Welche App verbraucht am meisten Akku?

Soziale Netzwerke und Messenger (Facebook, Instagram, WhatsApp, Telegram) führen traditionell beim Energieverbrauch. Sie synchronisieren ständig Daten, aktualisieren den Feed, erhalten Push-Benachrichtigungen und nutzen GPS. An zweiter Stelle stehen Spiele mit 3D-Grafiken, die gleichzeitig GPU und CPU belasten und bis zu 400-600 mA·h pro Stunde aktives Spielen verbrauchen.

Beeinflusst die Bildwiederholfrequenz den Akkuverbrauch?

Ja, direkt. Der Bildschirm ist die energieintensivste Komponente eines Smartphones. Eine Erhöhung der Frequenz von 60 Hz auf 120 Hz erhöht den Energieverbrauch des Displays um 30-50%. Moderne Displays mit LTPO-Technologie ändern jedoch dynamisch die Frequenz von 1 bis 120 Hz je nach Inhalt, was die Auswirkungen auf den Akku reduziert.

Wie wirkt sich GPS auf den Energieverbrauch aus?

Hochpräzises GPS verbraucht etwa 200-300 mA·h pro Stunde Dauerbetrieb. Zum Vergleich: Die Standortermittlung über WLAN und Mobilfunkmasten (NETWORK_PROVIDER) verbraucht im gleichen Zeitraum nur 20-40 mA·h. Verwenden Sie die Geofencing-API, um GPS nur beim Betreten eines bestimmten Bereichs zu aktivieren.

Sollte ich Hintergrund-Apps manuell schließen?

Nein. Moderne Betriebssysteme (Android und iOS) optimieren Hintergrundprozesse selbstständig. Das erzwungene Schließen und Neustarten einer App verbraucht mehr Energie, als wenn die App im Hintergrund bliebe. Ausnahmen sind Apps, die explizit Probleme verursachen (ermittelt über die Akkustatistik in den Einstellungen).

Wie finde ich heraus, welche App auf Android den Akku verbraucht?

Öffnen Sie Settings > Battery > Battery Usage. Das System zeigt eine Liste der Apps mit dem Verbrauchsprozentsatz an. Für eine detaillierte Analyse verwenden Sie ADB: adb shell dumpsys batterystats und laden Sie den Dump in Battery Historian hoch. Dies zeigt nicht nur den Gesamtverbrauch, sondern auch eine Aufschlüsselung nach Komponenten (WakeLock, Netzwerk, GPS).

Zusammenfassung

  • Erhöhter Akkuverbrauch — anormaler Energieverbrauch einer App, der zu schneller Entladung des Geräts und schlechterer Benutzererfahrung führt
  • Hauptursachen: WakeLock, häufige Netzwerkanfragen, hochpräzises GPS, nicht optimierte Animationen und Hintergrunddienste
  • WakeLock — der gefährlichste Mechanismus; immer in einem try/finally-Block freigeben oder WakeLock.acquire mit Timeout verwenden
  • WorkManager — die Standard-API für Hintergrundaufgaben unter Berücksichtigung von Akku- und Netzwerkstatus, von Google empfohlen
  • Anfragen-Batching reduziert den Energieverbrauch des Funkmoduls um 30-50% durch Verringerung der Modusübergänge
  • Diagnose mit Battery Historian, Energy Profiler und Xcode Energy Organizer ist vor jeder Veröffentlichung obligatorisch
  • Profiling des Energieverbrauchs auf physischen Geräten — Emulatoren liefern keine genauen Akkuwerte

Wir entwickeln eine mobile Applikation schlüsselfertig

IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.

Projekt besprechen

Lesen Sie auch