Implizite Broadcasts

08.06.2017 11:07

Im Laufe der Jahre hat Google viele Android-Performancebremsen gelöst: erst Einführung eines Just-in-time-Compilers, dann Austausch der Laufzeitumgebung, sowie unzählige Optimierungen an Rechenzeit-, Speicher- und Stromverbrauch. Dennoch sieht der Suchmaschinenprimus nach wie vor Handlungsbedarf. Mit Android O greifen eine ganze Reihe von Einschränkungen bzgl. der Nutzung von Ressourcen im Hintergrund.

Apps dürfen nicht mehr so einfach auf Systemereignisse reagieren, die durch implizite Broadcasts kommuniziert werden. Implizit bedeutet, dass nicht eine App gezielt angesprochen wird. Der Grund ist nachvollziehbar: Apps, die sich für den Empfang von Broadcasts registrieren, verbrauchen bei jedem Auslösen des Broadcasts Ressourcen. Je mehr Apps Interesse an einem Systemereignis bekunden, umso höher der systemweite Ressourcenverbrauch nach dem Eintreten. Oft stellt sich heraus, dass es für viele Apps gar nicht interessant war. ACTION_PACKAGE_REPLACED wird an alle registrierten Receiver gesendet, wenn ein Paket auf dem Gerät ersetzt wurde. Mal ehrlich - wie viele Apps außer der betroffenen haben ein ernsthaftes Interesse an dieser Information? Reagieren Sie stattdessen auf ACTION_MY_PACKAGE_REPLACED. Diese Broadcast-Action wird nur an die eigene App gesendet.

Generell dürfen Apps für Android O im Manifest nur noch Broadcast-Receiver für explizite Broadcasts registrieren. Derzeit sind noch einige implizite Broadcasts erlaubt (https://developer.android.com/preview/features/background-broadcasts.html). Da Android O derzeit als Betaversion vorliegt, kann sich diese Liste bis zur fertigen Version noch ändern. Zur Laufzeit ist mit Context.registerReceiver() weiterhin die Registrierung von expliziten und impliziten Broadcasts möglich. Broadcasts mit Signaturberechtigung können ebenfalls weiterhin im Manifest registriert werden, weil sie nur an die App ausgeliefert werden, die mit demselben Zertifikat signiert wurde. 

Schlagwörter: Android , Mobile , Qualität


Autor Thomas Künneth

Thomas Künneth ist als Head of Mobile für die MATHEMA Software GmbH tätig. Seine Schwerpunkte sind die Architektur von großen Unternehmensanwendungen, UI/UX und Mobility. Seit fast 20 Jahren beschäftigt sich Thomas intensiv mit Java. Außerdem ist er Android-Entwickler der ersten Stunde und hat zahlreiche Artikel sowie drei Bücher über Android, Java und Eclipse veröffentlicht.

Thomas Künneth

Developer Week in Social Media

Folgen Sie uns auf:

Aussteller & Sponsoren

Infos anfordern

Infos anfordern
  • Florian Bender
  • Projektleitung
  • Tel.: +49 (89) 74117-206
  • Fax: +49 (89) 74117-448
  • E-Mail: florian.bender@nmg.de

Medienpartner