Willkommen bei Android 4.4 KitKat.
Android KitKat bietet alle innovativsten, schönsten und nützlichsten Funktionen von Android auf mehr Geräten weltweit.
In diesem Dokument erhalten Sie einen Überblick über die Neuigkeiten für Entwickler.
Weitere Informationen zu KitKat für Verbraucher finden Sie unter www.android.com.
Android für alle zugänglich machen
Android 4.4 wurde entwickelt, um auf einer viel größeren Bandbreite von Geräten als je zuvor schnell, flüssig und reaktionsschnell zu laufen – einschließlich Millionen von Einstiegsgeräten auf der ganzen Welt mit nur 512 MB RAM.
In KitKat wurden alle wichtigen Komponenten optimiert, um die Speichernutzung zu reduzieren. Außerdem gibt es neue APIs und Tools, mit denen Sie innovative, responsive und speichereffiziente Anwendungen erstellen können.
OEMs, die die nächste Generation von Android-Geräten entwickeln, können zielgerichtete Empfehlungen und Optionen nutzen, um Android 4.4 auch auf Geräten mit wenig Arbeitsspeicher effizient auszuführen. Die Optimierung des Dalvik-JIT-Code-Cache, die Kernel-Samepage-Merge-Technologie (KSM), der Auslagerungsbereich für zRAM und andere Optimierungen tragen zur Verwaltung des Arbeitsspeichers bei. Mit den neuen Konfigurationsoptionen können OEMs unter anderem die Speicherplatzmangel-Ebene für Prozesse anpassen, die Größe des Grafik-Cache festlegen und die Rückgewinnung von Arbeitsspeicher steuern.
In Android selbst werden durch systemweite Änderungen die Arbeitsspeicherverwaltung verbessert und der Arbeitsspeicherbedarf reduziert. Die Kernsystemprozesse wurden optimiert, um weniger Heap zu verwenden. Außerdem wird der Systemspeicher jetzt aggressiver vor Apps geschützt, die viel RAM verbrauchen. Wenn mehrere Dienste gleichzeitig gestartet werden, z. B. wenn sich die Netzwerkverbindung ändert, startet Android die Dienste jetzt seriell in kleinen Gruppen, um Spitzen bei der Speicherauslastung zu vermeiden.
Entwickler können mit Android 4.4 effiziente und reaktionsschnelle Apps auf allen Geräten bereitstellen. Mit der neuen API ActivityManager.isLowRamDevice() können Sie das Verhalten Ihrer App an die Speicherkonfiguration des Geräts anpassen. Sie können die Funktionen für großen Arbeitsspeicher je nach den Anwendungsfällen, die Sie auf Einsteigergeräten unterstützen möchten, nach Bedarf ändern oder deaktivieren. Weitere Informationen zum Optimieren von Apps für Geräte mit wenig Arbeitsspeicher
Mit den neuen Tools erhalten Sie außerdem wertvolle Informationen zur Arbeitsspeichernutzung Ihrer App. Das Tool „procstats“ gibt Aufschluss über die Speichernutzung im Zeitverlauf, einschließlich Laufzeit und Arbeitsspeicherbedarf für Apps im Vordergrund und Hintergrunddienste. Als neue Entwickleroption ist auch eine On-Device-Ansicht verfügbar. Das meminfo-Tool wurde verbessert, um Trends und Probleme im Zusammenhang mit dem Arbeitsspeicher leichter erkennen zu können. Außerdem wird zusätzlicher Arbeitsspeicheraufwand angezeigt, der zuvor nicht sichtbar war.
Neue NFC-Funktionen durch Host Card Emulation
Android 4.4 bietet neue Plattformunterstützung für sichere NFC-basierte Transaktionen über die Host Card Emulation (HCE) für Zahlungen, Treuepunkteprogramme, Kartenzugriff, Fahrkarten und andere benutzerdefinierte Dienste. Mit HCE kann jede App auf einem Android-Gerät eine NFC-Smartcard emulieren. Nutzer können dann per Tippen Transaktionen mit einer App ihrer Wahl initiieren. Es ist kein bereitgestelltes Secure Element (SE) auf dem Gerät erforderlich. Apps können auch einen neuen Lesemodus verwenden, um als Lesegeräte für HCE-Karten und andere NFC-basierte Transaktionen zu fungieren.
Android HCE emuliert ISO/IEC 7816-basierte Smartcards, die das kontaktlose ISO/IEC 14443-4-Protokoll (ISO-DEP) für die Übertragung verwenden. Diese Karten werden heute von vielen Systemen verwendet, einschließlich der bestehenden EMVCO-NFC-Zahlungsinfrastruktur. Android verwendet Anwendungs-IDs (Application Identifiers, AIDs) gemäß ISO/IEC 7816-4 als Grundlage für das Weiterleiten von Transaktionen an die richtigen Android-Anwendungen.
In ihren Manifestdateien deklarieren Apps die von ihnen unterstützten AIDs zusammen mit einer Kategorie-ID, die die Art der verfügbaren Unterstützung angibt (z. B. „Zahlungen“). Wenn mehrere Apps dieselbe AID in derselben Kategorie unterstützen, zeigt Android ein Dialogfeld an, in dem der Nutzer auswählen kann, welche App er verwenden möchte.
Wenn der Nutzer an einem Point-of-Sale-Terminal mit seinem Smartphone bezahlt, extrahiert das System die bevorzugte AID und leitet die Transaktion an die richtige Anwendung weiter. Die App liest die Transaktionsdaten und kann beliebige lokale oder netzwerkbasierte Dienste verwenden, um die Transaktion zu bestätigen und abzuschließen.
Für Android HCE muss auf dem Gerät ein NFC-Controller vorhanden sein. Die Unterstützung von HCE ist bereits auf den meisten NFC-Controllern weit verbreitet. Diese bieten eine dynamische Unterstützung sowohl für HCE- als auch für SE-Transaktionen. Geräte mit Android 4.4, die NFC unterstützen, bieten die Funktion „Tap & Pay“ für einfaches Bezahlen mit HCE.
Druck-Framework
Android-Apps können jetzt alle Arten von Inhalten über WLAN oder cloudbasierte Dienste wie Google Cloud Print drucken. In Apps mit Druckfunktion können Nutzer verfügbare Drucker finden, das Papierformat ändern, bestimmte Seiten zum Drucken auswählen und fast jede Art von Dokument, Bild oder Datei drucken.
Android 4.4 bietet native Plattformunterstützung für den Druck sowie APIs zur Verwaltung des Drucks und zum Hinzufügen neuer Druckertypen. Die Plattform bietet einen Druckermanager, der zwischen Apps, die das Drucken anfordern, und installierten Druckdiensten vermittelt, die Druckanfragen bearbeiten. Der Druckmanager stellt freigegebene Dienste und eine System-Benutzeroberfläche für das Drucken bereit, sodass Nutzer das Drucken über jede App hinweg konsistent steuern können. Der Druckmanager sorgt auch für die Sicherheit von Inhalten, die zwischen Prozessen von einer App an einen Druckdienst übergeben werden.
Druckerhersteller können mit neuen APIs eigene Druckdienste entwickeln – Plug-in-Komponenten, die anbieterspezifische Logik und Dienste für die Kommunikation mit bestimmten Druckertypen hinzufügen. Sie können Druckdienste entwickeln und über Google Play vertreiben, sodass Nutzer sie ganz einfach auf ihren Geräten finden und installieren können. Wie bei anderen Apps können Sie Druckdienste jederzeit per WLAN aktualisieren.
Mit neuen APIs können Client-Apps mit minimalen Codeänderungen Druckfunktionen hinzugefügt werden. In den meisten Fällen fügen Sie Ihrer Aktionsleiste eine Druckaktion und eine Benutzeroberfläche zum Auswählen der zu druckenden Elemente hinzu. Außerdem würden Sie APIs implementieren, um Druckaufträge zu erstellen, den Druckmanager nach dem Status zu fragen und Aufträge abzubrechen. So können Sie nahezu alle Arten von Inhalten drucken, von lokalen Bildern und Dokumenten bis hin zu Netzwerkdaten oder einer Ansicht, die auf einem Canvas gerendert wird.
Für die größtmögliche Kompatibilität verwendet Android PDF als primäres Dateiformat für den Druck. Vor dem Drucken muss Ihre App eine korrekt paginierte PDF-Version Ihrer Inhalte generieren. Für den Komfort bietet die Druck-API native und WebView-Hilfsklassen, mit denen Sie PDFs mithilfe der standardmäßigen Android-Zeichnen-APIs erstellen können. Wenn Ihre App weiß, wie die Inhalte gezeichnet werden, kann sie schnell eine PDF-Datei zum Drucken erstellen.
Auf den meisten Geräten mit Android 4.4 ist Google Cloud Print als Druckdienst vorinstalliert. Außerdem sind mehrere Google-Apps zum Drucken verfügbar, darunter Chrome, Drive, die Galerie und QuickOffice.
Storage Access Framework
Mit dem neuen Storage Access Framework können Nutzer ganz einfach Dokumente, Bilder und andere Dateien bei allen ihren bevorzugten Cloud Storage-Anbietern für Dokumente suchen und öffnen. Über eine standardmäßige, nutzerfreundliche Benutzeroberfläche können Nutzer Dateien durchsuchen und auf die letzten Elemente in Apps und bei Anbietern einheitlich zugreifen.
Cloud- oder lokale Speicherdienste können an diesem System teilnehmen, indem sie eine neue Dokumentanbieterklasse implementieren, die ihre Dienste kapselt. Die Anbieterklasse enthält alle APIs, die zum Registrieren des Anbieters beim System und zum Verwalten des Suchens, Lesens und Schreibens von Dokumenten beim Anbieter erforderlich sind. Der Dokumentanbieter kann Nutzern Zugriff auf alle Remote- oder lokalen Daten gewähren, die als Dateien dargestellt werden können, z. B. Text, Fotos, Hintergründe, Videos und Audioinhalte.
Wenn Sie einen Dokumentenanbieter für einen Cloud- oder lokalen Dienst erstellen, können Sie ihn Nutzern als Teil Ihrer vorhandenen Android-App zur Verfügung stellen. Nachdem Nutzer die App heruntergeladen und installiert haben, haben sie über jede App, die am Framework teilnimmt, sofort Zugriff auf Ihren Dienst. So können Sie mehr Aufmerksamkeit und Nutzerinteraktionen erzielen, da Nutzer Ihre Dienstleistungen leichter finden.
Wenn Sie eine Client-App entwickeln, die Dateien oder Dokumente verwaltet, können Sie sie einfach über die neuen Intents CREATE_DOCUMENT oder OPEN_DOCUMENT in das Storage Access Framework einbinden, um Dateien zu öffnen oder zu erstellen. Das System zeigt dann automatisch die Standard-Benutzeroberfläche zum Durchsuchen von Dokumenten an, einschließlich aller verfügbaren Dokumentanbieter.
Sie können Ihre Client-App einmal für alle Anbieter einbinden, ohne Anbieter-spezifischen Code. Wenn Nutzer Anbieter hinzufügen oder entfernen, haben sie weiterhin über Ihre App Zugriff auf ihre bevorzugten Dienste, ohne dass Änderungen oder Aktualisierungen an Ihrem Code erforderlich sind.
Das Storage Access Framework ist in die vorhandene Intent-Funktion GET_CONTENT eingebunden. So haben Nutzer über die neue System-UI auch Zugriff auf alle ihre bisherigen Inhalte und Datenquellen. Apps können weiterhin GET_CONTENT verwenden, um Nutzern das Importieren von Daten zu ermöglichen. Das Framework für den Speicherzugriff und die System-UI für die Suche erleichtern es Nutzern, ihre Daten aus einer größeren Bandbreite von Quellen zu finden und zu importieren.
Auf den meisten Geräten mit Android 4.4 sind Google Drive und der lokale Speicher als Dokumentanbieter vorinstalliert. Auch Google-Apps, die mit Dateien arbeiten, nutzen das neue Framework.
Energieeffiziente Sensoren
Sensor-Batching
Android 4.4 unterstützt die Plattform für Hardware-Sensor-Batching, eine neue Optimierung, mit der der Energieverbrauch durch laufende Sensoraktivitäten drastisch reduziert werden kann.
Bei der Sensor-Batchverarbeitung arbeitet Android mit der Gerätehardware zusammen, um Sensorereignisse effizient in Batches zu erfassen und zu senden, anstatt sie einzeln zu erfassen, sobald sie erkannt werden. So kann der Anwendungsprozessor des Geräts im Energiesparmodus bleiben, bis die Batches zugestellt werden. Sie können mit einem Standardereignis-Listener Batch-Ereignisse von jedem Sensor anfordern und das Intervall festlegen, in dem Sie Batches erhalten. Sie können auch die sofortige Übermittlung von Ereignissen zwischen den Batchzyklen anfordern.
Das Batching von Sensoren eignet sich ideal für energieeffiziente, langlebige Anwendungsfälle wie Fitness, Standort-Tracking und Monitoring. So können Sie Ihre App effizienter gestalten und Sensorereignisse kontinuierlich erfassen – auch wenn das Display ausgeschaltet und das System im Ruhemodus ist.
Die Sensor-Batch-Technologie ist derzeit auf Nexus 5 verfügbar. Wir arbeiten mit unseren Chipsatzpartnern zusammen, um sie so schnell wie möglich auf weiteren Geräten einzuführen.
Schrittzähler und Schritterkennung
Android 4.4 bietet außerdem Plattformunterstützung für zwei neue Composite-Sensoren – Schrittzähler und Schrittzähler –, mit denen Ihre App Schritte aufzeichnen kann, wenn der Nutzer geht, läuft oder Treppen steigt. Diese neuen Sensoren sind in der Hardware implementiert, um den Stromverbrauch niedrig zu halten.
Der Schrittzähler analysiert den Eingabewert des Beschleunigungsmessers, um zu erkennen, wann der Nutzer einen Schritt gemacht hat, und löst dann bei jedem Schritt ein Ereignis aus. Der Schrittzähler erfasst die Gesamtzahl der Schritte seit dem letzten Neustart des Geräts und löst bei jeder Änderung der Schrittzahl ein Ereignis aus. Da die Logik und Sensorverwaltung in die Plattform und die zugrunde liegende Hardware integriert sind, müssen Sie keine eigenen Erkennungsalgorithmen in Ihrer App verwalten.
Schrittzähler und Zählersensoren sind auf Nexus 5 verfügbar. Wir arbeiten mit unseren Chipsatzpartnern zusammen, um diese Funktionen so schnell wie möglich auf neue Geräte zu bringen.
SMS-Anbieter
Wenn Sie eine Messaging-App entwickeln, die SMS oder MMS verwendet, können Sie jetzt einen gemeinsamen SMS-Anbieter und neue APIs verwenden, um den Nachrichtenspeicher und -abruf Ihrer App zu verwalten. Der neue SMS-Anbieter und die APIs definieren ein standardisiertes Interaktionsmodell für alle Apps, die SMS- oder MMS-Nachrichten verarbeiten.
Neben dem neuen Anbieter und den APIs führt Android 4.4 neue Semantik für den Empfang von Nachrichten und das Schreiben an den Anbieter ein. Wenn eine Nachricht empfangen wird, leitet das System sie über die neue Intent-Aktion SMS_DELIVER direkt an die Standard-Messaging-App des Nutzers weiter. Andere Apps können weiterhin über den Intent SMS_RECEIVED auf eingehende Nachrichten warten. Außerdem kann jetzt nur noch die Standard-Messaging-App Nachrichtendaten an den Anbieter schreiben, andere Apps können sie aber jederzeit lesen. Apps, die nicht die Standard-App des Nutzers sind, können weiterhin Nachrichten senden. Das System schreibt diese Nachrichten im Namen der App an den Anbieter, damit Nutzer sie in der Standard-App sehen können.
Der neue Anbieter und die neue Semantik verbessern die Nutzerfreundlichkeit, wenn mehrere Messaging-Apps installiert sind. Außerdem können Sie mit vollständig unterstützten, zukunftsfähigen APIs neue Messaging-Funktionen entwickeln.
Neue Möglichkeiten für ansprechende Apps
Vollbildmodus
Ihre Apps können jetzt jedes Pixel auf dem Display des Geräts nutzen, um Ihre Inhalte zu präsentieren und Touch-Ereignisse zu erfassen. Android 4.4 bietet einen neuen Vollbildmodus, mit dem Sie eine Vollansicht erstellen können, die auf Smartphones und Tablets von Rand zu Rand reicht und die gesamte System-UI wie die Statusleiste und die Navigationsleiste ausblendet. Sie eignet sich ideal für visuelle Inhalte wie Fotos, Videos, Karten, Bücher und Spiele.
Im neuen Modus bleibt die System-UI ausgeblendet, auch wenn Nutzer mit Ihrer App oder Ihrem Spiel interagieren. Sie können Touch-Ereignisse überall auf dem Bildschirm erfassen, auch in Bereichen, die sonst von den Systemleisten belegt wären. So können Sie eine größere, reichhaltigere und immersivere Benutzeroberfläche in Ihrer App oder Ihrem Spiel erstellen und gleichzeitig visuelle Ablenkungen reduzieren.
Damit Nutzer im Vollbildmodus immer einfachen und einheitlichen Zugriff auf die System-UI haben, unterstützt Android 4.4 eine neue Geste: Im Vollbildmodus wird die System-UI jetzt durch Wischen vom oberen oder unteren Displayrand nach oben eingeblendet.
Wenn Nutzer zum Vollbildmodus zurückkehren möchten, können sie den Bildschirm außerhalb der Balken berühren oder kurz warten, bis die Balken automatisch ausgeblendet werden. Für eine einheitliche Nutzererfahrung funktioniert die neue Geste auch mit vorherigen Methoden zum Ausblenden der Statusleiste.
Transitions-Framework zum Animieren von Szenen
Die meisten Apps strukturieren ihre Aufrufabfolgen um mehrere wichtige UI-Zustände, die verschiedene Aktionen auslösen. Viele Apps verwenden auch Animationen, um Nutzern zu verdeutlichen, wie sie sich durch die verschiedenen Status bewegen und welche Aktionen in den einzelnen Status verfügbar sind. Mit Android 4.4 wird ein neues Transitions-Framework eingeführt, das das Erstellen von hochwertigen Animationen in Ihrer App erleichtert.
Mit dem Transitions-Framework können Sie Szenen definieren, in der Regel Ansichtshierarchien, und Übergänge, die beschreiben, wie die Szenen animiert oder transformiert werden, wenn der Nutzer sie betritt oder verlässt. Sie können mehrere vordefinierte Übergangstypen verwenden, um Ihre Szenen anhand bestimmter Eigenschaften wie Layoutgrenzen oder Sichtbarkeit zu animieren. Es gibt auch einen automatischen Übergangstyp, bei dem Ansichten bei einer Szenenänderung automatisch ausgeblendet, verschoben und ihre Größe angepasst wird. Außerdem können Sie benutzerdefinierte Übergänge definieren, um die für Ihre App wichtigsten Eigenschaften zu animieren. Bei Bedarf können Sie auch eigene Animationsstile einbinden.
Mit dem Transitions Framework können Sie auch Änderungen an der Benutzeroberfläche im laufenden Betrieb animieren, ohne Szenen definieren zu müssen. Sie können beispielsweise eine Reihe von Änderungen an einer Ansichtshierarchie vornehmen und dann den TransitionManager automatisch einen verzögerten Übergang für diese Änderungen ausführen lassen.
Nachdem Sie Übergänge eingerichtet haben, können Sie sie ganz einfach über Ihre App aufrufen. Sie können beispielsweise eine einzelne Methode aufrufen, um einen Übergang zu starten, verschiedene Änderungen an der Ansichtshierarchie vornehmen und dann im nächsten Frame automatisch Animationen starten, die die von Ihnen angegebenen Änderungen animieren.
Mit dem TransitionManager können Sie die Übergänge zwischen bestimmten Szenen in Ihrem Anwendungsablauf anpassen. Mit dem TransitionManager können Sie die Beziehung zwischen Szenen und den Übergängen definieren, die bei bestimmten Szenenwechseln ausgeführt werden.
Transparente System-UI-Gestaltung
Damit Ihre Inhalte bestmöglich zur Geltung kommen, können Sie jetzt neue Fensterstile und Themen verwenden, um eine transluzente System-UI anzufordern, einschließlich Status- und Navigationsleiste. Damit die Schaltflächen der Navigationsleiste oder die Informationen in der Statusleiste gut lesbar sind, werden hinter den Systemleisten dezente Farbverläufe angezeigt. Ein typischer Anwendungsfall wäre eine App, die durch einen Hintergrund hindurch sichtbar sein muss.
Erweiterter Benachrichtigungszugriff
Benachrichtigungs-Listener-Dienste können jetzt weitere Informationen zu eingehenden Benachrichtigungen abrufen, die mit den APIs für Benachrichtigungs-Builder erstellt wurden. Listener-Dienste können auf die Aktionen einer Benachrichtigung sowie auf neue Extrafelder wie Text, Symbol, Bild, Fortschritt, Stoppuhr und viele andere zugreifen, um detailliertere Informationen zur Benachrichtigung zu extrahieren und die Informationen auf andere Weise darzustellen.
Chromium WebView
Android 4.4 enthält eine völlig neue Implementierung von WebView, die auf Chromium basiert. Die neue Chromium WebView bietet die aktuellsten Standards, die beste Leistung und die beste Kompatibilität für die Erstellung und Darstellung webbasierter Inhalte.
Chromium WebView bietet umfassende Unterstützung für HTML5, CSS3 und JavaScript. Es unterstützt die meisten HTML5-Funktionen, die in Chrome für Android 30 verfügbar sind. Außerdem enthält es eine aktualisierte Version der JavaScript-Engine (V8), die die JavaScript-Leistung deutlich verbessert.
Außerdem unterstützt die neue Chromium WebView das Remote-Debugging mit den Chrome DevTools. Sie können beispielsweise die Chrome-Entwicklertools auf Ihrem Entwicklungscomputer verwenden, um Ihre WebView-Inhalte live auf einem Mobilgerät zu prüfen, zu debuggen und zu analysieren.
Die neue Chromium WebView ist auf allen kompatiblen Geräten mit Android 4.4 oder höher enthalten. Sie können die neue WebView sofort verwenden und müssen nur minimale Änderungen an vorhandenen Apps und Inhalten vornehmen. In den meisten Fällen werden Ihre Inhalte nahtlos in die neue Implementierung migriert.
Neue Medienfunktionen
Bildschirmaufzeichnung
Jetzt können Sie ganz einfach direkt auf Ihrem Android-Gerät hochwertige Videos Ihrer App erstellen. Android 4.4 unterstützt die Bildschirmaufzeichnung und bietet ein Dienstprogramm zur Bildschirmaufzeichnung, mit dem Sie die Aufzeichnung auf einem Gerät starten und beenden können, das über USB mit Ihrer Android SDK-Umgebung verbunden ist. So können Sie ganz einfach Schritt-für-Schritt-Anleitungen und Tutorials für Ihre App, Testmaterialien, Marketingvideos und mehr erstellen.
Mit dem Dienst zur Bildschirmaufzeichnung können Sie Videos von den Inhalten Ihres Gerätebildschirms aufnehmen und als MP4-Datei auf dem Gerät speichern. Sie können mit jeder vom Gerät unterstützten Auflösung und Bitrate aufnehmen. Bei der Ausgabe wird das Seitenverhältnis des Displays beibehalten. Standardmäßig wird eine Auflösung ausgewählt, die der Displayauflösung des Geräts in der aktuellen Ausrichtung entspricht oder nahekommt. Wenn Sie mit der Aufnahme fertig sind, können Sie das Video direkt von Ihrem Gerät aus teilen oder die MP4-Datei zur Postproduktion auf Ihren Hostcomputer übertragen.
Wenn in Ihrer App Videos oder andere geschützte Inhalte wiedergegeben werden, die nicht vom Bildschirmrekorder erfasst werden sollen, können Sie die Inhalte mit SurfaceView.setSecure() als sicher kennzeichnen.
Sie können über das im Android SDK enthaltene ADB-Tool mit dem Befehl adb shell screenrecord auf die Bildschirmaufzeichnung zugreifen. Sie können es auch über logcat in Android Studio starten.
Auflösungswechsel durch adaptive Wiedergabe
Android 4.4 bietet offiziellen Support für die adaptive Wiedergabe im Android-Medien-Framework. Die adaptive Wiedergabe ist eine optionale Funktion von Videodekodern für MPEG-DASH und andere Formate, die eine nahtlose Änderung der Auflösung während der Wiedergabe ermöglicht. Der Client kann dem Decoder Videoframes einer neuen Auflösung zuführen und die Auflösung der Ausgabe-Buffer ändert sich automatisch und ohne große Lücke.
Durch die Auflösungswechsel in Android 4.4 können Medien-Apps ein deutlich besseres Streaming von Videos bieten. Apps können mithilfe vorhandener APIs während der Laufzeit prüfen, ob die adaptive Wiedergabe unterstützt wird, und die Auflösungsänderung mithilfe neuer APIs implementieren, die in Android 4.4 eingeführt wurden.
Gemeinsame Verschlüsselung für DASH
Android unterstützt jetzt die Common Encryption (CENC) für MPEG-DASH. Das ist ein standardmäßiges, plattformübergreifendes DRM-Schema zum Verwalten und Schützen von Inhalten. Apps können CENC über das modulare DRM-Framework von Android und die Plattform-APIs zur Unterstützung von DASH nutzen.
HTTP Live Streaming
Android 4.4 aktualisiert die HTTP Live Streaming-Unterstützung (HLS) der Plattform auf eine Superset-Version von Version 7 der HLS-Spezifikation (Version 4 des Protokolls). Weitere Informationen finden Sie im IETF-Entwurf.
Audio-Tunneling zum DSP
Für eine leistungsstarke Audiowiedergabe mit geringerem Energieverbrauch bietet Android 4.4 Plattformunterstützung für das Audio-Tunneling an einen digitalen Signalprozessor (DSP) im Chipsatz des Geräts. Beim Tunneling werden die Audiodekodierung und die Ausgabeeffekte an den DSP ausgelagert, wodurch der Anwendungsprozessor seltener geweckt wird und der Akku weniger beansprucht wird.
Audio-Tunneling kann die Akkulaufzeit deutlich verlängern, wenn Sie beispielsweise Musik über ein Headset hören, während das Display ausgeschaltet ist. Mit Audio-Tunneling bietet Nexus 5 beispielsweise eine Audiowiedergabezeit von bis zu 60 Stunden ohne Netzverbindung, was einer Steigerung von über 50% gegenüber nicht getunneltem Audio entspricht.
Medienanwendungen können Audio-Tunneling auf unterstützten Geräten nutzen, ohne den Code ändern zu müssen. Das System verwendet Tunneling, um die Audiowiedergabe zu optimieren, wann immer es auf dem Gerät verfügbar ist.
Für Audio-Tunneling ist Unterstützung durch die Gerätehardware erforderlich. Derzeit ist Audio-Tunneling auf Nexus 5 verfügbar. Wir arbeiten mit unseren Chipsatzpartnern zusammen, um es so schnell wie möglich auf weiteren Geräten verfügbar zu machen.
Audioüberwachung
Apps können neue Monitoring-Tools im Visualizer-Effekt verwenden, um aktuelle Informationen zu den Spitzen- und RMS-Pegel der aktuell auf dem Gerät wiedergegebenen Audioinhalte zu erhalten. Sie können diese Funktion beispielsweise kreativ in Musikvisualisierungen einsetzen oder die Wiedergabemessung in einem Mediaplayer implementieren.
Lautstärkeverstärkung
Mit dem neuen Effekt „LoudnessEnhancer“ können Anwendungen zur Medienwiedergabe die Lautstärke gesprochener Inhalte erhöhen. Er dient als Kompressor mit Zeitkonstanten, die speziell auf Sprache abgestimmt sind.
Audiozeitstempel für eine bessere Synchronisierung von Audio und Video
Das Audio-Framework kann jetzt Präsentationszeitstempel vom Audioausgabe-HAL an Anwendungen senden, um die Audio-Video-Synchronisierung zu verbessern. Anhand von Audiozeitstempeln kann deine App ermitteln, wann ein bestimmter Audioframe dem Nutzer außerhalb des Geräts präsentiert wird (oder wurde). Mit den Zeitstempelinformationen kannst du Audio mit Videoframes genauer synchronisieren.
Wi‑Fi CERTIFIED Miracast™
Geräte mit Android 4.4 können jetzt gemäß der Wi‑Fi Display-Spezifikation der Wi‑Fi Alliance als Miracast-kompatibel zertifiziert werden. Zur Unterstützung von Tests bietet eine neue Entwickleroption für die kabellose Übertragung erweiterte Konfigurationssteuerungen und -einstellungen für die Zertifizierung für die kabellose Übertragung. Sie finden die Option unter Einstellungen > Entwickleroptionen > Zertifizierung für kabellose Übertragung. Nexus 5 ist ein Miracast-zertifiziertes Gerät für die kabellose Übertragung.
RenderScript Compute
Laufende Leistungsverbesserungen
Wenn Sie RenderScript in Ihren Apps verwenden, profitieren Sie von einer fortlaufenden Leistungsoptimierung in der RenderScript-Laufzeit selbst, ohne dass eine Neukompilierung erforderlich ist. Das Diagramm rechts zeigt Leistungssteigerungen unter Android 4.4 auf zwei beliebten Chipsätzen.
GPU-Beschleunigung
Alle Apps, die RenderScript auf einem unterstützten Gerät verwenden, profitieren von der GPU-Beschleunigung, ohne Codeänderungen oder Neukompilierung. Seit der Einführung der RenderScript-GPU-Beschleunigung auf dem Nexus 10 haben verschiedene andere Hardwarepartner die Unterstützung hinzugefügt.
Mit Android 4.4 ist die GPU-Beschleunigung jetzt auf Nexus 5 sowie auf Nexus 4, Nexus 7 (2013) und Nexus 10 verfügbar. Wir arbeiten mit unseren Partnern zusammen, um die Funktion so schnell wie möglich auf weitere Geräte zu bringen.
RenderScript im Android NDK
Sie können RenderScript jetzt direkt in Ihrem nativen Code verwenden. Über eine neue C++ API im Android Native Development Kit (NDK) können Sie auf dieselben RenderScript-Funktionen zugreifen, die über die Framework-APIs verfügbar sind, einschließlich Script-Intrinsiks und benutzerdefinierter Kernel.
Wenn Sie große, leistungsintensive Aufgaben in nativem Code bearbeiten müssen, können Sie diese Aufgaben mit RenderScript ausführen und in Ihren nativen Code einbinden. RenderScript bietet eine hervorragende Leistung auf einer Vielzahl von Geräten mit automatischer Unterstützung für Multi-Core-CPUs, GPUs und andere Prozessoren.
Wenn Sie eine App erstellen, die RenderScript über das NDK verwendet, können Sie sie auf jedem Gerät mit Android 2.2 oder höher verteilen, genau wie bei der RenderScript-Unterstützungsbibliothek, die für Framework-APIs verfügbar ist.
Grafik
GLES2.0 SurfaceFlinger
In Android 4.4 wird SurfaceFlinger von OpenGL ES 1.0 auf OpenGL ES 2.0 umgestellt.
Neue Hardware Composer-Unterstützung für virtuelle Displays
Die neueste Version des Android-Hardware-Composers, HWComposer 1.3, unterstützt die Hardwarekomposition eines virtuellen Displays zusätzlich zum primären externen Display (z.B. HDMI) und hat die OpenGL ES-Interoperabilität verbessert.
Neue Arten der Konnektivität
Neue Bluetooth-Profile
Android 4.4 unterstützt zwei neue Bluetooth-Profile, mit denen Apps eine größere Bandbreite an Interaktionen mit geringem Energieverbrauch und Medien unterstützen können. Bluetooth HID over GATT (HOGP) bietet Apps eine Verbindung mit geringer Latenz zu energieeffizienten Peripheriegeräten wie Mäusen, Joysticks und Tastaturen. Mit Bluetooth MAP können Ihre Apps Nachrichten mit einem Gerät in der Nähe austauschen, z. B. mit einem Autoterminal für die Freisprechfunktion oder einem anderen Mobilgerät. Als Erweiterung von Bluetooth AVRCP 1.3 können Nutzer jetzt das absolute Systemvolumen über ihre Bluetooth-Geräte einstellen.
Die Plattformunterstützung für HOGP, MAP und AVRCP basiert auf dem Bluedroid-Bluetooth-Stack, der von Google und Broadcom in Android 4.2 eingeführt wurde. Der Support ist sofort auf Nexus-Geräten und anderen Android-kompatiblen Geräten mit kompatiblen Bluetooth-Funktionen verfügbar.
IR-Blaster
Android 4.4 bietet Plattformunterstützung für integrierte Infrarot-Blaster sowie eine neue API und einen Systemdienst, mit denen Sie Apps erstellen können, die diese Funktionen nutzen.
Mit der neuen API können Sie Apps entwickeln, mit denen Nutzer Fernseher, Tuner, Schalter und andere elektronische Geräte in der Nähe per Fernzugriff steuern können. Mit der API kann Ihre App prüfen, ob das Smartphone oder Tablet einen Infrarot-Sender hat, die Trägerfrequenzen abfragen und dann Infrarotsignale senden.
Da die API auf allen Android-Geräten mit Android 4.4 oder höher standardmäßig installiert ist, kann Ihre App die größte Auswahl an Anbietern unterstützen, ohne dass Sie benutzerdefinierten Integrationscode schreiben müssen.
Unterstützung von Wi‑Fi TDLS
Android 4.4 bietet eine nahtlose Möglichkeit, Medien und andere Daten schneller zwischen Geräten zu streamen, die sich bereits im selben WLAN befinden. Dazu wird die Wi‑Fi Tunneled Direct Link Setup (TDLS)-Technologie unterstützt.
Bedienungshilfen
Systemweite Einstellungen für Untertitel
Android 4.4 bietet jetzt eine bessere Barrierefreiheit in allen Apps, da systemweite Einstellungen für Untertitel hinzugefügt wurden. Unter Einstellungen > Bedienungshilfen > Untertitel können Nutzer globale Untertiteleinstellungen festlegen, z. B. ob Untertitel angezeigt werden sollen und welche Sprache, Textgröße und Textstil verwendet werden sollen.
Apps, die Videos verwenden, können jetzt auf die Einstellungen für Untertitel des Nutzers zugreifen und die Darstellung an die Einstellungen des Nutzers anpassen. Mit der neuen Captioning Manager API kannst du die Untertitelungseinstellungen der Nutzer prüfen und überwachen. Der Untertitelmanager zeigt den bevorzugten Untertitelstatus des Nutzers sowie die bevorzugte Sprache, den Skalierungsfaktor und den Textstil an. Der Textstil umfasst die Farben für Vordergrund und Hintergrund, die Rahmeneigenschaften und die Schriftart.
Außerdem können Apps, die VideoView verwenden, eine neue API verwenden, um einen Untertitelstream zusammen mit einem Videostream zum Rendern zu übergeben. Das System kümmert sich automatisch um die Anzeige der Untertitel in den Videoframes gemäß den systemweiten Einstellungen des Nutzers. Derzeit unterstützt VideoView nur das automatische Einblenden von Untertiteln im WebVTT-Format.
Alle Apps, in denen Untertitel angezeigt werden, sollten die systemweiten Untertiteleinstellungen des Nutzers prüfen und Untertitel so genau wie möglich gemäß diesen Einstellungen rendern. Wenn du dir ansehen möchtest, wie bestimmte Kombinationen von Einstellungen aussehen, kannst du dir direkt in den Einstellungen eine Vorschau von Untertiteln in verschiedenen Sprachen, Größen und Stilen ansehen.
APIs für erweiterte Barrierefreiheit
Android 4.4 erweitert die APIs für Barrierefreiheit, um eine präzisere strukturelle und semantische Beschreibung und Beobachtung von Elementen auf dem Bildschirm zu unterstützen. Mit den neuen APIs können Entwickler die Qualität des barrierefreien Feedbacks verbessern, indem sie Diensten für Barrierefreiheit mehr Informationen zu Elementen auf dem Bildschirm zur Verfügung stellen.
In Knoten für Barrierefreiheit können Entwickler jetzt unter anderem feststellen, ob ein Knoten ein Pop-up ist, und den Eingabetyp abrufen. Mit den neuen APIs können Sie auch mit Knoten arbeiten, die gitterartige Informationen enthalten, z. B. Listen und Tabellen. So können Sie beispielsweise jetzt neue unterstützte Aktionen, Informationen zur Datenerhebung und Modi für Live-Regionen angeben.
Mit neuen Ereignissen für Barrierefreiheit können Entwickler die Änderungen an Fensterinhalten genauer verfolgen und jetzt auch auf Änderungen im Touch-Exploration-Modus des Geräts achten.
Unterstützung für internationale Nutzer
Spiegelung von Bildelementen für Sprachen mit linksläufiger Schrift
Wenn Ihre App auf Nutzer ausgerichtet ist, die RTL-Scripts verwenden, können Sie mit einer neuen API angeben, dass ein Zeichnen automatisch gespiegelt werden soll, wenn die Gebietsschemaeinstellung des Nutzers eine RTL-Sprache enthält.
Wenn Sie ein drawable als automatisch gespiegelt deklarieren, können Sie Assets in Ihrer App duplizieren und die Größe Ihres APKs reduzieren. Wenn Sie Drawables haben, die sowohl für LTR- als auch für RTL-Präsentationen wiederverwendbar sind, können Sie die Standardversionen als automatisch gespiegelt deklarieren und diese Drawables dann aus Ihren RTL-Ressourcen auslassen.
Sie können verschiedene Arten von drawables in Ihrem Anwendungscode als automatisch gespiegelt deklarieren, z. B. Bitmaps, Nine-Patch-Grafiken, Ebenen, Statuslisten und andere drawables. Sie können ein Drawable auch mit einem neuen Attribut in Ihren Ressourcendateien als automatisch gespiegelt deklarieren.
Linksläufiges Layout erzwingen
Damit Sie Probleme mit der Layoutspiegelung einfacher testen und beheben können, ohne zu einer RTL-Sprache zu wechseln, gibt es in Android eine neue Entwickleroption, mit der die RTL-Layoutrichtung in allen Apps erzwungen werden kann.
Wenn Sie die Option „RTL-Layout erzwingen“ aktivieren, wird das Gerät für alle Sprachen auf das RTL-Layout umgestellt und der Text wird in Ihrer aktuellen Sprache angezeigt. So können Sie Layoutprobleme in Ihrer App finden, ohne die App in einer RTL-Sprache anzeigen zu lassen. Sie können die Option unter Einstellungen > Entwickleroptionen > RTL-Layout erzwingen aufrufen.
Erhöhte Sicherheit
SELinux (Erzwingungsmodus)
Unter Android 4.4 wird die SELinux-Konfiguration von „permissive“ auf „enforcing“ umgestellt. Das bedeutet, dass potenzielle Richtlinienverstöße in einer SELinux-Domain mit einer erzwungenen Richtlinie blockiert werden.
Verbesserte kryptografische Algorithmen
Die Sicherheit von Android wurde weiter verbessert, indem die Unterstützung für zwei weitere kryptografische Algorithmen hinzugefügt wurde. Der Schlüsselspeicheranbieter unterstützt jetzt den Elliptic Curve Digital Signature Algorithm (ECDSA). Dadurch wird die Sicherheit der digitalen Signatur verbessert, was für Szenarien wie die Signatur einer Anwendung oder einer Datenverbindung relevant ist. Die Scrypt-Schlüsselableitungsfunktion wird implementiert, um die kryptografischen Schlüssel zu schützen, die für die Vollplattenverschlüsselung verwendet werden.
Weitere Verbesserungen
Auf Geräten mit mehreren Nutzern werden VPNs jetzt pro Nutzer angewendet. So kann ein Nutzer den gesamten Netzwerkverkehr über ein VPN leiten, ohne andere Nutzer auf dem Gerät zu beeinträchtigen. Außerdem unterstützt Android jetzt FORTIFY_SOURCE Level 2 und der gesamte Code wird mit diesen Schutzmaßnahmen kompiliert. FORTIFY_SOURCE wurde für die Verwendung mit clang optimiert.
Tools zur Analyse der Arbeitsspeichernutzung
Procstats
Mit dem neuen Tool procstats können Sie die von Ihrer App verwendeten Speicherressourcen sowie die von anderen Apps und Diensten verwendeten Ressourcen analysieren, die auf dem System ausgeführt werden.
Mit Procstats können Sie die Ausführung von Apps im Zeitverlauf verfolgen. Sie erhalten Daten zur Ausführungsdauer und Speichernutzung, um die Effizienz der Apps zu bestimmen. Das ist vor allem für Apps wichtig, die Dienste starten, die im Hintergrund ausgeführt werden, da Sie so überwachen können, wie lange sie ausgeführt werden und wie viel RAM dabei verbraucht wird. Mit Procstats werden auch Daten zur Speichernutzung im Zeitverlauf für Anwendungen im Vordergrund erfasst, um das Gesamtspeicherprofil der App zu ermitteln.
Mit Procstats können Sie Hintergrunddienste identifizieren, die von Ihrer App gestartet wurden. Sie können nachverfolgen, wie lange diese Dienste ausgeführt werden und wie viel RAM dabei verbraucht wird. Mit Procstats können Sie auch Ihre App im Vordergrund profilieren und anhand der Arbeitsspeichernutzung im Zeitverlauf das Gesamtarbeitsspeicherprofil ermitteln.
Sie können über das im Android SDK enthaltene adb-Tool auf procstats zugreifen: adb shell dumpsys procstats. Weitere Informationen zum On-Device-Profiling finden Sie unten in der Entwickleroption „Prozessstatistiken“.
On-Device-Speicherstatus und -Profiling
Android 4.4 bietet eine neue Entwickleroption, mit der sich das Arbeitsspeicherprofil Ihrer App leichter analysieren lässt, während sie auf einem beliebigen Gerät oder Emulator ausgeführt wird. Es ist besonders nützlich, einen Überblick darüber zu erhalten, wie Ihre App den Arbeitsspeicher nutzt und auf Geräten mit wenig RAM funktioniert. Sie finden die Option unter Einstellungen > Entwickleroptionen > Prozessstatistiken.
Die Option Prozessstatistiken enthält eine Vielzahl von allgemeinen Messwerten zur Speichernutzung Ihrer App, die auf Daten basieren, die mit dem neuen Dienst „procstats“ erfasst wurden. Auf dem Hauptbildschirm sehen Sie eine Zusammenfassung des Status des Systemspeichers. Grün steht für die relative Zeitspanne mit niedriger RAM-Auslastung, Gelb für eine mäßige RAM-Auslastung und Rot für eine hohe (kritische) RAM-Auslastung.
Unter der Zusammenfassung finden Sie eine Liste, in der die Speicherauslastung der einzelnen Apps auf dem System zusammengefasst ist. Für jede App gibt ein blauer Balken die relative berechnete Speicherauslastung (Laufzeit × avg_pss) des Prozesses an und ein Prozentsatz gibt den relativen Anteil der Zeit an, die im Hintergrund verbracht wurde. Sie können die Liste so filtern, dass nur Prozesse im Vordergrund, im Hintergrund oder im Cache angezeigt werden. Außerdem können Sie Systemprozesse ein- oder ausschließen. Sie können auch die Dauer der erfassten Daten auf 3, 6, 12 oder 24 Stunden ändern und den Arbeitsspeicher ein- oder ausschließen.
Wenn Sie sich die Speichernutzung einer bestimmten App genauer ansehen möchten, tippen Sie auf die App. Für jede App sehen Sie jetzt eine Zusammenfassung des verbrauchten Arbeitsspeichers und den Prozentsatz des Erfassungszeitraums, in dem die App ausgeführt wurde. Außerdem sehen Sie die durchschnittliche und maximale Nutzung im Erfassungszeitraum. Darunter finden Sie die Dienste der App und den Prozentsatz der Zeit, in der sie ausgeführt wurden.
Wenn Sie Ihre App anhand der Daten in den Prozessstatistiken analysieren, können Probleme erkannt und mögliche Optimierungen für Ihre App vorgeschlagen werden. Wenn Ihre App beispielsweise länger als nötig ausgeführt wird oder über einen bestimmten Zeitraum zu viel Arbeitsspeicher verbraucht, kann es sein, dass Fehler in Ihrem Code vorliegen, die Sie beheben können, um die Leistung Ihrer App zu verbessern. Das gilt insbesondere, wenn die App auf einem Gerät mit wenig RAM ausgeführt wird.