Architekturoptionen für Android + IoT
Kerntechnologien
- Bluetooth Low Energy: Android bietet BLE APIs zum Scannen, Verbinden über GATT und effizienten Datenaustausch mit Geräten mit geringem Stromverbrauch.
- MQTT Messaging: Der Eclipse Paho Android Client ermöglicht zuverlässiges MQTT Publish/Subscribe, einschließlich TLS und WebSocket Unterstützung für mobile Konnektivität.
- Hintergrundarbeit: WorkManager plant zuverlässig aufschiebbare, garantierte Aufgaben über App Neustarts und Geräteneustarts hinweg.
- Vordergrunddienste: Ab Android 12 werden Hintergrundstarts von Vordergrunddiensten eingeschränkt. Verwenden Sie gegebenenfalls WorkManager oder Ausnahmen.
- Berechtigungen ab Android 12: Geräte in der Nähe und Bluetooth Berechtigungen erfordern explizite Laufzeitberechtigungen für Erkennung, Werbung und Verbindung.
Schritt für Schritt: Erstellen Sie eine Android IoT Begleit App (BLE + MQTT)
1. Umgebung einrichten
- Installieren Sie Android Studio, erstellen Sie eine Kotlin App mit minSdk gemäß den BLE Anforderungen und aktivieren Sie die erforderlichen Bluetooth Funktionen.
- Planen Sie den Datenfluss: GATT Eigenschaften vom Gerät werden JSON Nutzlasten für MQTT Themen beim Verbinden oder in von Hintergrundarbeit verwalteten Intervallen zugeordnet.
2. Definieren Sie Berechtigungen und Funktionen (Android 12+).
- Fordern Sie Bluetooth Berechtigungen für Scannen, Werbung und Verbinden an und deklarieren Sie diese, gegebenenfalls zusammen mit Geräten in der Nähe.
- Erläutern Sie die Regeln für Vordergrunddienste für lang andauernde, für den Benutzer sichtbare Aufgaben. Vermeiden Sie das Starten von Vordergrunddiensten aus dem Hintergrund, sofern keine Ausnahme besteht.
3. Implementieren Sie BLE Scanning und GATT
- Nutzen Sie die zentrale BLE Rolle der Plattform, um nach Gerätename, Service UUID oder Herstellerdaten zu scannen und zu filtern.
- Verbinden Sie sich mit dem GATT Server des Geräts, ermitteln Sie Dienste/Eigenschaften und lesen/benachrichtigen Sie nach Bedarf.
4. MQTT Konnektivität hinzufügen
- Integrieren Sie den Eclipse Paho Android Client, um Sensortelemetrie zu veröffentlichen und Steuerungsthemen zu abonnieren. Verwenden Sie TLS, sofern unterstützt.
- Konfigurieren Sie automatische Wiederverbindung und Offline Pufferung für instabile Netzwerke, um eine zuverlässige Bereitstellung zu gewährleisten.
5. Planen Sie die Hintergrundsynchronisierung mit WorkManager
- Nutzen Sie WorkManager für zuverlässige, verzögerte Uploads, Wiederholungsversuche und Einschränkungen wie Netzwerkverfügbarkeit und Gebühren.
- Kombinieren Sie für benutzersichtbare, zeitkritische Vorgänge beschleunigte WorkManager Arbeit oder einen ordnungsgemäß gestarteten Vordergrunddienst, sofern die Richtlinien dies zulassen.
6. Bearbeiten Sie Änderungen am Vordergrunddienst ab Android 12
- Ziel Apps können einen Vordergrunddienst nur in Sonderfällen aus dem Hintergrund starten. Behandeln Sie Ausnahmen und Fallbacks ordnungsgemäß.
- Bevorzugen Sie WorkManager für nicht dringende Hintergrundvorgänge und fordern Sie den Benutzer auf, die App für Aufgaben zu öffnen, die eine Vordergrundausführung erfordern.
7. Sichere Daten und Datenschutz
- Die BLE Kopplung kann Daten für alle Apps auf dem Smartphone verfügbar machen. Fügen Sie Verschlüsselung oder Tokenisierung auf Anwendungsebene hinzu, wenn die Datensensibilität dies erfordert.
- Verwenden Sie TLS für MQTT und verwalten Sie Anmeldeinformationen sicher, indem Sie Schlüssel rotieren und den Themenzugriff pro Gerät beschränken.
Weiterlesen: IoT Firmware Entwicklung: Best Practices für Firmware und Vermeidung von Fallstricken
Beispiel: BLE lesen + MQTT veröffentlichen (Kotlin)
Dieser Codeausschnitt liest ein GATT Merkmal, sofern verfügbar, und veröffentlicht es in MQTT mit einem beibehaltenen Topic für den letzten bekannten Wert.
HIER DEN CODE ANSEHEN: KOTLINVerknüpfen Sie dies mit WorkManager Aufgaben, um die Verbindung regelmäßig wiederherzustellen und Protokolle bei Verbindungsabbrüchen unter Berücksichtigung von Netzwerkbeschränkungen und Wiederholungsversuchen aufzufüllen.
Matter Pfad: Smarte Geräte für Google Home entwickeln
Matter ermöglicht die übergreifende Nutzung eines Geräts mit einem einzigen Protokoll, während Google SDKs, Validierung und das „Works With Google Home Branding bereitstellt.
Über das Google Home Developer Center integrierte und getestete Geräte erzielen eine schnellere Markteinführung und ein einheitliches Benutzererlebnis auf Android und Nest Hubs.
Mobile Apps erhalten über die Google Home APIs Zugriff auf Hunderte Millionen Geräte und Automatisierungsfunktionen und eröffnen so neue Smart Home Anwendungsfälle.
Cloud und Messaging Optionen (nach IoT Core)
Google Cloud IoT Core wurde 2023 eingestellt. Wählen Sie daher Alternativen wie selbstverwaltete MQTT Broker oder IoT Plattformen von Drittanbietern für die Geräteaufnahme.
Der Paho Android Client arbeitet mit standardkonformen MQTT Brokern und unterstützt Funktionen wie automatische Wiederverbindung und Persistenz für robuste mobile Verbindungen.
Entwerfen Sie Themenhierarchien pro Gerät und Funktion, setzen Sie Anmeldeinformationen mit geringsten Berechtigungen durch und sichern Sie Broker mit TLS und Client Zertifikaten.
Hintergrundarbeit und Android 12+Konformität
- Nutzen Sie WorkManager für garantierte, aufschiebbare und einschränkungsbewusste Aufgaben bei Neustarts und App-Schließungen, um fehlerhaftes Hintergrundverhalten zu vermeiden.
- Android 12 fügt Einschränkungen für aus dem Hintergrund gestartete Vordergrunddienste hinzu. Verlassen Sie sich nach Möglichkeit auf dokumentierte Ausnahmen oder eine Neugestaltung von WorkManager.
- Vordergrunddienste sind weiterhin für benutzererkennbare, laufende Aufgaben geeignet. Beachten Sie jedoch stets die Richtlinien für API Level 31+ und behandeln Sie Ausnahmen.
Wichtige Sicherheits und Datenschutzmaßnahmen
- Schützen Sie sensible BLE Daten auf App Ebene, da gekoppelte Daten ohne zusätzliche Sicherheitsvorkehrungen für alle Apps auf dem Gerät zugänglich sein können.
- Verwenden Sie TLS für MQTT, rotieren Sie Anmeldeinformationen und segmentieren Sie Themen, damit ein kompromittierter Client nicht über seinen Bereich hinaus veröffentlichen/abonnieren kann.
- Passen Sie die Berechtigungen an die Anforderungen von Android 12+ an, indem Sie nur die tatsächlich benötigten BluetoothAAAAAAAAAAAAAAAAA und Geräte in der Nähe Funktionen anfordern.
Praktische Checkliste (Planung bis zur Produktion)
- Anwendungsfälle definieren: Telemetrie, Steuerung, Automatisierung und Warnmeldungen über BLE und MQTT oder über die Matter AAAAAAAAAAAIntegration für Smart Home Szenarien.
- Gerätekonnektivität auswählen: GATT Eigenschaften für BLE Geräte oder Matter Endpunkte für zertifizierte Smart Home Produkte.
- Cloud/Messaging auswählen: Standard MQTT Broker und Event Pipelines seit der Abschaffung von IoT Core, mit TLS und Observability von Anfang an.
- Android Hintergrundaufgaben implementieren: WorkManager verwenden und Vordergrunddienste nur dann anwenden, wenn die Richtlinien benutzersichtbare Arbeit zulassen.
- Berechtigungen validieren: Sicherstellen, dass die Eingabeaufforderungen für Geräte in der Nähe und die Bluetooth Laufzeit klar sind, und mit Ablehnungen ordnungsgemäß umgehen.
- Geräteübergreifend testen: BLE Stabilität, Wiederverbindungsverhalten und MQTT Resilienz bei Netzwerkänderungen und App Lebenszyklusereignissen überprüfen.
Bereit für die Entwicklung einer Android App im IoT?
Häufig gestellte Fragen
F1: Kann Android Things weiterhin für neue Produkte verwendet werden?
Nein – Android Things wurde eingestellt. Die Konsole hat 2021 neue Projekte eingestellt und 2022 vollständig abgeschaltet. Neue Projekte sollten daher auf Standard Android, MQTT/BLE oder Matter abzielen.
F2: Was hat Weave für die Google Smart Home Entwicklung ersetzt?
Matter ist der neue Standard und wird von Google über das Google Home Developer Center mit SDKs und dem Programm „Works With Google Home“ unterstützt.
F3: Wie sollte eine App über kurze Distanz eine Verbindung zu IoT Geräten herstellen?
Verwenden Sie die Android BLE APIs für Scans, GATT Verbindungen, charakteristische Lese/Schreibvorgänge und Benachrichtigungen, um Daten effizient mit batteriebetriebenen Geräten auszutauschen.
F4: Welche Android Bibliothek wird für Hintergrundaufgaben empfohlen?
WorkManager bietet zuverlässige Planung, Einschränkungen, Wiederholungsversuche und Persistenz über Neustarts hinweg und ist somit ideal für verzögerte IoT Synchronisierungen und Wartungsaufgaben.
F5: Ist es unter Android 12+ möglich, einen Vordergrunddienst aus dem Hintergrund zu starten?
Im Allgemeinen nicht – Android 12 blockiert Hintergrundstarts, sofern keine Ausnahmen vorgesehen sind. Planen Sie daher, WorkManager zu verwenden oder bei Bedarf aus einem für den Benutzer sichtbaren Zustand auszulösen.
F6: Welcher MQTT Client wird häufig unter Android verwendet?
Der Eclipse Paho Android Client ist eine weit verbreitete Open Source MQTT Bibliothek, die TLS, Offline Pufferung und asynchrone Operationen unterstützt.
F7: Was ist mit Google Cloud IoT Core passiert?
Es wurde 2023 eingestellt. Daher nutzen Teams nun IoT Plattformen von Drittanbietern oder betreiben eigene Broker für die Geräteaufnahme und das Messaging.
Fazit
Der schnellste und zukunftssicherste Weg zum Android IoT ist heute ein standardbasierter Stack: BLE für die Gerätekonnektivität, MQTT für Messaging, WorkManager für die Zuverlässigkeit im Hintergrund und Matter/Google Home für die Smart Home Reichweite.
Da Android Things eingestellt und Weave durch Matter ersetzt wurde, passt dieser Ansatz zum aktuellen Google Ökosystem und gewährleistet Kompatibilität, Skalierbarkeit und sicheren Betrieb über moderne Android Versionen hinweg.
