Android 4.3
Willkommen bei Android 4.3, einer noch besseren Version von Jelly Bean.
Android 4.3 bietet Leistungsoptimierungen und tolle neue Funktionen für Nutzer und Entwickler. In diesem Dokument erhalten Sie einen Überblick über die Neuigkeiten für Entwickler.
Im Dokument Android 4.3 APIs finden Sie ausführliche Informationen zu den neuen APIs für Entwickler.
Weitere Informationen zu den neuen Jelly Bean-Funktionen für Nutzer finden Sie unter www.android.com.
Schneller, flüssiger, reaktionsfähiger
Android 4.3 baut auf den Leistungsverbesserungen von Jelly Bean auf – Vsync-Timing, Dreifachpufferung, verringerte Touch-Latenz, CPU-Eingabe-Boost und hardwaregestütztes 2D-Rendering – und fügt neue Optimierungen hinzu, die Android noch schneller machen.
Für eine Leistungssteigerung bei der Grafik optimiert der hardwaregestützte 2D-Renderer jetzt den Stream der Zeichenbefehle und wandelt ihn in ein effizienteres GPU-Format um, indem er Zeichenvorgänge neu anordnet und zusammenführt. Für die parallele Verarbeitung kann der Renderer jetzt auch Multithreading über mehrere CPU-Kerne hinweg für bestimmte Aufgaben verwenden.
Außerdem wurde das Rendering von Formen und Text verbessert. Formen wie Kreise und abgerundete Rechtecke werden jetzt effizienter und in höherer Qualität gerendert. Zu den Optimierungen für Text gehören eine bessere Leistung bei der Verwendung mehrerer Schriftarten oder komplexer Schriftzeichensätze (CJK), eine höhere Renderingqualität beim Skalieren von Text und ein schnelleres Rendering von Schlagschatten.
Die verbesserte Zuordnung von Fensterpuffern führt zu einer schnelleren Zuordnung von Bildpuffern für Ihre Apps. Dadurch wird die Zeit verkürzt, die zum Starten des Renderings beim Erstellen eines Fensters benötigt wird.
Für die höchste Grafikleistung wird in Android 4.3 die Unterstützung für OpenGL ES 3.0 eingeführt. Diese wird sowohl über das Framework als auch über native APIs für Apps zugänglich gemacht. Auf unterstützten Geräten nutzt die hardwaregestützte 2D-Rendering-Engine OpenGL ES 3.0, um das Texturmanagement zu optimieren und die Qualität des Gradienten-Renderings zu verbessern.
OpenGL ES 3.0 für Hochleistungsgrafik
Android 4.3 bietet Plattformunterstützung für Khronos OpenGL ES 3.0, sodass Spiele und andere Apps auf unterstützten Geräten leistungsstarke 2D- und 3D-Grafikfunktionen nutzen können. Sie können OpenGL ES 3.0 und zugehörige EGL-Erweiterungen entweder über Framework-APIs oder native API-Bindungen über das Android Native Development Kit (NDK) nutzen.
Zu den wichtigsten neuen Funktionen von OpenGL ES 3.0 gehören die Beschleunigung erweiterter visueller Effekte, die hochwertige ETC2/EAC-Texturkomprimierung als Standardfunktion, eine neue Version der GLSL ES-Shading-Sprache mit Ganzzahl- und 32-Bit-Gleitkommaunterstützung, erweitertes Textur-Rendering sowie standardisierte Texturgrößen und ‑Renderbuffer-Formate.
Mit den OpenGL ES 3.0 APIs können Sie sehr komplexe, hocheffiziente Grafiken erstellen, die auf einer Reihe kompatibler Android-Geräte ausgeführt werden. Außerdem können Sie auf diesen Geräten ein einziges Standardformat für die Texturkomprimierung unterstützen.
OpenGL ES 3.0 ist eine optionale Funktion, die von der zugrunde liegenden Grafikhardware abhängt. Der Support ist bereits für Nexus 7 (2013), Nexus 4 und Nexus 10 verfügbar.
Verbesserte Bluetooth-Konnektivität
Verbindung mit Bluetooth Smart-Geräten und ‑Sensoren
Jetzt können Sie Apps entwerfen und entwickeln, die mit der neuesten Generation kleiner, energieeffizienter Geräte und Sensoren mit Bluetooth Smart-Technologie interagieren.
Android 4.3 bietet eine integrierte Plattformunterstützung für Bluetooth Smart Ready in der zentralen Rolle und eine Reihe von Standard-APIs, mit denen Apps Geräte in der Nähe erkennen, GATT-Dienste abfragen und Merkmale lesen/schreiben können.
Mit den neuen APIs können Ihre Apps effizient nach Geräten und Diensten suchen, die für Sie interessant sind. Sie können für jedes Gerät nach unterstützten GATT-Diensten anhand der UUID suchen und Verbindungen nach Geräte-ID und Signalstärke verwalten. Sie können eine Verbindung zu einem GATT-Server herstellen, der auf dem Gerät gehostet wird, und Eigenschaften lesen oder schreiben oder einen Listener registrieren, um Benachrichtigungen zu erhalten, wenn sich diese Eigenschaften ändern.
Sie können Unterstützung für jedes GATT-Profil implementieren. Sie können Standardmerkmale lesen oder schreiben oder bei Bedarf Unterstützung für benutzerdefinierte Merkmale hinzufügen. Ihre App kann als Client oder Server fungieren und Daten in beiden Modi übertragen und empfangen. Die APIs sind generisch, sodass Sie Interaktionen mit einer Vielzahl von Geräten wie Näherungs-Tags, Smartwatches, Fitness-Trackern, Gamecontrollern, Fernbedienungen und Gesundheitsgeräten unterstützen können.
Bluetooth Smart Ready wird bereits auf Nexus 7 (2013) und Nexus 4 unterstützt. In den kommenden Monaten wird die Funktion auf immer mehr Android-kompatiblen Geräten verfügbar sein.
AVRCP 1.3-Profil
Android 4.3 bietet integrierte Unterstützung für Bluetooth AVRCP 1.3, sodass Ihre Apps umfangreichere Interaktionen mit Remote-Streaming-Mediengeräten unterstützen können. Apps wie Mediaplayer können AVRCP 1.3 über die Remote-Control-Client-APIs nutzen, die in Android 4.0 eingeführt wurden. Apps können jetzt nicht nur Wiedergabesteuerungen auf den über Bluetooth verbundenen Remote-Geräten anzeigen, sondern auch Metadaten wie Titelname, Komponist und andere Arten von Medienmetadaten übertragen.
Die Plattformunterstützung für AVRCP 1.3 basiert auf dem Bluedroid-Bluetooth-Stack, der von Google und Broadcom in Android 4.2 eingeführt wurde. Nexus-Geräte und andere Android-kompatible Geräte mit A2DP/AVRCP-Unterstützung sind sofort einsatzbereit.
Unterstützung für eingeschränkte Profile
Android 4.3 erweitert die Funktion für mehrere Nutzer auf Tablets mit eingeschränkten Profilen. Das ist eine neue Möglichkeit, Nutzer und ihre Funktionen auf einem einzigen Gerät zu verwalten. Mit eingeschränkten Profilen können Tabletbesitzer schnell separate Umgebungen für jeden Nutzer einrichten und genauere Einschränkungen in den Apps verwalten, die in diesen Umgebungen verfügbar sind. Eingeschränkte Profile eignen sich unter anderem für Freunde und Familienmitglieder, Gastnutzer, Kioske und Point-of-Sale-Geräte.
Jedes eingeschränkte Profil bietet einen separaten und sicheren Bereich mit eigenem lokalem Speicher, eigenen Startbildschirmen, eigenen Widgets und eigenen Einstellungen. Im Gegensatz zu Nutzern werden Profile aus der Umgebung des Tabletbesitzers erstellt, basierend auf den installierten Apps und Systemkonten des Besitzers. Der Eigentümer steuert, welche installierten Apps im neuen Profil aktiviert sind. Der Zugriff auf die Konten des Eigentümers ist standardmäßig deaktiviert.
Apps, die für die Anmeldung, Einstellungen oder andere Zwecke auf die Konten des Inhabers zugreifen müssen, können die Funktion aktivieren, indem sie ein Manifestattribut deklarieren. Der Inhaber kann diese Apps dann in den Einstellungen für die Profilkonfiguration prüfen und verwalten.
Für Entwickler bieten eingeschränkte Profile eine neue Möglichkeit, Nutzern mehr Mehrwert und Kontrolle zu bieten. Sie können App-Einschränkungen implementieren – Inhalts- oder Funktionssteuerungen, die von Ihrer App unterstützt werden – und sie in den Profilkonfigurationseinstellungen für Tabletbesitzer bewerben.
Sie können App-Einschränkungen direkt in den Profilkonfigurationseinstellungen hinzufügen. Verwenden Sie dazu vordefinierte Boolesche, Auswahl- und Mehrfachauswahltypen. Wenn Sie mehr Flexibilität wünschen, können Sie über die Profilkonfigurationseinstellungen sogar eine eigene Benutzeroberfläche starten, um beliebige Einschränkungen anzubieten.
Wenn Ihre App in einem Profil ausgeführt wird, kann sie nach Einschränkungen suchen, die vom Inhaber konfiguriert wurden, und diese entsprechend erzwingen. Eine Medien-App kann beispielsweise eine Einschränkung bieten, mit der der Inhaber ein Altersfreigabeniveau für das Profil festlegen kann. Die App könnte zur Laufzeit die Altersfreigabe prüfen und dann Inhalte entsprechend der gewünschten Altersfreigabe verwalten.
Wenn Ihre App nicht für die Verwendung in eingeschränkten Profilen entwickelt wurde, können Sie die Funktion vollständig deaktivieren, sodass Ihre App in keinem eingeschränkten Profil aktiviert werden kann.
Optimierte Standort- und Sensorfunktionen
Die Google Play-Dienste bieten erweiterte Standort-APIs, die Sie in Ihren Apps verwenden können. Android 4.3 optimiert diese APIs auf unterstützten Geräten mit neuen Hardware- und Softwarefunktionen, die den Akkuverbrauch minimieren.
Hardware-Geofencing optimiert die Energieeffizienz, da die Standortberechnung nicht in der Software, sondern in der Gerätehardware erfolgt. Auf Geräten, die Hardware-Geofencing unterstützen, können die Geofence APIs von Google Play-Diensten diese Optimierung nutzen, um den Akku zu schonen, während sich das Gerät bewegt.
Der Nur-WLAN-Suchmodus ist eine neue Plattformoptimierung, mit der Nutzer die WLAN-Suche aktiviert lassen können, ohne eine Verbindung zu einem WLAN herzustellen. So wird die Standortgenauigkeit verbessert und gleichzeitig der Akku geschont. Apps, die für Standortdienste auf WLAN angewiesen sind, können Nutzer jetzt bitten, den Modus „Nur suchen“ in den erweiterten WLAN-Einstellungen zu aktivieren. Der Modus „Nur WLAN-Scan“ ist unabhängig von der Gerätehardware und ist Teil der Android 4.3-Plattform.
Mit neuen Sensortypen können Apps Sensormesswerte besser verwalten. Mit einem Rotationsvektor für Spiele können Spieleentwickler die Drehung des Geräts erkennen, ohne sich um magnetische Störungen kümmern zu müssen. Nicht kalibrierte Gyroskope und nicht kalibrierte Magnetometer senden Rohmesswerte sowie geschätzte Abweichungen an Apps.
Die neuen Hardwarefunktionen sind bereits auf Nexus 7 (2013) und Nexus 4 verfügbar. Gerätehersteller oder Chipsatzanbieter können sie in ihre Geräte einbinden.
Neue Medienfunktionen
Modulares DRM-Framework
Um die Anforderungen der nächsten Generation von Mediendiensten zu erfüllen, wird in Android 4.3 ein modulares DRM-Framework eingeführt, mit dem Entwickler von Medienanwendungen DRM einfacher in ihre eigenen Streamingprotokolle wie MPEG DASH (Dynamic Adaptive Streaming over HTTP, ISO/IEC 23009-1) einbinden können.
Durch eine Kombination aus neuen APIs und Verbesserungen an bestehenden APIs bietet das Media-DRM-Framework eine integrierte Reihe von Diensten zur Verwaltung von Lizenzierung und Bereitstellung, zum Zugriff auf Low-Level-Codecs und zum Entschlüsseln verschlüsselter Mediendaten. Mit der neuen MediaExtractor API kannst du die PSSH-Metadaten für DASH-Medien abrufen. Apps, die das Media-DRM-Framework verwenden, verwalten die Netzwerkkommunikation mit einem Lizenzserver und das Streaming verschlüsselter Daten aus einer Inhaltsbibliothek.
VP8-Encoder
Android 4.3 bietet eine integrierte Unterstützung für die VP8-Codierung, auf die über Framework- und native APIs zugegriffen werden kann. Für Apps, die native APIs verwenden, enthält die Plattform OpenMAX 1.1.2-Erweiterungsheader zur Unterstützung von VP8-Profilen und ‑Ebenen. Die VP8-Codierungsunterstützung umfasst Einstellungen für Zielbitrate, Ratensteuerung, Framerate, Tokenpartitionierung, Fehlertoleranz, Rekonstruktion und Schleifenfilter. Die Plattform-API unterstützt VP8-Encoder in einer Reihe von Formaten, sodass du das für deine Inhalte am besten geeignete Format nutzen kannst.
Die VP8-Codierung ist in der Software auf allen kompatiblen Geräten mit Android 4.3 verfügbar. Für eine optimale Leistung unterstützt die Plattform auch die hardwaregestützte VP8-Codierung auf geeigneten Geräten.
Videocodierung von einer Oberfläche
Ab Android 4.3 können Sie eine Oberfläche als Eingabe für einen Videoencoder verwenden. So können Sie beispielsweise einen Stream jetzt von einer OpenGL ES-Oberfläche an den Encoder weiterleiten, anstatt ihn zwischen Puffern kopieren zu müssen.
Media-Muxer
Apps können neue Media-Muxer-APIs verwenden, um elementare Audio- und Videostreams in einer einzigen Ausgabedatei zu kombinieren. Derzeit können Apps einen einzelnen MPEG-4-Audiostream und einen einzelnen MPEG-4-Videostream in eine einzelne MPEG-4-Ausgabedatei multiplexen. Die neuen APIs sind ein Pendant zu den Demultiplex-APIs für Medien, die in Android 4.2 eingeführt wurden.
Wiedergabefortschritt und Scrubbing in Remote-Steuerungsclients
Seit Android 4.0 können Mediaplayer und ähnliche Anwendungen die Wiedergabe über Fernbedienungsclients steuern, z. B. über den Sperrbildschirm des Geräts, Benachrichtigungen und per Bluetooth verbundene Remote-Geräte. Ab Android 4.3 können diese Anwendungen jetzt auch über ihre Remote-Steuerungsclients den Fortschritt und die Geschwindigkeit der Wiedergabe anzeigen und Befehle zum Springen zu einer bestimmten Wiedergabeposition empfangen.
Neue Möglichkeiten für ansprechende Apps
Zugriff auf Benachrichtigungen
Benachrichtigungen sind seit langem eine beliebte Android-Funktion, da Nutzer damit Informationen und Updates aus dem gesamten System an einem Ort sehen können. Mit Android 4.3 können Apps jetzt mit der Erlaubnis des Nutzers den Benachrichtigungsstream beobachten und die Benachrichtigungen beliebig anzeigen, z. B. an Geräte in der Nähe senden, die über Bluetooth verbunden sind.
Sie können über neue APIs auf Benachrichtigungen zugreifen, mit denen Sie einen Benachrichtigungs-Listener registrieren und mit Erlaubnis des Nutzers Benachrichtigungen erhalten können, sobald sie in der Statusleiste angezeigt werden. Benachrichtigungen werden Ihnen vollständig mit allen Details zur ursprünglichen App, zum Zeitpunkt der Veröffentlichung, zur Ansicht und zum Stil des Inhalts sowie zur Priorität angezeigt. Sie können relevante Felder in den Benachrichtigungen auswerten, Kontext aus Ihrer App verarbeiten oder hinzufügen und sie dann beliebig weiterleiten.
Die neue API sendet Ihnen Callbacks, wenn eine Benachrichtigung hinzugefügt, aktualisiert oder entfernt wird (entweder weil der Nutzer sie geschlossen oder die ursprüngliche App sie zurückgezogen hat). Sie können alle Intents starten, die mit der Benachrichtigung oder ihren Aktionen verknüpft sind, und sie vom System schließen. So kann Ihre App eine vollständige Benutzeroberfläche für Benachrichtigungen bereitstellen.
Nutzer behalten die Kontrolle darüber, welche Apps Benachrichtigungen erhalten können. Sie können jederzeit in den Einstellungen nachsehen, welche Apps Zugriff auf Benachrichtigungen haben, und den Zugriff nach Bedarf aktivieren oder deaktivieren. Der Benachrichtigungszugriff ist standardmäßig deaktiviert. Apps können einen neuen Intent verwenden, um den Nutzer nach der Installation direkt zu den Einstellungen zu leiten, um den Listener-Dienst zu aktivieren.
Overlays ansehen
Sie können jetzt transparente Overlays auf Ansichten und Ansichtsgruppen erstellen, um eine temporäre Ansichtshierarchie oder vorübergehende Animationseffekte zu rendern, ohne die zugrunde liegende Layouthierarchie zu stören. Overlays sind besonders nützlich, wenn Sie Animationen erstellen möchten, z. B. eine Ansicht außerhalb ihres Containers verschieben oder Elemente auf dem Bildschirm ziehen, ohne die Ansichtshierarchie zu beeinflussen.
Layoutmodus mit optischen Grenzen
Mit einem neuen Layoutmodus können Sie die Positionierung von Ansichten in Ansichtsgruppen anhand ihrer optischen Ränder statt anhand ihrer Clipränder verwalten. Die Clip-Rahmen stellen die tatsächliche Außengrenze eines Widgets dar, während die neuen optischen Rahmen beschreiben, wo sich das Widget innerhalb der Clip-Rahmen befindet. Mit dem Layoutmodus „Optische Grenzen“ können Sie Widgets, die äußere visuelle Effekte wie Schatten und Glühen verwenden, richtig ausrichten.
Benutzerdefinierte Arten von Rotationsanimationen
In Apps können jetzt die Animationen für das Schließen und Öffnen eines Fensters definiert werden, die verwendet werden, wenn das Gerät gedreht wird. Du kannst Fenstereigenschaften festlegen, um Jump-Cuts, Überblendungen oder die Standardfensterrotation zu aktivieren. Das System verwendet die benutzerdefinierten Animationstypen, wenn das Fenster im Vollbildmodus geöffnet ist und nicht von anderen Fenstern verdeckt wird.
Modi für die Bildschirmausrichtung
Apps können neue Ausrichtungsmodi für Aktivitäten festlegen, damit sie in der richtigen Ausrichtung angezeigt werden, wenn das Gerät gedreht wird. Außerdem können Apps einen neuen Modus verwenden, um das Display in der aktuellen Ausrichtung zu sperren. Das ist nützlich für Apps, die die Kamera verwenden und die Drehung beim Aufnehmen von Videos deaktivieren möchten.
Intent für die Verarbeitung von Kurzantworten
Android 4.3 führt einen neuen öffentlichen Intent ein, mit dem jede App Schnellantworten verarbeiten kann – Textnachrichten, die der Nutzer als Antwort auf einen eingehenden Anruf sendet, ohne den Anruf annehmen oder das Gerät entsperren zu müssen. Ihre App kann auf die Absicht warten und die Nachricht über Ihr Nachrichtensystem an den Anrufer senden. Die Absicht umfasst den Empfänger (Anrufer) sowie die Nachricht selbst.
Support für internationale Nutzer
Verbesserungen bei RTL
Android 4.3 bietet Leistungsverbesserungen für die RTL-Darstellung und eine erweiterte Unterstützung für RTL-UI-Widgets im Framework, einschließlich ProgressBar/Spinner und ExpandableListView. Mehr Informationen zur Fehlerbehebung sind im uiautomatorviewer
-Tool zu sehen. Außerdem sind jetzt mehr System-UI-Komponenten für RTL-Text geeignet, z. B. Benachrichtigungen, die Navigationsleiste und die Aktionsleiste.
Um die Nutzung von RTL-Scripts systemweit zu verbessern, unterstützen jetzt mehr Standard-System-Apps RTL-Layouts, darunter Launcher, Schnelleinstellungen, Telefon, Kontakte, Einrichtungsassistent, Uhr und Downloads.
Dienstprogramme für die Lokalisierung
Android 4.3 enthält außerdem neue Dienstprogramme und APIs zum Erstellen besserer RTL-Strings und zum Testen Ihrer lokalisierten Benutzeroberflächen. Die neue Klasse BidiFormatter bietet eine einfache API zum Umbrechen von Unicode-Strings, damit Daten in RTL-Schrift in LTR-lokalisierten Meldungen wie vorgesehen angezeigt werden und umgekehrt. Damit Sie dieses Dienstprogramm in Ihren Apps noch breiter einsetzen können, ist die BidiFormatter API jetzt auch für ältere Plattformversionen über das Supportpaket im Android SDK verfügbar.
Zur Verwaltung der Datumsformatierung für verschiedene Sprachen enthält Android 4.3 die neue Methode getBestDateTimePattern(), die automatisch die bestmögliche lokalisierte Form eines Unicode-UTS-Datums für eine von Ihnen angegebene Sprache generiert. So können Sie Ihren Nutzern eine lokalisiertere Umgebung bieten.
Damit Sie Ihre App einfacher in anderen Sprachen testen können, werden in Android 4.3 Pseudo-Sprachen als neue Entwickleroption eingeführt. Pseudo-Lokalsprachen simulieren die Sprache, das Schriftsystem und die Anzeigemerkmale, die mit einem Gebietsschema oder einer Sprachgruppe verknüpft sind. Derzeit können Sie mit einem Pseudo-Standort für Englisch mit Akzent testen, wie Ihre Benutzeroberfläche mit Schriftzeichen und Akzenten funktioniert, die in verschiedenen europäischen Sprachen verwendet werden.
Barrierefreiheit und Benutzeroberflächenautomatisierung
Ab Android 4.3 können Dienste zur Barrierefreiheit Schlüsselereignisse beobachten und filtern, z. B. um Tastenkürzel zu verarbeiten oder die Navigation mit der gestenbasierten Eingabe zu ermöglichen. Der Dienst empfängt die Ereignisse und kann sie bei Bedarf verarbeiten, bevor sie an das System oder andere installierte Apps übergeben werden.
Dienste zur Barrierefreiheit können neue Attributwerte für Funktionen angeben, um zu beschreiben, was ihre Dienste können und welche Plattformfunktionen sie verwenden. So können sie beispielsweise die Möglichkeit deklarieren, wichtige Ereignisse zu filtern, Fensterinhalte abzurufen, die Funktion „Explore by Touch“ zu aktivieren oder Web-Bedienungshilfen zu aktivieren. In einigen Fällen müssen Dienste ein Attribut für die Funktion deklarieren, bevor sie auf zugehörige Plattformfunktionen zugreifen können. Das System verwendet die Funktionsattribute des Dienstes, um ein Dialogfeld für die Nutzer zu generieren, in dem sie die Funktionen vor der Einführung sehen und zustimmen können.
Aufbauend auf dem Bedienungshilfen-Framework in Android 4.3 ermöglicht ein neues Framework zur Benutzeroberflächenautomatisierung Tests, mit der Benutzeroberfläche des Geräts zu interagieren, indem Nutzeraktionen simuliert und Bildschirminhalte untersucht werden. Über das UI-Automatisierungs-Framework können Sie unter anderem grundlegende Vorgänge ausführen, die Bildschirmdrehung festlegen, Eingabeereignisse generieren und Screenshots aufnehmen. Es ist eine leistungsstarke Möglichkeit, Tests in realistischen Nutzerszenarien zu automatisieren, einschließlich Aktionen oder Sequenzen, die mehrere Apps umfassen.
Unternehmen und Sicherheit
WLAN-Konfiguration für WPA2-Enterprise-Netzwerke
Apps können jetzt die WLAN-Anmeldedaten konfigurieren, die für Verbindungen zu WPA2-Enterprise-Zugangspunkten erforderlich sind. Entwickler können mithilfe neuer APIs Anmeldedaten für das erweiterbare Authentifizierungsprotokoll (Extensible Authentication Protocol, EAP) und für das gekapselte EAP (Phase 2) für Authentifizierungsmethoden konfigurieren, die im Unternehmen verwendet werden. Apps mit der Berechtigung zum Zugriff auf und zum Ändern von WLANs können Anmeldedaten für eine Vielzahl von EAP- und Phase-2-Authentifizierungsmethoden konfigurieren.
Android-Sandbox mit SELinux verstärkt
Android verwendet jetzt SELinux, ein MAC-System (Mandatory Access Control) im Linux-Kernel, um die UID-basierte Anwendungs-Sandbox zu ergänzen. So wird das Betriebssystem vor potenziellen Sicherheitslücken geschützt.
Verbesserungen bei KeyChain
Die KeyChain API bietet jetzt eine Methode, mit der Anwendungen prüfen können, ob systemweite Schlüssel an einen Hardware Root of Trust für das Gerät gebunden sind. So können Sie private Schlüssel erstellen oder speichern, die nicht vom Gerät exportiert werden können, auch wenn der Root- oder Kernel manipuliert wurde.
Android Keystore-Anbieter
Android 4.3 führt einen Schlüsselspeicheranbieter und APIs ein, mit denen Anwendungen Schlüssel zur ausschließlichen Verwendung erstellen können. Mit den APIs können Apps private Schlüssel erstellen oder speichern, die von anderen Apps nicht gesehen oder verwendet werden können. Sie können dem Schlüsselspeicher auch ohne Nutzerinteraktion hinzugefügt werden.
Der Schlüsselspeicheranbieter bietet dieselben Sicherheitsvorteile wie die KeyChain API für systemweite Anmeldedaten, z. B. die Bindung von Anmeldedaten an ein Gerät. Private Schlüssel im Schlüsselspeicher können nicht vom Gerät exportiert werden.
Setuid-Befehle von Android-Apps einschränken
Die /system
-Partition wird jetzt nosuid
für von Zygote erzeugte Prozesse bereitgestellt, wodurch verhindert wird, dass Android-Anwendungen setuid
-Programme ausführen. Dadurch wird die Angriffsfläche des Root-Benutzers verringert und die Wahrscheinlichkeit potenzieller Sicherheitslücken reduziert.
Neue Möglichkeiten zur Leistungsanalyse
Erweiterte Systrace-Protokollierung
Android 4.3 unterstützt eine erweiterte Version des Systrace-Tools, die einfacher zu verwenden ist und Ihnen Zugriff auf mehr Arten von Informationen zum Erstellen eines Leistungsprofils Ihrer App bietet. Sie können jetzt unter anderem Trace-Daten von Hardwaremodulen, Kernelfunktionen und der Dalvik-VM erfassen, einschließlich Garbage Collection und Ressourcenladevorgang.
Android 4.3 enthält außerdem neue Trace APIs, mit denen Sie in Ihren Apps bestimmte Codeabschnitte mithilfe von Systrace-Beginn-/Endereignissen markieren können. Wenn die markierten Codeabschnitte ausgeführt werden, schreibt das System die Start-/Endereignisse in das Trace-Log. Die Leistung Ihrer App wird nur geringfügig beeinträchtigt. Die erfassten Zeitangaben geben Ihnen also ein genaues Bild davon, was in Ihrer App passiert.
Sie können appspezifische Ereignisse in einer Zeitachse in der Systrace-Ausgabedatei visualisieren und die Ereignisse im Kontext anderer Kernel- und Userspace-Trace-Daten analysieren. Zusammen mit vorhandenen Systrace-Tags können benutzerdefinierte App-Bereiche Ihnen neue Möglichkeiten bieten, die Leistung und das Verhalten Ihrer Apps zu analysieren.
GPU-Profilierung auf dem Bildschirm
Android 4.3 bietet neue Entwickleroptionen, mit denen Sie die Leistung Ihrer App analysieren und Renderingprobleme auf jedem Gerät oder Emulator ermitteln können.
Mit der Option GPU-Rendering erfassen können Sie jetzt die effektive Framerate Ihrer App auf dem Bildschirm visualisieren, während die App ausgeführt wird. Sie können die Profilierungsdaten als Balken- oder Liniendiagramme auf dem Bildschirm anzeigen lassen. Die Farben geben Aufschluss über die Zeit, die für das Erstellen von Zeichenbefehlen (blau), das Ausführen der Befehle (orange) und das Warten auf die Ausführung der Befehle (gelb) benötigt wurde. Das System aktualisiert die Diagramme auf dem Bildschirm kontinuierlich und zeigt für jede sichtbare Aktivität ein Diagramm an, einschließlich der Navigationsleiste und der Benachrichtigungsleiste.
Eine grüne Linie hebt den Grenzwert von 16 ms für Renderingvorgänge hervor. So können Sie die effektive Framerate Ihrer App im Vergleich zu einem Ziel von 60 fps bewerten, da 1/60 Sekunde etwa 16 ms entspricht. Wenn Sie Vorgänge sehen, die die grüne Linie überschreiten, können Sie sie mit Systrace und anderen Tools weiter analysieren.
Auf Geräten mit Android 4.2 und höher sind die Entwickleroptionen standardmäßig ausgeblendet. Sie können sie jederzeit auf einem kompatiblen Android-Gerät anzeigen lassen, indem Sie siebenmal auf Einstellungen > Über das Telefon > Build-Nummer tippen.
StrictMode-Warnung für Datei-URIs
Die neueste Ergänzung des StrictMode-Tools ist eine Richtlinieneinschränkung, die warnt, wenn Ihre App dem System oder einer anderen App einen file://
-URI offenlegt. In einigen Fällen hat die empfangende App möglicherweise keinen Zugriff auf den file://
-URI-Pfad. Wenn Sie also Dateien zwischen Apps freigeben, sollte ein content://
-URI (mit der entsprechenden Berechtigung) verwendet werden. Diese neue Richtlinie soll Ihnen dabei helfen, solche Fälle zu erkennen und zu beheben. Wenn Sie nach einer praktischen Möglichkeit suchen, Dateien zu speichern und für andere Apps freizugeben, können Sie den FileProvider
-Inhaltsanbieter verwenden, der in der Supportbibliothek verfügbar ist.
Android 4.2
Willkommen bei Android 4.2, der neuesten Version von Jelly Bean.
Android 4.2 bietet Leistungsoptimierungen, eine überarbeitete System-UI und tolle neue Funktionen für Nutzer und Entwickler. In diesem Dokument erhalten Sie einen Überblick über die Neuigkeiten für Entwickler.
Im Dokument Android 4.2 APIs finden Sie ausführliche Informationen zu den neuen APIs für Entwickler.
Weitere Informationen zu den neuen Jelly Bean-Funktionen für Nutzer finden Sie unter www.android.com.
Schneller, flüssiger, reaktionsfähiger
Android 4.2 baut auf den Leistungsverbesserungen von Jelly Bean auf – Vsync-Timing, Dreifachpufferung, verringerte Touch-Latenz und CPU-Eingabe-Boost – und fügt neue Optimierungen hinzu, die Android noch schneller machen.
Durch Verbesserungen am hardwarebeschleunigten 2D-Renderer sind gängige Animationen wie Scrollen und Wischen flüssiger und schneller. Insbesondere ist das Zeichnen für Ebenen, Clipping und bestimmte Formen (abgerundete Rechtecke, Kreise und Ovale) optimiert.
Eine Vielzahl von WebView-Rendering-Optimierungen sorgen für ein flüssigeres Scrollen von Webseiten ohne Ruckler und Verzögerungen.
Renderscript Compute von Android ist die erste Computing-Plattform, die für die direkte Ausführung auf einer GPU eines Mobilgeräts portiert wurde. Dabei werden nach Möglichkeit automatisch GPU-Rechenressourcen genutzt, um die Leistung bei Grafik- und Bildverarbeitung drastisch zu verbessern. Alle Apps, die Renderscript auf einem unterstützten Gerät verwenden, können sofort von dieser GPU-Integration profitieren, ohne neu kompiliert werden zu müssen.
Optimierte, überarbeitete Benutzeroberfläche
Android 4.2 optimiert die Nutzerfreundlichkeit von Jelly Bean und bietet allen Tablets vertraute Android-UI-Muster wie Statusleiste, Systemleiste und Benachrichtigungsfenster.
Auf allen Bildschirmgrößen befindet sich jetzt oben die Statusleiste mit einem Drop-down-Menü für Benachrichtigungen und ein neues Menü für die Schnelleinstellungen. Die vertraute Systemleiste wird unten angezeigt. Die Schaltflächen sind von beiden Seiten leicht zugänglich. Das Anwendungsmenü ist ebenfalls auf allen Bildschirmgrößen verfügbar.
Ein Tablet, viele Nutzer
Jetzt können mehrere Nutzer ein Android-Tablet gemeinsam nutzen. Jeder Nutzer hat dabei bequem Zugriff auf einen eigenen Nutzerbereich. Nutzer können auf dem Sperrbildschirm mit nur einem Fingertipp zu ihren Gruppenbereichen wechseln.
Auf einem Gerät mit mehreren Nutzern bietet Android jedem Nutzer eine separate Umgebung, einschließlich eines nutzerspezifischen emulierten SD-Kartenspeichers. Außerdem haben Nutzer eigene Startbildschirme, Widgets, Konten, Einstellungen, Dateien und Apps, die vom System getrennt voneinander gehalten werden. Alle Nutzer nutzen dieselben grundlegenden Systemdienste, aber das System sorgt dafür, dass die Anwendungen und Daten jedes Nutzers voneinander getrennt bleiben. Im Grunde hat jeder der mehreren Nutzer ein eigenes Android-Gerät.
Nutzer können Apps jederzeit in ihren eigenen Umgebungen installieren und deinstallieren. Um Speicherplatz zu sparen, lädt Google Play ein APK nur herunter, wenn es noch nicht von einem anderen Nutzer auf dem Gerät installiert wurde. Wenn die App bereits installiert ist, zeichnet Google Play die Installation des neuen Nutzers auf die übliche Weise auf, lädt aber keine weitere Kopie der App herunter. Mehrere Nutzer können dieselbe Kopie eines APK ausführen, da das System für jeden Nutzer eine neue Instanz mit einem nutzerspezifischen Datenverzeichnis erstellt.
Für Entwickler ist der Support für die Mehrfachnutzung transparent: Ihre Apps müssen nichts Besonderes tun, um in einer Umgebung mit mehreren Nutzern normal ausgeführt zu werden. Sie müssen auch keine Änderungen an Ihren vorhandenen oder veröffentlichten APKs vornehmen. Das System verwaltet Ihre App in jedem Userspace genauso wie in einer Umgebung mit nur einem Nutzer.
Neue Möglichkeiten, Nutzer zu erreichen
Sperrbildschirm-Widgets
Unter Android 4.2 können Nutzer App-Widgets direkt auf ihren Sperrbildschirmen platzieren, um sofort auf ihre bevorzugten App-Inhalte zuzugreifen, ohne das Gerät entsperren zu müssen. Nutzer können bis zu fünf Sperrbildschirm-Widgets hinzufügen und dabei aus den Widgets der installierten Apps auswählen. Auf dem Sperrbildschirm wird jedes Widget in einem eigenen Bereich angezeigt. Nutzer können von links nach rechts wischen, um verschiedene Bereiche und ihre Widgets aufzurufen.
Wie alle App-Widgets können Sperrbildschirm-Widgets jegliche Art von Inhalten anzeigen und direkte Nutzerinteraktionen zulassen. Sie können vollständig in sich geschlossen sein, z. B. ein Widget mit Steuerelementen zum Abspielen von Musik, oder Nutzer können direkt zu einer Aktivität in Ihrer App springen, nachdem sie die erforderlichen Funktionen entsperrt haben.
Für Entwickler sind Sperrbildschirm-Widgets eine hervorragende neue Möglichkeit, Nutzer zu erreichen. So können Sie Ihre Inhalte an einer Stelle präsentieren, die Nutzer häufig sehen, und haben mehr Möglichkeiten, Nutzer direkt zu Ihrer App zu leiten.
Sie können diese neue Funktion nutzen, indem Sie ein neues App-Widget erstellen oder ein vorhandenes Startbildschirm-Widget erweitern. Wenn Ihre App bereits Startbildschirm-Widgets enthält, können Sie sie mit nur wenigen Änderungen auf den Sperrbildschirm ausweiten. Um Nutzern eine optimale Nutzung zu ermöglichen, können Sie das Widget so aktualisieren, dass es bei größeren Displays den gesamten Sperrbildschirmbereich nutzt und bei kleineren Displays bei Bedarf die Größe angepasst wird. Sie können Ihren Widgets auch Funktionen hinzufügen, die auf dem Sperrbildschirm besonders nützlich oder praktisch sind.
Daydream
Daydream ist ein interaktiver Bildschirmschonermodus, der gestartet wird, wenn das Gerät eines Nutzers angedockt oder geladen wird. In diesem Modus startet das System einen Bildschirmschoner, der von einer installierten App bereitgestellt wird. Nutzer können Daydream in den Einstellungen aktivieren und dann auswählen, was angezeigt werden soll.
Daydreams kombinieren die besten Funktionen von Live-Hintergründen und Startbildschirm-Widgets, sind aber leistungsfähiger. So können Sie jede Art von Inhalten in einem völlig neuen Kontext anbieten, mit Nutzerinteraktionen wie dem Durchblättern von Fotos, dem Abspielen von Audio- oder Videoinhalten oder dem direkten Aufrufen Ihrer App mit nur einem Fingertipp.
Da Bildschirmschoner automatisch gestartet werden können, wenn ein Gerät geladen oder angedockt ist, sind sie auch eine gute Möglichkeit, neue Arten von Nutzerinteraktionen zu unterstützen, z. B. den Leanback- oder Ausstellungsmodus, den Demo- oder Kioskmodus und den „Attract-Modus“ – und das ganz ohne spezielle Hardware.
Daydreams ähneln Aktivitäten und können alles tun, was auch Aktivitäten können – vom Rendern einer UI-Hierarchie (ohne RemoteViews) bis hin zum direkten Zeichnen mit Canvas, OpenGL, SurfaceTexture und mehr. Sie können Video und Audio abspielen und sogar direkte Nutzerinteraktionen akzeptieren. Da es sich bei Bildschirmschonern jedoch nicht um Aktivitäten handelt, wirken sie sich nicht auf den Backstack aus, werden nicht in den letzten Aktivitäten angezeigt und können nicht direkt über Ihre App gestartet werden.
Die Implementierung eines Bildschirmschoners ist ganz einfach. Sie können UI-Komponenten und Ressourcen verwenden, die Sie bereits für andere Teile Ihrer App erstellt haben. Sie können mehrere Bildschirmschoner in Ihrer App anbieten und für jeden unterschiedliche Inhalte und Anzeigeeinstellungen festlegen.
Unterstützung externer Displays
Android 4.2 bietet Plattformunterstützung für externe Displays, die weit über das Spiegeln hinausgeht. Apps können jetzt individuelle Inhalte auf ein oder mehrere Displays ausrichten, die an ein Android-Gerät angeschlossen sind. Apps können darauf aufbauen, um Nutzern neue Arten von Interaktion und Unterhaltung zu bieten.
Display manager
Apps interagieren über einen neuen Displaymanager-Systemdienst mit Displays. Ihre App kann die Displays auflisten und die Funktionen der einzelnen Displays prüfen, einschließlich Größe, Dichte, Anzeigename, ID und Unterstützung für sicheres Video. Ihre App kann auch Rückrufe erhalten, wenn Displays hinzugefügt oder entfernt werden oder sich ihre Funktionen ändern, um Ihre Inhalte auf externen Displays besser zu verwalten.
Präsentationsfenster
Damit Inhalte auf einem externen Display einfach angezeigt werden können, bietet das Framework ein neues UI-Objekt namens Präsentation. Dabei handelt es sich um eine Art Dialogfeld, das ein Fenster für die Inhalte Ihrer App auf einem bestimmten externen Display darstellt. Ihre App gibt nur das zu verwendende Display, ein Thema für das Fenster und alle individuellen Inhalte an, die angezeigt werden sollen. Die Präsentation kümmert sich um das Aufblasen von Ressourcen und das Rendern Ihrer Inhalte entsprechend den Eigenschaften des Zieldisplays.
Mit einer Präsentation hat Ihre App die volle Kontrolle über das Remote-Displayfenster und seine Inhalte. Sie können es anhand von Nutzereingabeereignissen wie Tastendrücken, Touch-Gesten und Bewegungsereignissen verwalten. Sie können alle gängigen Tools verwenden, um eine Benutzeroberfläche zu erstellen und Inhalte in der Präsentation zu rendern. Dazu gehören das Erstellen einer beliebigen Ansichtshierarchie und die Verwendung von SurfaceView oder SurfaceTexture, um direkt in das Fenster für gestreamte Inhalte oder Kameravorschauen zu zeichnen.
Bevorzugte Anzeigeauswahl
Wenn mehrere externe Displays verfügbar sind, können Sie so viele Präsentationen erstellen, wie Sie benötigen. Auf jedem Display werden dann jeweils andere Inhalte angezeigt. In vielen Fällen möchten Sie Ihre Inhalte möglicherweise nur auf einem einzigen externen Display anzeigen lassen, aber immer auf dem, das sich am besten für Präsentationsinhalte eignet. Dazu kann das System Ihrer App helfen, das beste Display auszuwählen.
Um das beste Display zu finden, kann Ihre App den Displaymanager nach dem bevorzugten Präsentationsbildschirm des Systems fragen und Callbacks erhalten, wenn sich dieser Bildschirm ändert. Alternativ können Sie den Media-Router-Dienst verwenden, der in Android 4.2 erweitert wurde, um Benachrichtigungen zu erhalten, wenn sich eine Systemvideoroute ändert. Ihre App kann Inhalte standardmäßig in der Hauptaktivität anzeigen, bis ein bevorzugtes Präsentationsdisplay angeschlossen wird. In diesem Fall kann automatisch zu Präsentationsinhalten auf dem bevorzugten Display gewechselt werden. Ihre Apps können auch den MediaRouteActionProvider und die MediaRouteButton des Mediarouters verwenden, um eine standardmäßige Benutzeroberfläche für die Displayauswahl anzubieten.
Geschützte Inhalte
Bei Apps, die geschützte oder verschlüsselte Inhalte verarbeiten, meldet die Display API jetzt die sicheren Videofunktionen der angeschlossenen Displays. Ihre App fragt ein Display ab, um herauszufinden, ob es eine sichere Videoausgabe oder geschützte Grafik-Buffer bietet, und wählt dann den entsprechenden Inhaltsstream oder die entsprechende Dekodierung aus, um die Inhalte sichtbar zu machen. Für zusätzliche Sicherheit bei SurfaceView-Objekten kann Ihre App ein sicheres Flag setzen, um anzugeben, dass der Inhalt niemals in Screenshots oder auf einer nicht sicheren Displayausgabe erscheinen soll, auch nicht bei der Spiegelung.
Kabellose Übertragung (WiDi)
Ab Android 4.2 können Nutzer auf unterstützten Geräten über Wi‑Fi Display (eine Peer-to-Peer-Lösung für drahtlose Displays, die dem Zertifizierungsprogramm Miracast™ entspricht) eine Verbindung zu einem externen Display herstellen. Wenn ein drahtloses Display verbunden ist, können Nutzer beliebige Inhalte auf dem großen Bildschirm streamen, z. B. Fotos, Spiele und Karten.
Apps können drahtlose Displays genauso wie andere externe Displays nutzen, ohne dass zusätzliche Arbeit erforderlich ist. Das System verwaltet die Netzwerkverbindung und streamt Ihre Präsentation oder andere App-Inhalte bei Bedarf auf das drahtlose Display.
Native Unterstützung für die Linksschreibrichtung
Android 4.2 bietet volle native Unterstützung für RTL-Layouts (von rechts nach links), einschließlich Layoutspiegelung. Mit der nativen Unterstützung für die Ausrichtung von Text von rechts nach links können Sie allen Nutzern die gleiche hervorragende App-Nutzung bieten, unabhängig davon, ob ihre Sprache ein Schriftbild verwendet, das von rechts nach links gelesen wird oder von links nach rechts.
Wenn der Nutzer die Systemsprache zu einem Schriftsystem von rechts nach links wechselt, bietet das System jetzt neben der Bidirektionalen Spiegelung von Textelementen für Lesen und Zeicheneingabe auch eine automatische Spiegelung der App-UI-Layouts und aller Ansichts-Widgets.
Sie können in Ihrer App mit minimalem Aufwand das Layoutspiegeln für rechtsläufige Sprachen nutzen. Wenn Sie die App spiegeln möchten, deklarieren Sie einfach ein neues Attribut in Ihrem App-Manifest und ändern alle Layouteigenschaften „links/rechts“ in die neuen Äquivalente „start/end“. Das System übernimmt dann die Spiegelung und Darstellung Ihrer Benutzeroberfläche.
Für eine präzise Steuerung der App-Benutzeroberfläche enthält Android 4.2 neue APIs, mit denen Sie die Layoutrichtung, die Textrichtung, die Textausrichtung, die Schwerkraft und die Richtung der Sprache in Ansichtskomponenten verwalten können. Sie können sogar benutzerdefinierte Versionen von Layout, Drawables und anderen Ressourcen für die Anzeige erstellen, wenn ein Schriftsystem von rechts nach links verwendet wird.
Im HierarchyViewer-Tool können Sie jetzt die Start-/Endeigenschaften, die Layoutrichtung, die Textrichtung und die Textausrichtung für alle Ansichten in der Hierarchie sehen, um benutzerdefinierte Layouts von rechts nach links zu debuggen und zu optimieren.
Verbesserungen für internationale Sprachen
Android 4.2 enthält eine Vielzahl von Schrift- und Zeichenoptimierungen für internationale Nutzer:
- Für koreanische Nutzer ist eine neue Schriftart verfügbar: Nanum (나눔글꼴) Gothic, eine Unicode-Schriftart, die speziell für die koreanische Schrift entwickelt wurde.
- Verbesserte Unterstützung für vertikalen japanischen Text in WebViews.
- Verbesserte Schriftabstände und -positionierung für die Standardschriftarten für indische, thailändische, arabische und hebräische Sprachen.
Die Standard-Android-Tastatur enthält außerdem eine aktualisierte Reihe von Wörterbüchern:
- Verbesserte Wörterbücher für Französisch (mit Bigramunterstützung), Englisch und Russisch
- Neue Wörterbücher für Dänisch, Griechisch, Finnisch, Litauisch, Lettisch, Polnisch, Slowenisch, Serbisch, Schwedisch und Türkisch
Neue Möglichkeiten zur Erstellung ansprechender Benutzeroberflächen
Verschachtelte Fragmente
Mit Android 4.2 können Sie Fragmente in Fragmente verschachteln, um mehr Kontrolle über Ihre UI-Komponenten zu haben und sie modularer zu gestalten. Mit dem neuen Fragment-Manager können Sie für jedes Fragment andere Fragmente als untergeordnete Knoten in die Ansichtshierarchie einfügen.
Verschachtelte Fragmente können auf vielfältige Weise verwendet werden, sie eignen sich aber besonders gut für die Implementierung dynamischer und wiederverwendbarer UI-Komponenten in einer UI-Komponente, die selbst dynamisch und wiederverwendbar ist. Wenn Sie beispielsweise ViewPager verwenden, um Fragmente zu erstellen, die durch Wischen nach links und rechts angezeigt werden, können Sie jetzt Fragmente in jedes Fragment des ViewPagers einfügen.
Damit Sie verschachtelte Fragmente in Ihrer App noch besser nutzen können, wurde diese Funktion in die neueste Version der Android-Supportbibliothek aufgenommen.
Bedienungshilfen
Das System hilft jetzt Bedienungshilfen, im Modus für die Touch-Exploration zwischen Touch-Gesten und Bedienungshilfen-Gesten zu unterscheiden. Wenn ein Nutzer den Bildschirm berührt, benachrichtigt das System den Dienst, dass eine generische Touch-Interaktion gestartet wurde. Anschließend wird die Geschwindigkeit der Touch-Interaktion erfasst und ermittelt, ob es sich um eine Touch-Exploration (langsam) oder eine Bedienungshilfen-Geste (schnell) handelt. Der Dienst wird benachrichtigt. Wenn die Touch-Interaktion endet, benachrichtigt das System den Dienst.
Das System bietet eine neue globale Bedienungshilfenoption, mit der ein Bedienungshilfendienst das Menü „Schnelleinstellungen“ aufgrund einer Aktion des Nutzers öffnen kann. Außerdem wurde in Android 4.2 ein neuer Feedbacktyp für die Barrierefreiheit für Braillezeilen hinzugefügt.
Damit Dienste zur Barrierefreiheit die Bedeutung von Ansichten für Zwecke der Barrierefreiheit besser nachvollziehen können, bietet das Framework neue APIs, mit denen eine Ansicht als Label für eine andere Ansicht verknüpft werden kann. Das Label für jede Ansicht ist für Dienste zur Barrierefreiheit über AccessibilityNodeInfo verfügbar.
Verbesserte Kamera mit HDR
Android 4.2 führt eine neue Kamerahardware-Oberfläche und ‑Pipeline für eine bessere Leistung ein. Auf unterstützten Geräten können Apps einen neuen HDR-Kamera-Szenenmodus verwenden, um ein Bild mithilfe von High Dynamic Range-Bildgebungstechniken aufzunehmen.
Außerdem bietet das Framework jetzt eine API, mit der Apps prüfen können, ob der Kameraverschlusston deaktiviert werden kann. In Apps kann der Nutzer den Ton dann deaktivieren oder anstelle des Standard-Auslösertons einen alternativen Ton auswählen. Letzteres wird empfohlen.
RenderScript-Berechnung
In Android 4.2 werden mit Renderscript Compute neue Scripting-Funktionen, neue Optimierungen und eine direkte GPU-Integration eingeführt, um die höchste Leistung bei Berechnungsvorgängen zu erzielen.
Filterscript
Filterscript ist eine Teilmenge von Renderscript, die sich auf die optimierte Bildverarbeitung auf einer Vielzahl von Geräte-Chipsätzen konzentriert. Entwickler können ihre Bildverarbeitungsoperationen in Filterscript mit der standardmäßigen Renderscript Runtime API schreiben, jedoch unter strengeren Einschränkungen, die eine größere Kompatibilität und eine bessere Optimierung für CPUs, GPUs und DSPs ermöglichen.
Filterscript eignet sich ideal für die hardwaregestützte Beschleunigung einfacher Bildverarbeitungs- und Berechnungsvorgänge, z. B. solche, die für OpenGL ES-Fragment-Shader geschrieben werden. Da die Hardwareanforderungen weniger streng sind, werden Ihre Vorgänge auf mehr Arten von Geräte-Chipsätzen optimiert und beschleunigt. Filterscript kann in jeder App verwendet werden, die auf API-Level 17 oder höher ausgerichtet ist.
Script-Intrinsikfunktionen
In Android 4.2 wird in Renderscript die Unterstützung für eine Reihe von Script-Intrinsics hinzugefügt – vorimplementierte gefilterte Primitive, die beschleunigt werden, um die Menge an Code zu reduzieren, die Sie schreiben müssen, und um für Ihre App die bestmögliche Leistungssteigerung zu erzielen.
Intrinsische Funktionen sind für Überblendungen, Weichzeichnen, Farbmatrix, 3 × 3- und 5 × 5-Konvolution, Kanallookup-Tabelle und Konvertierung eines Android-YUV-Buffers in RGB verfügbar.
Script-Gruppen
Sie können jetzt Gruppen von RenderScript-Scripts erstellen und alle mit einem einzigen Aufruf ausführen, als wären sie Teil eines einzelnen Scripts. So kann Renderscript die Ausführung der Scripts optimieren, was nicht möglich wäre, wenn die Scripts einzeln ausgeführt würden.
RenderScript-Benchmarks für die Bildverarbeitung werden auf verschiedenen Android-Plattformversionen (Android 4.0, 4.1 und 4.2) nur auf einem Galaxy Nexus-Gerät in der CPU ausgeführt.
RenderScript-Benchmarks für die Bildverarbeitung, bei denen Operationen mit GPU + CPU mit denen verglichen werden, die nur auf der CPU ausgeführt werden, auf demselben Nexus 10-Gerät.
Wenn Sie einen gerichteten azyklischen Graphen von Renderscript-Vorgängen ausführen möchten, können Sie mit einer Builder-Klasse eine Scriptgruppe erstellen, in der die Vorgänge definiert werden. Bei der Ausführung optimiert Renderscript die Ausführungsreihenfolge und die Verbindungen zwischen diesen Vorgängen für eine optimale Leistung.
Laufende Optimierungsverbesserungen
Wenn Sie Renderscript für Berechnungsoperationen verwenden, profitieren Ihre Apps von fortlaufenden Leistungs- und Optimierungsverbesserungen in der Renderscript-Engine selbst, ohne Auswirkungen auf Ihren App-Code oder die Notwendigkeit einer Neukompilierung.
Durch die Optimierung werden Ihre Vorgänge schneller und auf mehr Chipsätzen ausgeführt, ohne dass Sie etwas tun müssen. Das Diagramm rechts zeigt die Leistungssteigerung, die durch die kontinuierlichen Verbesserungen der Renderscript-Optimierung in den verschiedenen Versionen der Android-Plattform erzielt wurde.
GPU-Computing
Renderscript Compute ist die erste Computing-Plattform, die direkt auf der GPU eines Mobilgeräts ausgeführt wird. Es werden jetzt automatisch GPU-Rechenressourcen genutzt, um die Leistung zu verbessern. Durch die GPU-Integration können selbst die komplexesten Berechnungen für die Grafik- oder Bildverarbeitung mit einer deutlich verbesserten Leistung ausgeführt werden.
Alle Apps, die Renderscript auf einem unterstützten Gerät verwenden, können sofort von dieser GPU-Integration profitieren, ohne neu kompiliert werden zu müssen. Das Nexus 10-Tablet ist das erste Gerät, das diese Integration unterstützt.
Neue integrierte Entwickleroptionen
Das Android 4.2-System bietet eine Vielzahl neuer Entwickleroptionen, mit denen sich ansprechende Apps mit hoher Leistung leichter erstellen lassen. Die neuen Optionen bieten Funktionen zum Debuggen und Profilieren Ihrer App auf jedem Gerät oder Emulator.
Auf Geräten mit Android 4.2 sind die Entwickleroptionen standardmäßig ausgeblendet, um die Nutzerfreundlichkeit zu verbessern. Sie können die Entwickleroptionen jederzeit aufrufen, indem Sie auf einem kompatiblen Android-Gerät siebenmal auf Einstellungen > Über das Telefon > Build-Nummer tippen.
Zu den neuen Entwickleroptionen in Android 4.2 gehören:
- Fehlerbericht erstellen: Es wird sofort ein Screenshot erstellt und Informationen zum Gerätestatus werden in den lokalen Dateispeicher kopiert und dann an eine neue ausgehende E-Mail-Nachricht angehängt.
- Fehlerberichte im Ein/Aus-Menü: Dem Ein/Aus-Menü und den Schnelleinstellungen des Geräts wird eine neue Option zum Erstellen eines Fehlerberichts hinzugefügt (siehe oben).
- Über USB installierte Apps prüfen: Sie können die App-Überprüfung für das Sideloading von Apps über USB deaktivieren, Apps aus anderen Quellen wie dem Browser aber weiterhin prüfen. So lässt sich der Entwicklungsvorgang beschleunigen und die Sicherheitsfunktion bleibt aktiviert.
- Aktualisierungen von Hardwareschichten hervorheben: Hardwareschichten blinken beim Aktualisieren grün.
- GPU-Überzeichnung anzeigen: Bereiche mit GPU-Überzeichnung werden hervorgehoben.
- 4x MSAA erzwingen: Aktiviert 4x MSAA in Open GL ES 2.0-Apps.
- Sekundäre Displays simulieren: Es werden ein oder mehrere unsichere Overlay-Fenster auf dem aktuellen Bildschirm erstellt, die als simuliertes Remote-Display verwendet werden. Sie können die Größe und Dichte des simulierten Displays steuern.
- OpenGL-Traces aktivieren: Sie können die OpenGL-Ausführung mit Logcat, Systrace oder der Aufrufliste für glGetError erfassen.
Neue Plattformtechnologien
Android 4.2 enthält eine Vielzahl neuer und erweiterter Plattformtechnologien, die innovative Kommunikationsanwendungen auf einer breiten Palette von Hardwaregeräten unterstützen. In den meisten Fällen wirken sich die neuen Plattformtechnologien und -verbesserungen nicht direkt auf Ihre Apps aus. Sie können also ohne Änderungen davon profitieren.
Erhöhte Sicherheit
Jede Android-Version enthält Dutzende von Sicherheitsverbesserungen zum Schutz der Nutzer. Hier sind einige der Verbesserungen in Android 4.2:
- App-Überprüfung: Nutzer können die Option „Apps überprüfen“ aktivieren und Apps vor der Installation von einem App-Überprüfer prüfen lassen. Die App-Überprüfung kann den Nutzer warnen, wenn er versucht, eine schädliche App zu installieren. Wenn eine App besonders schädlich ist, kann die Installation blockiert werden.
- Mehr Kontrolle über Premium-SMS: Android zeigt eine Benachrichtigung an, wenn eine App versucht, eine SMS an einen Kurzcode zu senden, für den Premiumdienste verwendet werden, die zusätzliche Kosten verursachen können. Der Nutzer kann festlegen, ob die Anwendung die Nachricht senden darf oder nicht.
- Durchgehend aktives VPN: Das VPN kann so konfiguriert werden, dass Anwendungen erst dann Zugriff auf das Netzwerk erhalten, wenn eine VPN-Verbindung hergestellt wurde. So wird verhindert, dass Anwendungen Daten über andere Netzwerke senden.
- Zertifikats-Pinning: Die SSL-Implementierung von libcore unterstützt jetzt das Zertifikats-Pinning. Für angepinnte Domains wird eine Zertifikatsüberprüfung fehlschlagen, wenn das Zertifikat nicht mit einer Reihe erwarteter Zertifikate verknüpft ist. So wird ein möglicher Manipulationsversuch von Zertifizierungsstellen verhindert.
- Verbesserte Darstellung von Android-Berechtigungen: Berechtigungen wurden in Gruppen organisiert, die für Nutzer leichter verständlich sind. Während der Überprüfung der Berechtigungen kann der Nutzer auf die Berechtigung klicken, um detailliertere Informationen dazu zu sehen.
- installd-Härtung: Der installd-Daemon wird nicht als Root-Nutzer ausgeführt, wodurch die potenzielle Angriffsfläche für die Eskalierung von Root-Berechtigungen reduziert wird.
- Härtung von Init-Scripts: Bei Init-Scripts wird jetzt die O_NOFOLLOW-Semantik angewendet, um Symlink-bezogene Angriffe zu verhindern.
- FORTIFY_SOURCE: Android unterstützt jetzt FORTIFY_SOURCE. Dies wird von Systembibliotheken und Anwendungen verwendet, um Speicherbeschädigungen zu verhindern.
- Standardkonfiguration für ContentProvider: Bei Anwendungen, die auf API-Level 17 ausgerichtet sind, ist „export“ für jeden ContentProvider standardmäßig auf „false“ gesetzt. Dadurch wird die Standardangriffsfläche für Anwendungen reduziert.
- Kryptografie: Die Standardimplementierungen von SecureRandom und Cipher.RSA wurden so geändert, dass OpenSSL verwendet wird. SSLSocket-Unterstützung für TLSv1.1 und TLSv1.2 mit OpenSSL 1.0.1 hinzugefügt
- Sicherheitsfixes: Zu den aktualisierten Open-Source-Bibliotheken mit Sicherheitsfixes gehören WebKit, libpng, OpenSSL und LibXML. Android 4.2 enthält außerdem Fehlerkorrekturen für Android-spezifische Sicherheitslücken. Informationen zu diesen Sicherheitslücken wurden den Mitgliedern der Open Handset Alliance zur Verfügung gestellt. Korrekturen sind im Android Open Source Project verfügbar. Zur Verbesserung der Sicherheit sind diese Korrekturen möglicherweise auch auf einigen Geräten mit älteren Android-Versionen verfügbar.
Neuer Bluetooth-Stack
Android 4.2 führt einen neuen Bluetooth-Stack ein, der für die Verwendung mit Android-Geräten optimiert ist. Der neue Bluetooth-Stack, der in Zusammenarbeit zwischen Google und Broadcom entwickelt wurde, ersetzt den auf BlueZ basierenden Stack und bietet eine verbesserte Kompatibilität und Zuverlässigkeit.Audio mit niedriger Latenz
Android 4.2 verbessert die Unterstützung für die Audiowiedergabe mit geringer Latenz. Dabei werden die Verbesserungen der Audioausgabelatenz mit OpenSL ES, Soundpool und Tone Generator APIs aus Android 4.1 fortgesetzt. Diese Verbesserungen hängen von der Hardwareunterstützung ab. Geräte, die diese Audiofunktionen mit niedriger Latenz bieten, können Apps ihre Unterstützung über eine Hardware-Funktionskonstante anzeigen. Es gibt neue AudioManager APIs, mit denen die native Audio-Abtastrate und ‑Puffergröße abgefragt werden kann. Sie sind für Geräte gedacht, auf denen diese Funktion unterstützt wird.
Neue Kamera-Hardwareschnittstelle
In Android 4.2 wird eine neue Implementierung des Kamerastacks eingeführt. Das Kamera-Subsystem umfasst die Implementierungen für Komponenten in der Kamerapipeline, z. B. die Aufnahme im Serienmodus mit Verarbeitungssteuerungen.Neue NFC-Hardwareschnittstelle und Controller-Schnittstelle
Android 4.2 unterstützt Controller, die auf dem NCI-Standard des NFC-Forums basieren. NCI bietet ein Standardkommunikationsprotokoll zwischen einem NFC-Controller (NFCC) und einem Gerätehost. Der neue NFC-Stack, der in Zusammenarbeit zwischen Google und Broadcom entwickelt wurde, unterstützt NCI.Dalvik-Laufzeitoptimierungen
Die Dalvik-Laufzeit enthält Verbesserungen für Leistung und Sicherheit bei einer größeren Bandbreite von Architekturen:
- x86-JIT-Unterstützung von Intel und MIPS-JIT-Unterstützung von MIPS
- Optimierte Parameter für die automatische Speicherbereinigung für Geräte mit mehr als 512 MB
- Die Standardimplementierungen von SecureRandom und Cipher.RSA verwenden jetzt OpenSSL
- SSLSocket-Unterstützung für TLSv1.1 und TLSv1.2 über OpenSSL 1.0.1
- Neue Unterstützung für die StrictMath-Methoden „abs“, „min“, „max“ und „sqrt“
- BouncyCastle auf Version 1.47 aktualisiert
- zlib auf Version 1.27 aktualisiert
- dlmalloc auf Version 2.8.6 aktualisiert
Android 4.1
Willkommen bei Android 4.1, der ersten Version von Jelly Bean.
Android 4.1 ist die bisher schnellste und flüssigste Android-Version. Wir haben die Plattform verbessert und neue Funktionen für Nutzer und Entwickler hinzugefügt. In diesem Dokument erhalten Sie einen Überblick über die Neuigkeiten für Entwickler.
Im Dokument Android 4.1 APIs finden Sie ausführliche Informationen zu den neuen APIs für Entwickler.
Weitere Informationen zu den Jelly Bean-Funktionen für Nutzer finden Sie unter www.android.com.
Schneller, flüssiger, reaktionsfähiger
Android 4.1 ist optimiert, um die beste Leistung und die niedrigste Touch-Latenz von Android in einer nutzerfreundlichen, intuitiven Benutzeroberfläche zu bieten.
Um eine gleichbleibende Framerate zu gewährleisten, wird in Android 4.1 das Vsync-Timing auf alle Zeichnungen und Animationen des Android-Frameworks angewendet. Alles läuft synchron mit einem 16-Millisekunden-Vsync-Takt – Anwendungsrendering, Touch-Ereignisse, Bildschirmkomposition und Displayaktualisierung –, damit Frames nicht vor- oder nachlaufen.
Android 4.1 bietet außerdem Dreifachpufferung in der Grafikpipeline, was für ein konsistenteres Rendering sorgt und das Scrollen, die Seitenauswahl und Animationen flüssiger macht.
Android 4.1 reduziert die Touch-Latenz nicht nur durch Synchronisierung der Touch-Eingabe mit dem VSync-Timing, sondern auch durch Vorhersagen, wo sich Ihr Finger zum Zeitpunkt der Bildschirmaktualisierung befinden wird. Das führt zu einer schnelleren und einheitlicheren Reaktion auf Berührungen. Außerdem wendet Android nach einer Inaktivitätsphase beim nächsten Touch-Ereignis einen CPU-Eingabe-Boost an, um Verzögerungen zu vermeiden.
Mit Tools können Sie die Leistung Ihrer Apps optimieren. Android 4.1 ist für die Verwendung mit dem neuen Tool systrace konzipiert, das Daten direkt aus dem Linux-Kernel erfasst, um ein Gesamtbild der Systemaktivitäten zu erhalten. Die Daten werden als Gruppe vertikal gestapelter Zeitreihendiagramme dargestellt, um Unterbrechungen beim Rendern und andere Probleme zu isolieren. Das Tool ist jetzt im Android SDK (Tools R20 oder höher) verfügbar.
Verbesserte Barrierefreiheit
Mit den neuen APIs für Bedienungshilfen können Sie Touch-Gesten verarbeiten und den Bedienungshilfen-Eingabefokus verwalten, wenn sich der Nutzer mithilfe von Bedienungshilfen-Gesten, Zubehör und anderen Eingaben durch die Elemente auf dem Bildschirm und die Navigationsschaltflächen bewegt. Das Talkback-System und die Funktion „Explore by Touch“ wurden neu gestaltet, um die Barrierefreiheit zu verbessern und Entwicklern eine vollständige Palette von APIs zur Verfügung zu stellen.
Anbieter von Bedienungshilfen können eigene Anleitungen in den Einstellungen für Bedienungshilfen verknüpfen, um Nutzern bei der Konfiguration und Verwendung ihrer Dienste zu helfen.
In Apps, die Standard-View-Komponenten verwenden, wird die Unterstützung für die neuen Funktionen zur Barrierefreiheit automatisch übernommen, ohne dass Änderungen am Code erforderlich sind. In Apps mit benutzerdefinierten Ansichten können neue APIs für Bedienungshilfen-Knoten verwendet werden, um die Teile der Ansicht anzugeben, die für Bedienungshilfen von Interesse sind.
Support für internationale Nutzer
Unterstützung für bidirektionellen Text und andere Sprachen
Mit Android 4.1 können Sie mehr Nutzer erreichen, da bidirekter Text in TextView- und EditText-Elementen unterstützt wird. Apps können Text in links- oder rechtsläufigen Schriftsystemen anzeigen oder bearbeiten. Apps können neue Lokalisierungen und zugehörige Schriftarten für Arabisch und Hebräisch verwenden.
Weitere neue Sprachunterstützungen:
- Weitere indische Sprachen: Kannada, Telugu und Malayalam
- Die neuen Emojis aus Unicode Version 6.0
- Bessere Unterstützung von Glyphen für japanische Nutzer (japanischsprachige Versionen von Glyphen werden gerendert, wenn die Systemsprache auf Japanisch festgelegt ist)
- Zusätzlich zu den arabischen Schriftzeichen für TextViews werden jetzt auch arabische Schriftzeichen für WebViews optimiert.
- Unterstützung für vertikalen Text in WebViews, einschließlich Ruby-Text und zusätzlicher vertikaler Textzeichen
- Die synthetische Fettdruckschrift ist jetzt für alle Schriftarten verfügbar, die keine speziellen Fettdruck-Glyphen haben.
Vom Nutzer installierbare Tastenbelegungen
Die Plattform unterstützt jetzt vom Nutzer installierbare Tastaturkarten, z. B. für zusätzliche internationale Tastaturen und spezielle Layouttypen. Android 4.1 enthält standardmäßig 27 internationale Tastaturbelegungen, darunter Dvorak. Wenn Nutzer eine Tastatur verbinden, können sie in den Einstellungen eine oder mehrere Tastenbelegungen auswählen, die sie für diese Tastatur verwenden möchten. Beim Tippen können Nutzer mit einer Tastenkombination (Strg + Leertaste) zwischen den Tastaturbelegungen wechseln.
Sie können eine App erstellen, um zusätzliche Tastenkombinationen im System zu veröffentlichen. Das APK würde die Tastaturlayout-Ressourcen basierend auf dem standardmäßigen Android-Tastaturbelegungsformat enthalten. Die Anwendung kann dem Nutzer zusätzliche Tastaturlayouts anbieten, indem im Manifest ein geeigneter Broadcastempfänger für ACTION_QUERY_KEYBOARD_LAYOUTS deklariert wird.
Neue Möglichkeiten für ansprechende Benutzeroberflächen
Maximierbare Benachrichtigungen
Benachrichtigungen sind seit langem eine einzigartige und beliebte Funktion unter Android. Entwickler können damit wichtige oder zeitbasierte Informationen außerhalb der normalen Benutzeroberfläche der App in der Benachrichtigungsleiste präsentieren.
Android 4.1 enthält ein wichtiges Update für das Android-Benachrichtigungs-Framework. Apps können Nutzern jetzt größere, umfangreichere Benachrichtigungen anzeigen, die durch Zusammen- und Auseinanderziehen oder Wischen maximiert und minimiert werden können. Benachrichtigungen unterstützen neue Inhaltstypen, einschließlich Fotos, haben eine konfigurierbare Priorität und können sogar mehrere Aktionen enthalten.
Mit dem verbesserten Tool zur Benachrichtigungserstellung können Apps Benachrichtigungen mit einer Höhe von bis zu 256 dp erstellen. Es stehen drei Vorlagen für Benachrichtigungsstile zur Verfügung:
- BigTextStyle: Eine Benachrichtigung mit einem mehrzeiligen TextView-Objekt.
- BigInboxStyle: Eine Benachrichtigung, die eine beliebige Liste enthält, z. B. Nachrichten oder Schlagzeilen.
- BigPictureStyle: Eine Benachrichtigung mit visuellen Inhalten wie einer Bitmap.
Zusätzlich zu den Vorlagenstilen können Sie mit jeder Remote-Ansicht eigene Benachrichtigungsstile erstellen.
Apps können einer Benachrichtigung bis zu drei Aktionen hinzufügen, die unter dem Benachrichtigungsinhalt angezeigt werden. Über die Aktionen können Nutzer direkt auf die Informationen in der Benachrichtigung reagieren, z. B. per E-Mail oder Telefonanruf, ohne die App aufzurufen.
Mit ausblendbaren Benachrichtigungen können Apps Nutzern auf einfache und bedarfsgerechte Weise mehr Informationen zur Verfügung stellen. Nutzer behalten die Kontrolle und können jede Benachrichtigung lange gedrückt halten, um Informationen zum Absender zu erhalten und optional weitere Benachrichtigungen von der App zu deaktivieren.
Skalierbare App-Widgets
Android 4.1 bietet verbesserte App-Widgets, deren Größe sich automatisch anpasst. Dabei wird berücksichtigt, wo der Nutzer sie auf dem Startbildschirm ablegt, wie groß er sie maximiert und wie viel Platz auf dem Startbildschirm verfügbar ist. Mit den neuen App-Widget-APIs können Sie Ihre App-Widget-Inhalte optimieren, wenn sich die Größe der Widgets ändert.
Wenn sich die Größe eines Widgets ändert, benachrichtigt das System den Widget-Anbieter der Host-App, der die Inhalte im Widget bei Bedarf neu laden kann. Ein Widget kann beispielsweise größere, ausdrucksstärkere Grafiken oder zusätzliche Funktionen oder Optionen anzeigen. Entwickler können weiterhin die maximale und minimale Größe festlegen und andere Widget-Optionen bei Bedarf aktualisieren.
Sie können auch separate Layouts für das Hoch- und Querformat für Ihre Widgets angeben, die das System bei einer Änderung der Bildschirmausrichtung entsprechend skaliert.
App-Widgets können jetzt über einen neuen Bind-Intent (AppWidgetManager.ACTION_APPWIDGET_BIND) in Launchern von Drittanbietern und anderen Host-Apps angezeigt werden.
Vereinfachte Navigation zu Aufgaben
Mit Android 4.1 können Sie die Navigationsfunktion „Zurück“ ganz einfach verwalten, die Nutzern in Ihren Apps zur Verfügung steht. So wird für Nutzer eine einheitliche Nutzung ermöglicht.
Sie können die vorgesehene Navigation nach oben für einzelne Aktivitätskomponenten Ihrer Benutzeroberfläche definieren, indem Sie der Manifestdatei der App ein neues XML-Attribut hinzufügen. Beim Ausführen von Aktivitäten extrahiert das System den Navigationsbaum „Zurück“ aus der Manifestdatei und erstellt automatisch die Navigationsoption „Zurück“ in der Aktionsleiste. Entwickler, die die Navigation nach oben im Manifest deklarieren, müssen die Navigation nicht mehr per Rückruf bei Laufzeit verwalten. Sie können dies aber bei Bedarf tun.
Außerdem gibt es die neue Klasse TaskStackBuilder, mit der Sie schnell einen synthetischen Task-Stack zusammenstellen können, der sofort gestartet wird oder verwendet wird, wenn eine Aktivität über ein PendingIntent gestartet wird. Das Erstellen eines synthetischen Aufgabenstapels ist besonders nützlich, wenn Nutzer Aktivitäten über Remote-Ansichten starten, z. B. über Widgets auf dem Startbildschirm und Benachrichtigungen. So können Entwickler eine verwaltete, einheitliche Navigation zurück ermöglichen.
Einfache Animationen beim Starten von Aktivitäten
Mit der neuen Hilfsklasse ActivityOptions können Sie die Animation erstellen und steuern, die beim Starten Ihrer Aktivitäten angezeigt wird. Über die Hilfsklasse können Sie benutzerdefinierte Animationsressourcen angeben, die beim Starten der Aktivität verwendet werden sollen, oder neue Zoomanimationen anfordern, die von einem beliebigen Rechteck auf dem Bildschirm ausgehen und optional eine Thumbnail-Bitmap enthalten.
Übergänge in den Modus „Lampen aus“ und den Vollbildmodus
Mit den neuen Flags für die System-UI in der Ansicht können Sie nahtlos von einer normalen Anwendungs-UI (mit sichtbarer Aktionsleiste, Navigationsleiste und Systemleiste) in den „Dunkelmodus“ (mit ausgeblendeter Status- und Aktionsleiste und gedimmter Navigationsleiste) oder in den „Vollbildmodus“ (mit ausgeblendeter Status-, Aktions- und Navigationsleiste) wechseln.
Neue Arten von Ansichten, die per Remotezugriff aufgerufen werden können
Entwickler können jetzt die Ansichten GridLayout und ViewStub in Startbildschirm-Widgets und Benachrichtigungen verwenden. Mit GridLayout können Sie den Inhalt Ihrer Remote-Ansicht strukturieren und die Ausrichtung von untergeordneten Ansichten mit einer flacheren UI-Hierarchie verwalten. ViewStub ist eine unsichtbare Ansicht mit einer Größe von null, mit der Layoutressourcen zur Laufzeit träge aufgebläht werden können.
Vorschau für Live-Hintergrund
Mit Android 4.1 können Nutzer Live-Hintergründe in Apps leichter finden und installieren. Wenn Ihre App Live-Hintergründe enthält, können Sie jetzt eine Aktivität (ACTION_CHANGE_LIVE_WALLPAPER) starten, die dem Nutzer eine Vorschau des Live-Hintergrunds aus Ihrer eigenen App anzeigt. Über die Vorschau können Nutzer den Live-Hintergrund direkt laden.
Kontaktfotos in höherer Auflösung
Mit Android 4.1 können Sie Kontaktfotos mit einer Größe von bis zu 720 × 720 speichern. So werden Kontakte noch aussagekräftiger und persönlicher. Apps können Kontaktfotos in dieser Größe speichern und abrufen oder eine andere Größe verwenden. Die auf bestimmten Geräten unterstützte maximale Fotogröße kann variieren. Apps sollten daher zur Laufzeit den integrierten Kontaktanbieter abfragen, um die maximale Größe für das aktuelle Gerät zu erhalten.
Neue Eingabetypen und -funktionen
Informationen zu hinzugefügten und entfernten Geräten
Apps können sich für Benachrichtigungen registrieren, wenn neue Eingabegeräte über USB, Bluetooth oder einen anderen Verbindungstyp angeschlossen werden. Anhand dieser Informationen können sie den Status oder die Funktionen bei Bedarf ändern. Ein Spiel könnte beispielsweise benachrichtigt werden, dass eine neue Tastatur oder ein neuer Joystick angeschlossen wurde, was auf einen neuen Spieler hinweist.
Funktionen von Eingabegeräten abfragen
Android 4.1 enthält APIs, mit denen Apps und Spiele alle angeschlossenen und verfügbaren Eingabegeräte optimal nutzen können.
Apps können den Gerätemanager abfragen, um alle derzeit angeschlossenen Eingabegeräte aufzulisten und Informationen zu den jeweiligen Funktionen zu erhalten.
Vibrationsfunktion auf Eingabegeräten steuern
Apps können jetzt unter anderem jeden Vibrationsservice nutzen, der mit einem angeschlossenen Eingabegerät verknüpft ist, z. B. für Rumble-Paks.
Animation und Grafik
VSync für Apps
Wenn Sie vsync auf das Android-Framework ausweiten, führt dies zu einer gleichmäßigeren Framerate und einer flüssigen, stabilen Benutzeroberfläche. Damit auch Apps davon profitieren, wird in Android 4.1 das Vsync-Timing auf alle Zeichnungen und Animationen ausgeweitet, die von Apps initiiert werden. So können sie die Vorgänge im UI-Thread optimieren und eine stabile Zeitbasis für die Synchronisierung bereitstellen.
Apps können das VSync-Timing kostenlos über das Animation Framework von Android nutzen. Das Animations-Framework verwendet jetzt das VSync-Timing, um die Synchronisierung zwischen Animatoren automatisch zu verarbeiten.
Für spezielle Anwendungen können Apps über APIs, die von einer neuen Choreographer-Klasse bereitgestellt werden, auf das VSync-Timing zugreifen. Apps können die Aufhebung der Gültigkeit für den nächsten vsync-Frame anfordern. Das ist eine gute Möglichkeit, Animationen zu planen, wenn die App das Animation Framework nicht verwendet. Für erweiterte Anwendungen können Apps einen Rückruf posten, der von der Choreographer-Klasse im nächsten Frame ausgeführt wird.
Neue Animationsaktionen und Übergangstypen
Mit dem Animation Framework können Sie jetzt Start- und Endaktionen definieren, die beim Ausführen von ViewPropertyAnimator-Animationen ausgeführt werden sollen, um sie mit anderen Animationen oder Aktionen in der Anwendung zu synchronisieren. Mit der Aktion kann jedes ausführbare Objekt ausgeführt werden. So kann beispielsweise eine weitere Animation angegeben werden, die gestartet werden soll, wenn die vorherige abgeschlossen ist.
Außerdem können Sie jetzt angeben, dass ein ViewPropertyAnimator während der Animation eine Ebene verwenden soll. Bisher war es eine Best Practice, komplexe Ansichten zu animieren, indem eine Ebene vor Beginn einer Animation eingerichtet und dann ein onAnimationEnd()-Ereignis verarbeitet wurde, um die Ebene nach Abschluss der Animation zu entfernen. Mit der Methode „withLayer()“ von ViewPropertyAnimator wird dieser Vorgang jetzt mit einem einzigen Methodenaufruf vereinfacht.
Mit einem neuen Übergangstyp in LayoutTransition können Sie Animationen als Reaktion auf alle Layoutänderungen in einer ViewGroup automatisieren.
Neue Arten von Konnektivität
Android Beam
Android Beam ist eine beliebte NFC-basierte Technologie, mit der Nutzer Inhalte sofort teilen können, indem sie zwei NFC-fähige Smartphones aneinander halten.
Mit Android Beam in Android 4.1 können Sie Bilder, Videos oder andere Nutzlasten einfacher teilen, da Bluetooth für die Datenübertragung verwendet wird. Wenn der Nutzer eine Übertragung auslöst, wechselt Android Beam von NFC zu Bluetooth. So lässt sich die Übertragung einer Datei von einem Gerät auf ein anderes ganz einfach verwalten.
WLAN-Netzwerkdiensterkennung
Android 4.1 unterstützt die DNS-basierte Diensterkennung per Multicast, mit der Anwendungen Dienste finden und über WLAN-Netzwerke mit ihnen verbinden können, z. B. Mobilgeräte, Drucker, Kameras und Mediaplayer. Entwickler können die Diensterkennung von WLANs nutzen, um plattformübergreifende oder Mehrspielerspiele und ‑anwendungen zu entwickeln.
Mit der Service Discovery API können Apps beliebige Dienste erstellen und registrieren, die von anderen NSD-fähigen Geräten gefunden werden können. Der Dienst wird per Multicast über das Netzwerk mit einer visuell lesbaren String-ID beworben, anhand derer Nutzer den Diensttyp leichter erkennen können.
Verbrauchergeräte können die API verwenden, um Dienste zu scannen und zu finden, die von Geräten verfügbar sind, die mit dem lokalen WLAN verbunden sind. Nach der Suche können Apps den Dienst über die API in eine IP-Adresse und einen Port auflösen, über die eine Socket-Verbindung hergestellt werden kann.
Sie können diese API nutzen, um neue Funktionen in Ihre Apps einzubinden. So können Nutzer beispielsweise eine Verbindung zu einer Webcam, einem Drucker oder einer App auf einem anderen Mobilgerät herstellen, das WLAN-Peer-to-Peer-Verbindungen unterstützt.
WLAN-P2P-Diensterkennung
Ice Cream Sandwich führte die Unterstützung für WLAN-Peer-to-Peer (P2P) ein, eine Technologie, mit der Apps direkt über eine Peer-to-Peer-Verbindung mit hoher Bandbreite erkannt und gekoppelt werden können (gemäß dem Wi‑Fi Direct™-Zertifizierungsprogramm der Wi‑Fi Alliance). WLAN-P2P ist eine ideale Möglichkeit, Medien, Fotos, Dateien und andere Arten von Daten und Sitzungen zu teilen, auch wenn kein Mobilfunknetz oder WLAN verfügbar ist.
Android 4.1 geht noch einen Schritt weiter und bietet API-Unterstützung für die vorherige Diensterkennung. Bei der vorab verknüpften Diensterkennung können Ihre Apps nützlichere Informationen von Geräten in der Nähe zu den von ihnen unterstützten Diensten abrufen, bevor eine Verbindung hergestellt wird. Apps können die Suche nach einem bestimmten Dienst initiieren und die Liste der gefundenen Geräte auf diejenigen filtern, die den Zieldienst oder die Zielanwendung tatsächlich unterstützen.
So kann Ihre App beispielsweise nur Geräte finden, die „Drucker“ sind oder für die ein bestimmtes Spiel verfügbar ist, anstatt alle WLAN-P2P-Geräte in der Nähe. Andererseits kann Ihre App den von ihr bereitgestellten Dienst für andere Geräte bewerben, die ihn finden und dann eine Verbindung herstellen können. Das vereinfacht die Suche und Kopplung für Nutzer erheblich und ermöglicht es Apps, Wi‑Fi P2P effektiver zu nutzen.
Mit der WLAN-P2P-Diensterkennung können Sie Apps und Mehrspielerspiele erstellen, mit denen Fotos, Videos, Spielinhalte, Ergebnisse oder fast alles andere geteilt werden kann – ganz ohne Internet- oder Mobilfunkverbindung. Ihre Nutzer können nur über eine direkte P2P-Verbindung eine Verbindung herstellen, wodurch die Nutzung der mobilen Bandbreite vermieden wird.
Netzwerkbandbreitenverwaltung
Android 4.1 hilft Apps, die Datennutzung angemessen zu verwalten, wenn das Gerät mit einem getakteten Netzwerk verbunden ist, einschließlich Tethering mit einem mobilen Hotspot. Apps können prüfen, ob das aktuelle Netzwerk kostenpflichtig ist, bevor ein großer Download gestartet wird, der für den Nutzer sonst relativ teuer sein könnte. Über die API können Sie jetzt genau sehen, welche Netzwerke datenintensiv sind, und Ihre Netzwerkaktivitäten entsprechend verwalten.
Neue Medienfunktionen
Zugriff auf Medien-Codecs
Android 4.1 bietet Low-Level-Zugriff auf die Hardware- und Software-Codecs der Plattform. Apps können das System abfragen, um herauszufinden, welche Low-Level-Medienkods auf dem Gerät verfügbar sind, und sie dann nach Bedarf verwenden. So können Sie beispielsweise jetzt mehrere Instanzen eines Mediencodecs erstellen, Eingabe- und Ausgabe-Puffer in die Warteschlange stellen und Ausgabe-Puffer zurückerhalten. Außerdem unterstützt das Medien-Codec-Framework geschützte Inhalte. Apps können nach einem verfügbaren Codec suchen, der geschützte Inhalte mit einer auf dem Gerät verfügbaren DRM-Lösung wiedergeben kann.
USB-Audio
Mit der Unterstützung der USB-Audioausgabe können Hardwareanbieter Hardware wie Audiodocks entwickeln, die mit Android-Geräten kompatibel sind. Diese Funktion ist auch im Open Accessory Development Kit (ADK) von Android verfügbar, damit alle Entwickler ihre eigene Hardware entwickeln können.
Audioaufzeichnung auslösen
Auf Android-Geräten können Sie jetzt eine Audioaufnahme auslösen, wenn ein Audiowiedergabetrack beendet wurde. Das ist beispielsweise nützlich, wenn Sie einen Ton abspielen möchten, um Nutzer darauf hinzuweisen, dass sie sprechen sollen, um ihre Stimme aufzunehmen. Mit dieser Funktion können Sie die Aufnahme synchronisieren, damit keine Audioinhalte aufgenommen werden, die gerade wiedergegeben werden. Außerdem wird verhindert, dass Aufnahmen zu spät beginnen.
Mehrkanal-Audio
Android 4.1 unterstützt mehrkanaliges Audio auf Geräten mit Hardware-Mehrkanal-Audioausgang über den HDMI-Port. Mit Mehrkanal-Audio können Sie Nutzern in Anwendungen wie Spielen, Musik-Apps und Videoplayern Rich-Media-Inhalte bereitstellen. Auf Geräten ohne unterstützte Hardware führt Android automatisch einen Downmix des Audios auf die Anzahl der vom Gerät unterstützten Kanäle durch (in der Regel Stereo).
Android 4.1 bietet außerdem eine integrierte Unterstützung für die Codierung/Dekodierung von AAC 5.1-Audio.
Vorverarbeitung von Audios
Entwickler können Vorverarbeitungseffekte auf die aufgezeichneten Audioinhalte anwenden, z. B. Rauschunterdrückung zur Verbesserung der Sprachaufnahmequalität, Echounterdrückung für akustisches Echo und automatische Verstärkungsregelung für Audioinhalte mit uneinheitlichen Lautstärkepegeln. Apps, die eine hochwertige und saubere Audioaufnahme erfordern, profitieren von diesen Preprozessoren.
Audio-Ketten
Der MediaPlayer unterstützt die Kette von Audiostreams, um Audiodateien ohne Pausen abzuspielen. Dies ist nützlich für Apps, bei denen nahtlose Übergänge zwischen Audiodateien erforderlich sind, z. B. Musikplayer zum Abspielen von Alben mit kontinuierlichen Titeln oder Spielen.
Media-Router
Die neuen APIs MediaRouter, MediaRouteActionProvider und MediaRouteButton bieten Standardmechanismen und eine Benutzeroberfläche, mit denen Sie auswählen können, wo Medien wiedergegeben werden. Kabelgebundene Headsets und A2DP-Bluetooth-Headsets und ‑Lautsprecher werden unterstützt. Sie können in Ihrer App eigene Routingoptionen hinzufügen.
RenderScript-Berechnung
Android 4.1 erweitert die Renderscript-Berechnung, um Ihnen mehr Flexibilität zu bieten. Sie können jetzt Texturen in Ihren Renderscript-Compute-Scripts stichprobenartig erfassen. Außerdem sind neue Pragmas verfügbar, mit denen Sie die für Ihre Scripts erforderliche Gleitkommagenauigkeit definieren können. So können Sie NEON-Anweisungen wie schnelle Vektormathematik-Vorgänge auf dem CPU-Pfad aktivieren, die mit dem vollständigen IEEE 754-2008-Standard sonst nicht möglich wären.
Sie können jetzt Ihre RenderScript-Berechnungsscripts auf x86-basierten Emulatoren und Hardwaregeräten debuggen. Sie können auch mehrere Root-Kernel in einer einzigen RenderScript-Quelldatei definieren.
Android-Browser und WebView
Unter Android 4.1 bieten der Android-Browser und WebViews die folgenden Verbesserungen:
- Bessere Nutzerfreundlichkeit von HTML5-Videos, einschließlich Touch-to-Play/Pause und reibungsloser Übergang vom Inline- zum Vollbildmodus.
- Verbesserte Renderinggeschwindigkeit und reduzierte Speichernutzung für eine bessere Scroll- und Zoomleistung.
- Verbesserte Leistung von HTML5-/CSS3-/Canvas-Animationen.
- Verbesserte Texteingabe
- Aktualisierte JavaScript-Engine (V8) für eine bessere JavaScript-Leistung.
- Unterstützung der aktualisierten HTML5-Media-Capture-Spezifikation (das Attribut „capture“ auf Elementen vom Typ „input type=file“).
Google APIs und Google-Dienste
Um die Funktionen von Android noch weiter zu erweitern, sind mehrere neue Dienste für Android verfügbar.
Google Cloud Messaging für Android
Google Cloud Messaging (GCM) ist ein Dienst, mit dem Entwickler Kurznachrichtendaten an ihre Nutzer auf Android-Geräten senden können, ohne eine proprietäre Synchronisierungslösung zu benötigen.
GCM übernimmt alle Details der Nachrichtenübermittlung an die gewünschten Android-Geräte. Sie unterstützt das Multicasting von Nachrichten und kann mit einer einzigen Anfrage bis zu 1.000 verbundene Geräte gleichzeitig erreichen. Außerdem werden Nachrichtennutzlasten unterstützt. Das bedeutet, dass Entwickler nicht nur Tickle-Nachrichten an eine App auf dem Gerät senden, sondern auch bis zu 4 KB an Daten.
Google Cloud Messaging ist für alle Entwickler kostenlos und die Registrierung ist ganz einfach. Informationen zur Registrierung, zu Downloads und zur Dokumentation finden Sie auf der Seite Google Cloud Messaging.
App-Verschlüsselung
Ab Android 4.1 trägt Google Play zum Schutz von App-Assets bei, indem alle kostenpflichtigen Apps mit einem gerätespezifischen Schlüssel verschlüsselt werden, bevor sie auf einem Gerät bereitgestellt und gespeichert werden.
Smart App Updates
Intelligente App-Updates sind eine neue Funktion von Google Play, mit der App-Updates auf Geräten noch besser bereitgestellt werden können. Wenn Entwickler ein Update veröffentlichen, liefert Google Play jetzt nur die geänderten Bits an Geräte, nicht das gesamte APK. Dadurch sind die Updates in den meisten Fällen viel kleiner, können schneller heruntergeladen werden, schonen den Akku des Geräts und sparen die Bandbreitennutzung des mobilen Datentarifs der Nutzer. Durchschnittlich ist ein intelligentes App-Update etwa ein Drittel so groß wie ein vollständiges APK-Update.
Google Play-Dienste
Mit Google Play-Diensten können Entwickler Google-Dienste wie die Authentifizierung in ihre über Google Play bereitgestellten Apps einbinden.
Die Google Play-Dienste werden von Google Play automatisch auf den Endnutzergeräten bereitgestellt. Sie benötigen also nur eine dünne Clientbibliothek in Ihren Apps.
Da Ihre App nur die kleine Clientbibliothek enthält, können Sie diese Dienste nutzen, ohne dass die Größe des Downloads und der Speicherplatzbedarf stark ansteigen. Außerdem werden die Dienste von Google Play regelmäßig aktualisiert, ohne dass Entwickler App-Updates veröffentlichen müssen, um sie nutzen zu können.
Weitere Informationen zu den in den Google Play-Diensten enthaltenen APIs finden Sie auf der Entwicklerseite Google Play-Dienste.