Willkommen bei Android 4.4 KitKat!
Android KitKat bietet alle der innovativsten, schönsten und nützlichsten Funktionen von Android auf mehr Geräten weltweit.
Dieses Dokument bietet einen Einblick in die Neuerungen für Entwickler.
Weitere Informationen zu KitKat für Privatnutzer finden Sie unter www.android.com.
Android für alle
Android 4.4 wurde so entwickelt, dass es schnell, flüssig und reaktionsschnell auf einer großen Bandbreite von Geräten ausgeführt wird als je zuvor – einschließlich Millionen von Einsteigergeräten weltweit mit nur 512 MB RAM.
KitKat optimiert alle wichtigen Komponenten, um die Speichernutzung zu reduzieren. Außerdem führt KitKat neue APIs und Tools ein, mit denen Sie innovative, responsive und speichereffiziente Anwendungen erstellen können.
OEMs, die die nächste Generation von Android-Geräten entwickeln, können von zielgerichteten Empfehlungen und Optionen profitieren, um Android 4.4 auch auf Geräten mit wenig Arbeitsspeicher effizient auszuführen. Die Abstimmung des Dalvik-JIT-Code-Cache, die Kernel-SamePage-Zusammenführung (KSM), der Wechsel zu zRAM und andere Optimierungen helfen bei der Speicherverwaltung. Mit neuen Konfigurationsoptionen können OEMs u. a. unzureichenden Arbeitsspeicher für Prozesse abstimmen, die Größe des Grafikcaches festlegen und die Arbeitsspeicherfreigabe steuern.
Bei Android selbst verbessern Änderungen im gesamten System die Arbeitsspeicherverwaltung und verringern den Arbeitsspeicherbedarf. Zentrale Systemprozesse werden reduziert, um die Nutzung von Heap zu reduzieren, und sie schützen den Systemspeicher jetzt stärker aggressiv vor Apps, die viel RAM verbrauchen. Wenn mehrere Dienste gleichzeitig gestartet werden, z. B. wenn sich die Netzwerkverbindung ändert, startet Android die Dienste jetzt nacheinander in kleinen Gruppen, um eine hohe Speicherauslastung zu vermeiden.
Entwicklern hilft Android 4.4 dabei, auf allen Geräten effiziente und reaktionsschnelle Apps bereitzustellen. Mit der neuen API ActivityManager.isLowRamDevice() können Sie das Verhalten Ihrer App an die Speicherkonfiguration des Geräts anpassen. Sie können Features mit großem Arbeitsspeicher nach Bedarf ändern oder deaktivieren, je nachdem, welche Anwendungsfälle Sie auf Einstiegsgeräten unterstützen möchten. Weitere Informationen zur Optimierung von Apps für Geräte mit geringem Arbeitsspeicher
Mit den neuen Tools erhalten Sie auch aussagekräftige Informationen zur Speichernutzung Ihrer App. Das procstats-Tool gibt Auskunft über die Arbeitsspeichernutzung im Zeitverlauf mit Laufzeiten und dem Arbeitsspeicherbedarf für Anwendungen im Vordergrund und Hintergrunddienste. Als neue Entwickleroption ist auch eine On-Device-Ansicht verfügbar. Das meminfo-Tool wurde optimiert, damit Trends und Probleme des Arbeitsspeichers leichter erkannt werden können. Außerdem zeigt es zusätzlichen Arbeitsspeicheraufwand an, der zuvor bislang nicht sichtbar war.
Neue NFC-Funktionen über Host Card Emulation
Mit Android 4.4 wird eine 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 eingeführt. Mit HCE kann jede App auf einem Android-Gerät eine NFC-Smartcard emulieren. Dadurch können Nutzer durch 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ät für HCE-Karten und andere NFC-basierte Transaktionen zu dienen.
Android HCE emuliert auf ISO/IEC 7816 basierende Smartcards, die für die Übertragung das Protokoll ISO/IEC 14443-4 (ISO-DEP) für kontaktloses Bezahlen verwenden. Diese Karten werden heute von vielen Systemen verwendet, einschließlich der bestehenden EMVCO-NFC-Zahlungsinfrastruktur. Android verwendet Anwendungs-IDs (App Identifiers, AIDs) gemäß ISO/IEC 7816-4 als Grundlage für das Routing von Transaktionen an die richtigen Android-Apps.
Apps deklarieren die von ihnen unterstützten AIDs in ihren Manifestdateien zusammen mit einer Kategoriekennung, die die Art des verfügbaren Supports angibt (z. B. „Zahlungen“). Wenn mehrere Apps dieselbe AID in derselben Kategorie unterstützen, zeigt Android ein Dialogfeld an, über das der Nutzer auswählen kann, welche App verwendet werden soll.
Wenn der Nutzer an einem Kassenterminal bezahlt, extrahiert das System die bevorzugte AID und leitet die Transaktion an die richtige Anwendung weiter. Die Anwendung liest die Transaktionsdaten und kann beliebige lokale oder netzwerkbasierte Dienste verwenden, um die Transaktion zu verifizieren und dann abzuschließen.
Für Android HCE muss ein NFC-Controller im Gerät vorhanden sein. Die Unterstützung für HCE ist bereits auf den meisten NFC-Controllern verfügbar, die dynamische Unterstützung sowohl für HCE- als auch SE-Transaktionen bieten. Geräte mit Android 4.4, die NFC unterstützen, können mit der Funktion zum mobilen Bezahlen ganz einfach mit HCE bezahlen.
Druckrahmen
Android-Apps können jetzt jede Art von Inhalt über WLAN oder in der Cloud gehostete Dienste wie Google Cloud Print drucken. In druckfähigen Anwendungen können Nutzer verfügbare Drucker finden, die Papiergröße ändern, bestimmte Seiten zum Drucken auswählen und fast alle Arten von Dokumenten, Bildern oder Dateien drucken.
Android 4.4 bietet native Plattformunterstützung für das Drucken sowie APIs zur Verwaltung des Druckens und Hinzufügen neuer Druckertypen. Die Plattform stellt einen Druckmanager bereit, der zwischen Apps, die Druckanfragen anfordern, und installierten Druckdiensten, die Druckanfragen verarbeiten, vermittelt. Der Druckmanager bietet freigegebene Dienste und eine System-UI für das Drucken, sodass Nutzer einheitliche Kontrolle über das Drucken aus jeder Anwendung haben. Der Druckmanager sorgt auch für die Sicherheit von Inhalten, wenn sie über Prozesse hinweg weitergegeben werden – von einer Anwendung bis zum Druckdienst.
Druckerhersteller können neue APIs verwenden, um ihre eigenen Druckdienste zu entwickeln. Das sind austauschbare Komponenten, die anbieterspezifische Logik und Dienste für die Kommunikation mit bestimmten Druckertypen hinzufügen. Sie können Druckdienste erstellen und über Google Play vertreiben, sodass Nutzer sie ganz einfach auf ihren Geräten finden und installieren können. Wie auch bei anderen Apps kannst du Druckdienste jederzeit over-the-air aktualisieren.
Clientanwendungen können neue APIs verwenden, um Druckfunktionen mit minimalen Codeänderungen hinzuzufügen. In den meisten Fällen würden Sie der Aktionsleiste eine Druckaktion und eine Benutzeroberfläche zum Auswählen von zu druckenden Elementen hinzufügen. Außerdem würden Sie APIs implementieren, um Druckaufträge zu erstellen, den Status im Druckmanager abzufragen und Aufträge abzubrechen. So können Sie nahezu jede Art von Inhalt drucken, von lokalen Bildern und Dokumenten über Netzwerkdaten bis hin zu einer auf Canvas gerenderten Ansicht.
Für eine größtmögliche Kompatibilität verwendet Android PDF als primäres Dateiformat für das Drucken. Vor dem Drucken muss Ihre Anwendung eine korrekt paginierte PDF-Version Ihrer Inhalte generieren. Die Drucker-API bietet native und WebView-Hilfsklassen, mit denen du PDFs mit standardmäßigen Android-Zeichen-APIs erstellen kannst. Wenn deine App weiß, wie Inhalte gezeichnet werden, kann sie schnell eine PDF-Datei zum Drucken erstellen.
Auf den meisten Geräten mit Android 4.4 sind Google Cloud Print als Druckdienst vorinstalliert. sowie mehrere Google-Apps, die das Drucken unterstützen, darunter Chrome, Drive, Gallery und QuickOffice.
Storage Access Framework
Ein neues Speicherzugriffs-Framework erleichtert Nutzern das Suchen und Öffnen von Dokumenten, Bildern und anderen Dateien bei ihren bevorzugten Speicheranbietern für Dokumente. Über eine standardmäßige, nutzerfreundliche UI können Nutzer Dateien durchsuchen und auf aktuelle Daten über alle Anwendungen und Anbieter hinweg einheitlich zugreifen.
Cloud- oder lokale Speicherdienste können an diesem System teilnehmen, indem eine neue Dokumentanbieterklasse implementiert wird, die ihre Dienste kapselt. Die Anbieterklasse enthält alle APIs, die erforderlich sind, um den Anbieter beim System zu registrieren und das Surfen, Lesen und Schreiben von Dokumenten beim Anbieter zu verwalten. Der Dokumentanbieter kann Nutzern Zugriff auf alle Remote- oder lokalen Daten gewähren, die als Dateien dargestellt werden können – von Text, Fotos und Hintergründen bis hin zu Video, Audio und mehr.
Wenn Sie einen Dokumentanbieter für einen Cloud- oder lokalen Dienst erstellen, können Sie ihn den Nutzern als Teil Ihrer vorhandenen Android-App zur Verfügung stellen. Nachdem Sie die App heruntergeladen und installiert haben, können Nutzer über jede App, die Teil des Frameworks ist, sofort auf Ihren Dienst zugreifen. So können Sie Ihre Präsenz und Nutzerinteraktion erhöhen, da Nutzer Ihre Dienste leichter finden.
Wenn Sie eine Client-App entwickeln, mit der Dateien oder Dokumente verwaltet werden, können Sie sie in das Storage Access Framework einbinden. Dazu verwenden Sie einfach die neuen Intents CREATE_DOCUMENT oder OPEN_DOCUMENT, um Dateien zu öffnen oder zu erstellen. Das System zeigt automatisch die Standard-UI zum Durchsuchen von Dokumenten an, einschließlich aller verfügbaren Dokumentanbieter.
Sie können Ihre Clientanwendung einmalig für alle Anbieter ohne anbieterspezifischen Code einbinden. Wenn Nutzer Anbieter hinzufügen oder entfernen, haben sie weiterhin über Ihre App Zugriff auf ihre bevorzugten Dienste, ohne dass Änderungen oder Aktualisierungen im Code erforderlich sind.
Das Speicherzugriffs-Framework ist in den vorhandenen Intent GET_CONTENT eingebunden, sodass Nutzer über die neue System-UI zum Durchsuchen auch auf alle ihre bisherigen Inhalte und Datenquellen zugreifen können. Apps können weiterhin GET_CONTENT verwenden, damit Nutzer Daten importieren können. Das Speicherzugriffs-Framework und die System-UI zum Durchsuchen erleichtern es Nutzern, ihre Daten aus einer Vielzahl von Quellen zu finden und aus diesen zu importieren.
Auf den meisten Geräten mit Android 4.4 sind Google Drive und der lokale Speicher als Dokumentanbieter vorinstalliert. Google-Apps, die mit Dateien arbeiten, verwenden ebenfalls das neue Framework.
Leistungsschwache Sensoren
Sensor-Batching
Android 4.4 bietet Plattformunterstützung für die Batchverarbeitung von Hardwaresensoren. Dies ist eine neue Optimierung, mit der der Stromverbrauch bei laufenden Sensoraktivitäten erheblich reduziert werden kann.
Beim Sensor-Batching arbeitet Android mit der Gerätehardware zusammen, um Sensorereignisse effizient in Batches zu erfassen und zu senden, anstatt einzeln, wenn sie erkannt werden. Dadurch kann der Anwendungsprozessor des Geräts in einem energiesparenden Inaktivitätsstatus verbleiben, bis Batches zugestellt werden. Sie können Batch-Ereignisse von jedem Sensor mithilfe eines Standard-Event-Listeners anfordern und das Intervall festlegen, in dem Sie Batches empfangen. Sie können auch die sofortige Übermittlung von Ereignissen zwischen Batchzyklen anfordern.
Die Batchverarbeitung von Sensoren ist ideal für Anwendungsfälle mit geringem Energieverbrauch, langer Laufzeit wie Fitness, Standortverfolgung und Überwachung. Sie kann Ihre App effizienter machen und Sensorereignisse kontinuierlich erfassen – auch wenn der Bildschirm ausgeschaltet ist und das System sich im Ruhemodus befindet.
Die Batch-Verarbeitung von Sensoren ist derzeit für Nexus 5 verfügbar. Wir arbeiten mit unseren Chipsatzpartnern zusammen, um sie so schnell wie möglich auf weiteren Geräten anbieten zu können.
Schritterkennung und Schrittzähler
Android 4.4 bietet außerdem Plattformunterstützung für zwei neue zusammengesetzte Sensoren: Schrittdetektor und Schrittzähler, mit denen Ihre App Schritte zählt, wenn der Nutzer geht, läuft oder eine Treppe hochsteigt. Diese neuen Sensoren werden in Hardware integriert, um den Stromverbrauch zu reduzieren.
Der Schrittdetektor analysiert die Eingaben des Beschleunigungsmessers, um zu erkennen, wenn 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 Geräteneustart und löst bei jeder Änderung der Schrittzahl ein Ereignis aus. Da die Logik und die Sensorverwaltung in die Plattform und die zugrunde liegende Hardware integriert sind, müssen Sie keine eigenen Erkennungsalgorithmen in Ihrer App verwalten.
Schritt- und Zählersensoren sind für Nexus 5 verfügbar. Wir arbeiten mit unseren Chipsatzpartnern zusammen, um sie so schnell wie möglich auf neuen Geräten zur Verfügung zu stellen.
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 das Speichern und Abrufen von Nachrichten in Ihrer App zu verwalten. Der neue SMS-Anbieter und die neuen APIs definieren ein standardisiertes Interaktionsmodell für alle Apps, die SMS oder MMS verarbeiten.
Neben dem neuen Anbieter und den neuen APIs führt Android 4.4 eine neue Semantik zum Empfangen von Nachrichten und zum Schreiben an den Anbieter ein. Wenn eine Nachricht empfangen wird, leitet das System sie mithilfe des neuen Intents SMS_DELIVER direkt an die Standard-Messaging-App des Nutzers weiter. Andere Apps können eingehende Nachrichten weiterhin mit dem Intent SMS_RECEIVED überwachen. Außerdem lässt das System jetzt nur noch die Standardanwendung zu, Nachrichtendaten an den Anbieter zu schreiben, obwohl andere Anwendungen jederzeit lesen können. Anwendungen, die nicht die Standardanwendung des Nutzers sind, können trotzdem Nachrichten senden. Das System schreibt diese Nachrichten im Namen der Anwendung an den Anbieter, sodass Nutzer sie in der Standardanwendung sehen können.
Der neue Anbieter und die neue Semantik verbessern die Nutzererfahrung, wenn mehrere Messaging-Apps installiert sind, und helfen Ihnen, neue Messaging-Features mit vollständig unterstützten, aufwärtskompatiblen APIs zu erstellen.
Neue Möglichkeiten zum Entwickeln ansprechender Apps
Immersiver Modus im Vollbildmodus
Ihre Apps können jetzt jedes Pixel auf dem Gerätebildschirm nutzen, um Ihre Inhalte zu präsentieren und Touch-Ereignisse zu erfassen. Android 4.4 bietet einen neuen immersiven Vollbildmodus, mit dem Sie randlose UIs auf Smartphones und Tablets von Rand bis Rand erstellen können, wobei alle System-UIs wie die Statusleiste und die Navigationsleiste ausgeblendet werden. Sie eignet sich ideal für vielfältige visuelle Inhalte wie Fotos, Videos, Karten, Bücher und Spiele.
Im neuen Modus bleibt die System-UI verborgen, auch wenn Nutzer mit Ihrer App oder Ihrem Spiel interagieren. Touch-Ereignisse lassen sich von überall auf dem Bildschirm erfassen – sogar von Bereichen, die andernfalls von den Systemleisten belegt werden. So können Sie eine größere, vielfältigere und immersivere Benutzeroberfläche in Ihrer App oder Ihrem Spiel erstellen und visuelle Ablenkungen reduzieren.
Damit Nutzer im immersiven Vollbildmodus immer einfach und konsistent auf die System-UI zugreifen können, wird in Android 4.4 eine neue Geste unterstützt. Im immersiven Modus wird jetzt die System-UI geöffnet, wenn der Nutzer vom oberen oder unteren Bildschirmrand nach oben wischt.
Um in den immersiven Modus zurückzukehren, können Nutzer den Bildschirm außerhalb der Balkengrenzen berühren oder eine kurze Zeit warten, bis die Balken automatisch ausgeblendet werden. Für eine einheitliche Nutzererfahrung funktioniert die neue Touch-Geste auch mit früheren Methoden zum Ausblenden der Statusleiste.
Framework für Übergänge zum Animieren von Szenen
Die meisten Apps strukturieren ihre Abläufe um mehrere wichtige UI-Status, die unterschiedliche Aktionen enthalten. In vielen Apps werden auch Animationen eingesetzt, damit Nutzer den Fortschritt in diesen Stadien und die in den einzelnen Status verfügbaren Aktionen nachvollziehen können. Mit Android 4.4 wird ein neues Übergangs-Framework eingeführt, damit du in deiner App einfacher Animationen in hoher Qualität erstellen kannst.
Mit dem Übergangs-Framework können Sie Szenen definieren. Dabei handelt es sich in der Regel um Hierarchien und Übergänge, die beschreiben, wie die Szenen animiert oder angepasst werden, wenn der Nutzer die Szenen betritt oder verlässt. Sie können verschiedene vordefinierte Übergangstypen verwenden, um Ihre Szenen anhand bestimmter Eigenschaften wie Layoutgrenzen oder Sichtbarkeit zu animieren. Es gibt einen automatischen Übergang, mit dem Ansichten während eines Szenenwechsels automatisch ausgeblendet, verschoben und in der Größe angepasst werden. Darüber hinaus können Sie benutzerdefinierte Übergänge definieren, mit denen die für Ihre App wichtigsten Eigenschaften animiert werden. Bei Bedarf können Sie auch eigene Animationsstile einfügen.
Mit dem Transitions-Framework können Sie auch Änderungen an Ihrer UI spontan animieren, ohne Szenen definieren zu müssen. Sie können beispielsweise eine Reihe von Änderungen an einer Ansichtshierarchie vornehmen und dann 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 in Ihrer App aufrufen. Sie können beispielsweise eine einzelne Methode aufrufen, um einen Übergang zu starten, und verschiedene Änderungen an der Ansichtshierarchie vornehmen. Auf dem nächsten Frame wird dann automatisch die Animation der von Ihnen festgelegten Änderungen gestartet.
Zur benutzerdefinierten Steuerung der Übergänge zwischen bestimmten Szenen in Ihrem Anwendungsablauf können Sie den TransitionManager verwenden. Mit TransitionManager können Sie die Beziehung zwischen Szenen und den Übergängen definieren, die bei bestimmten Szenenänderungen ausgeführt werden.
Durchsichtiger Stil der System-UI
Damit du deine Inhalte optimal nutzen kannst, kannst du jetzt neue Fensterstile und Designs verwenden, um eine durchscheinende System-UI anzufordern, einschließlich der Statusleiste und der Navigationsleiste. Um die Lesbarkeit der Schaltflächen der Navigationsleiste oder der Statusleisteninformationen zu gewährleisten, werden dezente Farbverläufe hinter den Systemleisten angezeigt. Ein typischer Anwendungsfall ist eine App, die bis zum Hintergrund durchscheinen muss.
Erweiterter Zugriff auf Benachrichtigungen
Benachrichtigungs-Listener-Dienste können jetzt weitere Informationen zu eingehenden Benachrichtigungen sehen, die mit den Notification Builder-APIs erstellt wurden. Listener-Dienste können auf die Aktionen einer Benachrichtigung sowie auf neue Extras-Felder wie Text, Symbol, Bild, Fortschritt und Chronometer zugreifen, um aussagekräftigere Informationen über die Benachrichtigung zu extrahieren und diese auf andere Weise darzustellen.
Chromium WebView
Android 4.4 enthält eine völlig neue Implementierung von WebView, die auf Chromium basiert. Das neue Chromium WebView bietet dir die neuesten Standards in Bezug auf Unterstützung, Leistung und Kompatibilität, um deine webbasierten Inhalte zu erstellen und anzuzeigen.
Chromium WebView bietet umfassende Unterstützung für HTML5, CSS3 und JavaScript. Die HTML5-Version unterstützt die meisten HTML5-Funktionen, die in Chrome für Android 30 verfügbar sind. Darüber hinaus wird eine aktualisierte Version der JavaScript Engine (V8) bereitgestellt, die eine deutlich verbesserte JavaScript-Leistung bietet.
Darüber hinaus unterstützt das neue Chromium WebView Remote-Debugging mit den Chrome-Entwicklertools. Du kannst beispielsweise die Chrome-Entwicklertools auf deinem Entwicklungscomputer verwenden, um deine WebView-Inhalte live auf einem Mobilgerät zu prüfen, zu debuggen und zu analysieren.
Das neue Chromium WebView ist auf allen kompatiblen Geräten mit Android 4.4 und höher enthalten. Du kannst das neue WebView sofort und mit minimalen Änderungen an vorhandenen Apps und Inhalten nutzen. In den meisten Fällen werden Ihre Inhalte nahtlos zur neuen Implementierung migriert.
Neue Medienfunktionen
Bildschirmaufzeichnung
Du kannst jetzt ganz einfach Videos in hoher Qualität direkt auf deinem Android-Gerät erstellen. Android 4.4 unterstützt jetzt die Bildschirmaufzeichnung und bietet ein Dienstprogramm für die 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 Anwendung, Testmaterialien, Marketingvideos und mehr erstellen.
Mit dem Dienstprogramm zur Bildschirmaufzeichnung können Sie Videos vom Bildschirminhalt Ihres Geräts aufnehmen und als MP4-Datei auf dem Gerät speichern. Sie können eine beliebige von dem Gerät unterstützte Auflösung und Bitrate aufnehmen. Die Ausgabe behält das Seitenverhältnis des Bildschirms bei. Das Dienstprogramm wählt standardmäßig eine Auflösung aus, die der Bildschirmauflösung des Geräts in der aktuellen Ausrichtung entspricht oder nahe bei ihnen liegt. Wenn die Aufnahme abgeschlossen ist, kannst du das Video direkt von deinem Gerät aus teilen oder die MP4-Datei für die Nachbearbeitung auf deinen Hostcomputer übertragen.
Wenn in Ihrer App Videos oder andere geschützte Inhalte wiedergegeben werden, die nicht vom Bildschirmrekorder aufgenommen werden sollen, können Sie die Inhalte mit SurfaceView.setSecure() als sicher markieren.
Sie können auf die Bildschirmaufzeichnung über das ADB-Tool im Android SDK zugreifen. Dazu verwenden Sie den Befehl adb shell displayrecord. Sie kann auch über logcat in Android Studio gestartet werden.
Auflösungswechsel durch adaptive Wiedergabe
Mit Android 4.4 wird die adaptive Wiedergabe im Android-Medien-Framework formal unterstützt. Die adaptive Wiedergabe ist eine optionale Funktion von Videodecoder für MPEG-DASH und andere Formate, die eine nahtlose Änderung der Auflösung während der Wiedergabe ermöglicht. Der Client kann damit beginnen, die Videoframes des Decoders mit einer neuen Auflösung einzuspeisen, und die Auflösung der Ausgabezwischenspeicher ändert sich automatisch und ohne nennenswerte Lücke.
Durch den Wechsel der Auflösung unter Android 4.4 bieten Medien-Apps ein deutlich besseres Videostreaming. Apps können mithilfe vorhandener APIs während der Laufzeit prüfen, ob die Unterstützung für die adaptive Wiedergabe unterstützt wird, und die Auflösung mithilfe neuer APIs implementieren, die in Android 4.4 eingeführt wurden.
Allgemeine Verschlüsselung für DASH
Android unterstützt jetzt die Common Encryption (CENC) für MPEG-DASH und bietet ein standardmäßiges, plattformübergreifendes DRM-Schema für die Verwaltung geschützter Inhalte. Apps können CENC über das modulare DRM-Framework von Android und die Plattform-APIs zur Unterstützung von DASH nutzen.
HTTP-Livestreaming
Mit Android 4.4 wird die Unterstützung der Plattform für HTTP-Live-Streaming (HLS) auf eine Obermenge von Version 7 der HLS-Spezifikation (Version 4 des Protokolls) aktualisiert. Weitere Informationen finden Sie im IETF-Entwurf.
Audio-Tunneling zu DSP
Für eine leistungsstarke Audiowiedergabe mit geringerem Stromverbrauch wird mit Android 4.4 eine Plattformunterstützung für Audiotunneling zu einem digitalen Signalprozessor (DSP) im Geräte-Chipsatz hinzugefügt. Beim Tunneling werden die Audiodecodierung und die Ausgabeeffekte auf den DSP verlagert, wodurch der Anwendungsprozessor seltener aktiviert wird und der Akku geschont wird.
Audiotunneling kann die Akkulaufzeit in Anwendungsfällen deutlich verbessern, beispielsweise wenn Sie bei abgeschaltetem Bildschirm Musik über ein Headset hören. Bei Audiotunneling bietet Nexus 5 beispielsweise eine Audiowiedergabezeit von insgesamt bis zu 60 Stunden außerhalb des Netzwerks, was einen Anstieg von über 50% gegenüber Audio ohne Tunnel bietet.
Medienanwendungen können Audiotunneling auf unterstützten Geräten nutzen, ohne Code ändern zu müssen. Das System wendet Tunneling-Technologie an, um die Audiowiedergabe zu optimieren, sofern diese Funktion auf dem Gerät verfügbar ist.
Audiotunneling erfordert Unterstützung von der Gerätehardware. Derzeit ist Audiotunneling auf Nexus 5 verfügbar. Wir arbeiten mit unseren Chipsatzpartnern daran, es so schnell wie möglich auf weiteren Geräten zur Verfügung zu stellen.
Audioüberwachung
Anwendungen können neue Monitoring-Tools für den Visualizer-Effekt verwenden, um Aktualisierungen zu den Spitzen- und RMS-Levels aller aktuell auf dem Gerät wiedergegebenen Audioinhalte zu erhalten. Du kannst dies beispielsweise kreativ in Musik-Visualizern verwenden oder zur Implementierung der Wiedergabemessung in einem Mediaplayer implementieren.
Lautstärkeverstärker
Anwendungen für die Medienwiedergabe können die Lautstärke gesprochener Inhalte erhöhen. Hierzu wird der neue LoudnessEnhancer-Effekt genutzt, der als Kompressor mit speziell für Sprache abgestimmten Zeitkonstanten fungiert.
Audiozeitstempel für verbesserte AV-Synchronisierung
Das Audio-Framework kann jetzt Präsentationszeitstempel vom Audioausgabe-HAL an Anwendungen melden, um die Audio-/Video-Synchronisierung zu verbessern. Mithilfe von Audiozeitstempeln kann deine App feststellen, wann ein bestimmter Audioframe dem Nutzer außerhalb des Geräts angezeigt wird oder wurde. Mithilfe der Zeitstempelinformationen kannst du das Audio mit Videoframes genauer synchronisieren.
MiracastTM mit WLAN-Zertifizierung
Geräte mit Android 4.4 können jetzt gemäß der Wi-Fi Alliance Wi-Fi Display Specification als Miracast-kompatibel zertifiziert werden. Eine neue Entwickleroption für kabellose Displays bietet erweiterte Konfigurationssteuerungen und Einstellungen für die Zertifizierung von WLAN-Displays, um die Tests zu vereinfachen. Du findest die Option unter Einstellungen > Entwickleroptionen > Zertifizierung für kabellose Displays. Nexus 5 ist ein Miracast-zertifiziertes kabelloses Anzeigegerät.
RenderScript-Berechnung
Kontinuierliche Leistungsverbesserungen
Wenn Ihre Apps RenderScript verwenden, profitieren sie von einer kontinuierlichen Leistungsoptimierung in der RenderScript-Laufzeit selbst, ohne dass eine Neukompilierung erforderlich ist. Das rechte Diagramm zeigt Leistungssteigerungen in Android 4.4 auf zwei beliebten Chipsätzen.
GPU-Beschleunigung
Jede App, die RenderScript auf einem unterstützten Gerät verwendet, profitiert von der GPU-Beschleunigung, ohne Codeänderungen oder Neukompilierungen. Seit der Einführung der RenderScript-GPU-Beschleunigung auf dem Nexus 10 wurde die Unterstützung von verschiedenen anderen Hardwarepartnern hinzugefügt.
Mit Android 4.4 ist die GPU-Beschleunigung jetzt sowohl auf dem Nexus 5 als auch auf dem Nexus 4, Nexus 7 (2013) und Nexus 10 verfügbar. Wir arbeiten mit unseren Partnern daran, sie so schnell wie möglich auf weiteren Geräten zur Verfügung zu stellen.
RenderScript im Android-NDK
Sie können RenderScript jetzt direkt in Ihrem nativen Code nutzen. Über eine neue C++ API im Android Native Development Kit (NDK) kannst du auf dieselben RenderScript-Funktionen zugreifen, die auch über die Framework-APIs verfügbar sind, einschließlich Skriptintrinsiken, benutzerdefinierten Kernels und mehr.
Wenn Sie große, leistungsintensive Aufgaben in nativem Code bewältigen müssen, können Sie diese Aufgaben mit RenderScript ausführen und in Ihren nativen Code einbinden. RenderScript bietet hervorragende Leistung auf einer Vielzahl von Geräten mit automatischer Unterstützung für Mehrkern-CPUs, GPUs und andere Prozessoren.
Wenn Sie eine App erstellen, die RenderScript über den NDK verwendet, können Sie sie auf jedes Gerät mit Android 2.2 oder höher verteilen, genau wie die RenderScript-Supportbibliothek für Framework-APIs.
Grafik
GLES2.0 SurfaceFlinger
Unter Android 4.4 wird SurfaceFlinger von OpenGL ES 1.0 auf OpenGL ES 2.0 aktualisiert.
Neue Hardware Composer-Unterstützung für virtuelle Anzeigen
Die neueste Version von Android Hardware Composer, HWComposer 1.3, unterstützt neben dem primären, externen Bildschirm (z.B. HDMI) die Hardwarezusammensetzung eines virtuellen Bildschirms und bietet eine verbesserte OpenGL ES-Interoperabilität.
Neue Verbindungstypen
Neue Bluetooth-Profile
Android 4.4-Unterstützung für zwei neue Bluetooth-Profile, damit Apps eine breitere Palette von Medieninteraktionen und Interaktionen mit geringem Stromverbrauch unterstützen. Bluetooth HID over GATT (HOGP) bietet Apps eine Verbindung mit niedriger Latenz zu Peripheriegeräten mit geringem Energieverbrauch 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. einem Kfz-Terminal zur Freisprechfunktion oder einem anderen Mobilgerät. Als Erweiterung von Bluetooth AVRCP 1.3 können Nutzer jetzt die absolute Lautstärke im System über ihre Bluetooth-Geräte festlegen.
Die Plattformunterstützung für HOGP, MAP und AVRCP basiert auf dem Bluedroid-Bluetooth-Stack, der von Google und Broadcom mit Android 4.2 eingeführt wurde. Nexus-Geräte und andere Android-kompatible Geräte, die kompatible Bluetooth-Funktionen haben, werden sofort unterstützt.
Infrarotstrahler
Android 4.4 bietet Plattformunterstützung für integrierte IR-Blaster sowie eine neue API und einen neuen Systemdienst, mit dem Sie Anwendungen erstellen und nutzen können.
Mit der neuen API können Sie Apps erstellen, mit denen Nutzer Fernseher, Tuner, Schalter und andere elektronische Geräte in der Nähe aus der Ferne steuern können. Mit der API kann deine App prüfen, ob das Smartphone oder Tablet einen Infrarotsender hat, die Frequenz des Mobilfunkanbieters abfragen und dann Infrarotsignale senden.
Da die API standardmäßig auf Android-Geräten mit Android 4.4 oder höher verwendet wird, kann Ihre App eine möglichst große Bandbreite von Anbietern unterstützen, ohne eigenen Integrationscode schreiben zu müssen.
WLAN-TDLS-Unterstützung
Android 4.4 bietet dank Wi-Fi Tunneled Direct Link Setup (TDLS) eine nahtlose Möglichkeit, Medien und andere Daten schneller zwischen Geräten zu streamen, die sich bereits im selben WLAN befinden.
Bedienungshilfen
Systemweite Einstellungen für Untertitel
Android 4.4 unterstützt jetzt eine bessere Barrierefreiheit von Apps durch systemweite Einstellungen für Untertitel. Nutzer können unter Einstellungen > Bedienungshilfen > Untertitel allgemeine Untertiteleinstellungen festlegen, z. B. ob Untertitel angezeigt werden sollen, welche Sprache, Textgröße und Textstil verwendet werden sollen.
Apps, die Videos verwenden, können jetzt auf die Untertiteleinstellungen des Nutzers zugreifen und die Präsentation an die Präferenzen des Nutzers anpassen. Mit der neuen Captioning Manager API kannst du die Untertiteleinstellungen der Nutzer im Blick behalten. Im Untertitel-Manager werden der bevorzugte Untertitelstatus des Nutzers sowie die bevorzugte Sprache, der Skalierungsfaktor und der Textstil angegeben. Der Textstil umfasst Vorder- und Hintergrundfarben, Kanteneigenschaften und das Schriftbild.
Darüber hinaus können Apps, die VideoView nutzen, eine neue API nutzen, um einen Untertitelstream zusammen mit einem Videostream zum Rendern weiterzugeben. Die Anzeige der Untertitel in Videoframes erfolgt automatisch gemäß den Systemeinstellungen des Nutzers. Derzeit unterstützt VideoView die automatische Anzeige von Untertiteln nur im WebVTT-Format.
Bei allen Apps, die Untertitel anzeigen, sollten die systemweiten Untertiteleinstellungen des Nutzers geprüft und die Untertitel so nah wie möglich an diesen Einstellungen angepasst werden. Wenn du wissen möchtest, wie bestimmte Kombinationen von Einstellungen aussehen sollten, kannst du dir direkt in der App „Einstellungen“ eine Vorschau der Untertitel in verschiedenen Sprachen, Größen und Stilen ansehen.
Optimierte APIs für Barrierefreiheit
Android 4.4 erweitert die Accessibility APIs, um eine genauere strukturelle und semantische Beschreibung und die Beobachtung von Bildschirmelementen zu unterstützen. Mit den neuen APIs können Entwickler die Qualität des barrierefreien Feedbacks verbessern, indem sie Bedienungshilfen mehr Informationen zu Bildschirmelementen zur Verfügung stellen.
In Knoten für Bedienungshilfen können Entwickler jetzt unter anderem feststellen, ob ein Knoten ein Pop-up ist, den Eingabetyp abrufen und vieles mehr. Sie können neue APIs auch verwenden, um mit Knoten zu arbeiten, die rasterähnliche Informationen wie Listen und Tabellen enthalten. Sie können jetzt beispielsweise neue unterstützte Aktionen, Sammlungsinformationen, Live-Regionsmodi und vieles mehr angeben.
Mit neuen Bedienungshilfen können Entwickler die Änderungen an Fensterinhalten genauer verfolgen. Außerdem können sie jetzt auf Änderungen im Touchscreen-Erkundungsmodus des Geräts warten.
Support für internationale Nutzer
Drawable-Spiegelung für RTL-Sprachen
Wenn deine App auf Nutzer ausgerichtet ist, die RTL-Skripts verwenden, kannst du eine neue API verwenden, um zu deklarieren, dass ein Drawable automatisch gespiegelt werden sollte, wenn die Spracheinstellung des Nutzers eine RTL-Sprache enthält.
Durch das Deklarieren eines Drawables als automatisch gespiegelt kannst du Duplizierung von Assets in deiner App vermeiden und die Größe deines APKs verringern. Wenn du Drawables hast, die sowohl für LTR- als auch für RTL-Präsentationen wiederverwendbar sind, kannst du die Standardversionen als automatisch gespiegelt deklarieren und diese Drawables dann aus deinen RTL-Ressourcen weglassen.
Du kannst verschiedene Arten von Drawables, z. B. Bitmap-, 9-Patch-, Layer-, Statuslisten- und andere Drawables, als automatisch gespiegelt deklarieren. Mit einem neuen Attribut kannst du ein Drawable auch in deinen Ressourcendateien als automatisch gespiegelt deklarieren.
Linksläufiges Layout erzwingen
Damit du Probleme mit der Layoutspiegelung einfacher testen und beheben kannst, ohne zu einer Sprache mit linksläufiger Schrift zu wechseln, bietet Android eine neue Entwickleroption, mit der du in allen Apps die Richtung des RTL-Layouts erzwingen kannst.
Mit der Option „Rechtsläufiges Layout erzwingen“ wird das Gerät für alle Sprachen zum linksläufigen Layout gewechselt und der Text wird in deiner aktuellen Sprache angezeigt. So kannst du Layoutprobleme in deiner gesamten App finden, ohne die App in einer RTL-Sprache anzeigen zu müssen. Sie finden die Option unter Einstellungen > Entwickleroptionen > RTL-Layoutrichtung erzwingen.
Erhöhte Sicherheit
SELinux (Erzwingenmodus)
In Android 4.4 wird die SELinux-Konfiguration von "permissive" zu "enforcing" geändert. Das bedeutet, dass potenzielle Richtlinienverstöße innerhalb einer SELinux-Domain mit einer erzwungenen Richtlinie blockiert werden.
Verbesserte kryptografische Algorithmen
Android hat seine Sicherheit weiter verbessert, indem zwei weitere kryptografische Algorithmen unterstützt werden. Der Schlüsselspeicheranbieter (Elliptic Curve Digital Signature Algorithm, ECDSA) unterstützt jetzt die Sicherheit der digitalen Signatur, beispielsweise für das Signieren einer Anwendung oder einer Datenverbindung. Die Scrypt-Schlüsselableitungsfunktion wird implementiert, um die kryptografischen Schlüssel zu schützen, die für die Datenträgervollverschlüsselung verwendet werden.
Weitere Verbesserungen
Auf Geräten mit mehreren Nutzern werden VPNs jetzt auf jeden 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 die Stufe 2 von FORTIFY_SOURCE, und der gesamte Code wird mit diesem Schutz kompiliert. FORTIFY_SOURCE wurde für Clang optimiert.
Tools zur Analyse der Arbeitsspeichernutzung
Procstats
Das neue Tool procstats hilft Ihnen bei der Analyse der von Ihrer Anwendung verwendeten Speicherressourcen sowie der Ressourcen, die von anderen Anwendungen und Diensten verwendet werden, die auf dem System ausgeführt werden.
Procstats verfolgt die Ausführung von Anwendungen im Zeitverlauf und stellt Daten zur Ausführungsdauer und zur Speichernutzung bereit, um festzustellen, wie effizient sie ausgeführt werden. Dies ist für Anwendungen, die im Hintergrund ausgeführte Dienste starten, besonders wichtig, da Sie damit überwachen können, wie lange sie ausgeführt werden und wie viel RAM sie dabei verwenden. Procstats erfasst außerdem Daten zur Speichernutzung von Anwendungen im Vordergrund im Laufe der Zeit, um das Gesamtspeicherprofil der Anwendung zu bestimmen.
Mit Procstats können Sie Hintergrunddienste identifizieren, die von Ihrer Anwendung gestartet werden. Sie können verfolgen, wie lange diese Dienste weiter ausgeführt werden und wie viel RAM sie dabei verwenden. Mit Procstats können Sie außerdem ein Profil für Ihre Anwendung erstellen, während sie im Vordergrund ausgeführt wird. Dabei wird die Arbeitsspeichernutzung im Zeitverlauf zur Bestimmung des gesamten Arbeitsspeicherprofils herangezogen.
Sie können auf Procstats über das ADB-Tool zugreifen, das im Android SDK enthalten ist: ADB Shell dumpsys Procstats. Informationen zur Profilerstellung auf dem Gerät finden Sie unter der Entwickleroption für Prozessstatistiken unten.
Arbeitsspeicherstatus auf dem Gerät und Profilerstellung
Android 4.4 beinhaltet eine neue Entwickleroption, mit der du das Speicherprofil deiner App einfacher analysieren kannst, während sie auf einem Gerät oder Emulator ausgeführt wird. Besonders nützlich ist diese Funktion, wenn Sie sehen möchten, wie Ihre App Arbeitsspeicher nutzt und wie leistungsfähig Ihre App auf Geräten mit wenig RAM ist. Sie finden die Option unter Einstellungen > Entwickleroptionen > Prozessstatistiken.
Die Option Process Stats (Prozessstatistiken) zeigt Ihnen verschiedene allgemeine Messwerte zur Arbeitsspeichernutzung Ihrer Anwendung, basierend auf Daten, die mit dem neuen procstats-Dienst erfasst wurden. Auf dem Hauptbildschirm sehen Sie eine Zusammenfassung des Systemspeicherstatus. Grün steht für die relative Zeit bei geringer RAM-Nutzung, Gelb für eine mäßige RAM-Nutzung und Rot für eine hohe (kritische) RAM-Nutzung.
Unter der Zusammenfassung finden Sie eine Liste mit einer Zusammenfassung der Arbeitsspeicherauslastung der einzelnen Anwendungen im System. Für jede Anwendung gibt ein blauer Balken die relative berechnete Arbeitsspeicherauslastung (runtime x avg_pss) des zugehörigen Prozesses an und ein Prozentsatz gibt die relative Zeit an, die im Hintergrund verbracht wurde. Sie können die Liste filtern, um nur Vorder-, Hintergrund- oder im Cache gespeicherte Prozesse anzuzeigen. Außerdem können Sie Systemprozesse ein- oder ausschließen. Sie können die Dauer der erfassten Daten auch auf 3, 6, 12 oder 24 Stunden ändern und US-Arbeitsspeicher ein- oder ausschließen.
Wenn Sie sich die Arbeitsspeichernutzung einer bestimmten App isoliert ansehen möchten, tippen Sie auf die entsprechende App. Für jede App sehen Sie jetzt eine Zusammenfassung des verbrauchten Arbeitsspeichers sowie den Prozentsatz des Erfassungsintervalls, in dem die App ausgeführt wurde. Außerdem sehen Sie die durchschnittliche und maximale Nutzung während des Erfassungszeitraums sowie unter den Diensten der Anwendung und dem Prozentsatz der Ausführungszeit.
Wenn Sie Ihre Anwendung anhand der Daten in der Prozessstatistik analysieren, können Sie Probleme erkennen und mögliche Optimierungen für Ihre Anwendung vorschlagen. Wenn Ihre Anwendung beispielsweise länger als erwartet ausgeführt wird oder zu viel Speicher über einen bestimmten Zeitraum hinweg verwendet, können Fehler in Ihrem Code auftreten, die Sie zur Verbesserung der Leistung Ihrer App beheben können, insbesondere wenn sie auf einem Gerät mit niedrigem RAM ausgeführt wird.