Android 4.3
Willkommen bei Android 4.3, einer süßeren Version von Jelly Bean!
Android 4.3 umfasst Leistungsoptimierungen und tolle neue Funktionen für Nutzer und Entwickler. Dieses Dokument bietet einen Einblick in die Neuerungen für Entwickler.
Ausführliche Informationen zu den neuen Entwickler-APIs finden Sie im Dokument zu Android 4.3 APIs.
Weitere Informationen zu den neuen Jelly Bean-Funktionen für Nutzer finden Sie unter www.android.com.
Schneller, flüssiger, reaktionsschneller
Android 4.3 baut auf den Leistungsverbesserungen von Jelly Bean auf – vsync-Timing, dreifache Zwischenspeicherung, geringere Touch-Latenz, CPU-Eingabe-Boosting und hardwarebeschleunigtes 2D-Rendering – und bietet neue Optimierungen, die Android noch schneller machen.
Zur Steigerung der Grafikleistung optimiert der hardwarebeschleunigte 2D-Renderer jetzt den Stream von Zeichenbefehlen und wandelt ihn in ein effizienteres GPU-Format um, indem Zeichenvorgänge neu angeordnet und zusammengeführt werden. Für die Multithread-Verarbeitung kann der Renderer jetzt auch Multithreading über mehrere CPU-Kerne hinweg verwenden, um bestimmte Aufgaben auszuführen.
Android 4.3 verbessert auch das Rendering für Formen und Text. Formen wie Kreise und abgerundete Rechtecke werden jetzt effizienter in höherer Qualität gerendert. Zu den Optimierungen für Text gehören eine höhere Leistung bei Verwendung mehrerer Schriftarten oder komplexer Glyphensätze (CJK), eine höhere Renderingqualität beim Skalieren von Text und ein schnelleres Rendern von Schlagschatten.
Verbesserte Fensterpufferzuweisung führt zu einer schnelleren Zuordnung von Bildzwischenspeichern für Ihre Anwendungen, wodurch die Zeit bis zum Starten des Renderings beim Erstellen eines Fensters reduziert wird.
Für Grafiken mit hoher Leistung bietet Android 4.3 Unterstützung für OpenGL ES 3.0 und macht es für Anwendungen sowohl über Framework als auch über native APIs zugänglich. Auf unterstützten Geräten nutzt die hardwarebeschleunigte 2D-Rendering-Engine OpenGL ES 3.0, um die Texturverwaltung zu optimieren und die Qualität des Gradienten-Renderings zu verbessern.
OpenGL ES 3.0 für High-Performance-Grafik
Mit Android 4.3 wird Plattformunterstützung für Khronos OpenGL ES 3.0 eingeführt. Damit können Spiele und andere Apps auf unterstützten Geräten mit leistungsstarken 2D- und 3D-Grafikfunktionen bereitgestellt werden. Sie können OpenGL ES 3.0 und zugehörige EGL-Erweiterungen entweder mit Framework-APIs oder nativen API-Bindungen über das Android Native Development Kit (NDK) nutzen.
Zu den wichtigsten neuen Funktionen in OpenGL ES 3.0 gehören die Beschleunigung erweiterter visueller Effekte, eine hochwertige ETC2/EAC-Texturkomprimierung als Standardfunktion, eine neue Version der GLSL ES-Schattierungssprache mit Unterstützung für Ganzzahlen und 32-Bit, erweitertes Textur-Rendering sowie standardisierte Texturgrößen- und Rendering-Zwischenspeicherformate.
Mit den OpenGL ES 3.0 APIs können Sie hochkomplexe und hocheffiziente Grafiken erstellen, die auf einer Reihe von kompatiblen Android-Geräten ausgeführt werden können. Außerdem können Sie auf all 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. Support für das Nexus 7 (2013), Nexus 4 und Nexus 10 ist bereits verfügbar.
Verbesserte Bluetooth-Konnektivität
Konnektivität mit Bluetooth-Smart-Geräten und -Sensoren
Jetzt können Sie Apps entwerfen und entwickeln, die mit der neuesten Generation kleiner, energiesparender Geräte und Sensoren interagieren, die Bluetooth Smart-Technologie verwenden.
Android 4.3 bietet integrierte Plattformunterstützung für Bluetooth Smart Ready in der zentralen Rolle und einen Standardsatz von APIs, mit denen Apps Geräte in der Nähe finden, GATT-Dienste abfragen und Lese-/Schreibeigenschaften durchführen können.
Mit den neuen APIs können Ihre Apps effizient nach relevanten Geräten und Diensten suchen. Sie können für jedes Gerät anhand der UUID nach unterstützten GATT-Diensten suchen und Verbindungen nach Geräte-ID und Signalstärke verwalten. Sie können eine Verbindung zu einem auf dem Gerät gehosteten GATT-Server herstellen und Eigenschaften lesen oder schreiben oder einen Listener registrieren, der benachrichtigt wird, wenn sich diese Merkmale ä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 Eigenschaften hinzufügen. Ihre Anwendung kann entweder als Client oder Server fungieren und in jedem Modus Daten senden und empfangen. Die APIs sind generisch, sodass Sie Interaktionen mit einer Vielzahl von Geräten wie Näherungs-Tags, Uhren, Fitnessmessern, Gamecontrollern, Fernbedienungen, Gesundheitsgeräten und mehr unterstützen können.
Bluetooth Smart Ready ist bereits auf dem Nexus 7 (2013) und dem Nexus 4 verfügbar. In den kommenden Monaten wird es aber auf immer mehr Android-kompatiblen Geräten unterstützt.
Profil AVRCP 1.3
Mit Android 4.3 wird Bluetooth AVRCP 1.3 unterstützt, sodass Ihre Apps umfassendere Interaktionen mit Remote-Streaming-Mediengeräten unterstützen. Apps wie Mediaplayer können AVRCP 1.3 über die in Android 4.0 eingeführten Remote Control Client APIs nutzen. Neben der Bereitstellung der Wiedergabesteuerung auf den über Bluetooth verbundenen Remote-Geräten können Apps jetzt auch Metadaten wie Titelname, Composer 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. Der Support ist sofort auf Nexus-Geräten und anderen Android-kompatiblen Geräten mit A2DP/AVRCP-Funktion verfügbar.
Unterstützung von eingeschränkten Profilen
Android 4.3 erweitert die Funktion für mehrere Nutzer für Tablets mit eingeschränkten Profilen. Damit haben Sie eine neue Möglichkeit, Nutzer und ihre Funktionen auf einem einzigen Gerät zu verwalten. Mit eingeschränkten Profilen können Tablet-Inhaber schnell separate Umgebungen für jeden Nutzer einrichten und detailliertere Einschränkungen in den Apps verwalten, die in diesen Umgebungen verfügbar sind. Eingeschränkte Profile sind ideal für Freunde und Familienmitglieder, Gastnutzer, Kioske, Kassengeräte und mehr.
Jedes eingeschränkte Profil bietet einen isolierten und sicheren Bereich mit eigenem lokalem Speicher, Startbildschirmen, Widgets und Einstellungen. Anders als bei Nutzern werden Profile in der Umgebung des Tablet-Inhabers basierend auf den installierten Anwendungen und Systemkonten des Eigentümers erstellt. Der Inhaber steuert, welche installierten Apps im neuen Profil aktiviert werden, und der Zugriff auf die Konten des Inhabers ist standardmäßig deaktiviert.
Apps, die für die Anmeldung, Präferenzen oder andere Zwecke auf die Konten des Inhabers zugreifen müssen, können der Nutzung zustimmen, 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, Ihren Nutzern mehr Mehrwert und Kontrolle zu bieten. In den Konfigurationseinstellungen für das Profil können Sie App-Einschränkungen implementieren, also Einstellungen für Inhalte oder Funktionen, die von Ihrer App unterstützt werden, und diese für Tablet-Inhaber bekannt machen.
Mithilfe von vordefinierten booleschen Werten, Auswahltypen und Mehrfachauswahl können Sie den Profilkonfigurationseinstellungen direkt Anwendungseinschränkungen hinzufügen. Wenn Sie mehr Flexibilität wünschen, können Sie über die Profilkonfigurationseinstellungen sogar eine eigene UI erstellen, um jede gewünschte Art von Einschränkung festzulegen.
Wenn Ihre Anwendung in einem Profil ausgeführt wird, kann sie alle vom Inhaber konfigurierten Einschränkungen prüfen und entsprechend erzwingen. Eine Medien-App kann beispielsweise eine Einschränkung bieten, mit der der Inhaber eine Altersebene für das Profil festlegen kann. Während der Laufzeit könnte die Anwendung die Einstellung für die Reife prüfen und Inhalte gemäß der bevorzugten Altersstufe verwalten.
Wenn Ihre Anwendung nicht für die Verwendung in eingeschränkten Profilen vorgesehen ist, können Sie sie vollständig deaktivieren. Dann kann sie in keinem eingeschränkten Profil aktiviert werden.
Optimierte Standort- und Sensorfunktionen
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 die Akkunutzung minimieren.
Das Hardware-Geofencing optimiert die Energieeffizienz, indem der Standort auf der Hardware des Geräts anstatt in der Software berechnet wird. Auf Geräten, die Hardware-Geofencing unterstützen, können die Geofencing APIs der Google Play-Dienste diese Optimierung nutzen, um den Akku zu schonen, während sich das Gerät bewegt.
Nur WLAN-Scanmodus ist eine neue Plattformoptimierung, mit der Nutzer die WLAN-Suche aktiviert lassen können, ohne sich mit einem WLAN-Netzwerk verbinden zu müssen. Dadurch wird die Standortgenauigkeit verbessert und gleichzeitig der Akku geschont. Apps, die WLAN für Standortdienste benötigen, können Nutzer jetzt dazu auffordern, den Scanmodus in den erweiterten WLAN-Einstellungen zu aktivieren. Der WLAN-Scanmodus ist nicht von der Gerätehardware abhängig und ist als Teil der Plattform Android 4.3 verfügbar.
Neue Sensortypen ermöglichen Apps eine bessere Verwaltung der Sensorwerte. Mit einem Spielrotationsvektor können Spieleentwickler die Gerätedrehung erkennen, ohne sich um magnetische Störungen kümmern zu müssen. Nicht kalibrierte Gyroskopsensoren und nicht kalibrierte Magnetometer-Sensoren melden Rohdaten sowie geschätzte Verzerrungen von Apps.
Die neuen Hardwarefunktionen sind bereits auf den Geräten Nexus 7 (2013) und Nexus 4 verfügbar. Sie können von jedem Gerätehersteller oder Chipsatzanbieter in ihre Geräte integriert werden.
Neue Medienfunktionen
Modulares DRM-Framework
Um den Anforderungen der nächsten Generation von Mediendiensten gerecht zu werden, wird mit 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 bestehender APIs bietet das Media DRM-Framework einen integrierten Satz von Diensten für die Verwaltung der Lizenzierung und Bereitstellung, den Zugriff auf Low-Level-Codecs und das Decodieren verschlüsselter Mediendaten. Mit der neuen MediaExtractor API können Sie die PSSH-Metadaten für DASH-Medien abrufen. Anwendungen, die das Media DRM-Framework verwenden, verwalten die Netzwerkkommunikation mit einem Lizenzserver und verarbeiten das Streaming verschlüsselter Daten aus einer Inhaltsbibliothek.
VP8-Encoder
Mit Android 4.3 wird die VP8-Codierung unterstützt, auf die über Framework und native APIs zugegriffen werden kann. Für Anwendungen mit nativen APIs enthält die Plattform Erweiterungsheader OpenMAX 1.1.2, um VP8-Profile und -Ebenen zu unterstützen. Die VP8-Codierung unterstützt Einstellungen für die Zielbitrate, Ratensteuerung, Framerate, Tokenpartitionierung, Fehlersicherheit, Rekonstruktion und Schleifenfilter. Die Plattform-API unterstützt VP8-Encoder in einer Reihe von Formaten, damit Sie das beste Format für Ihre Inhalte nutzen können.
Die VP8-Codierung ist als Software auf allen kompatiblen Geräten mit Android 4.3 verfügbar. Für die höchste Leistung unterstützt die Plattform auch die hardwarebeschleunigte VP8-Codierung auf kompatiblen Geräten.
Videocodierung von einer Oberfläche
Ab Android 4.3 kannst du eine Oberfläche als Eingabe für einen Videoencoder verwenden. Du kannst jetzt beispielsweise einen Stream von einer OpenGL ES-Oberfläche an den Encoder weiterleiten, anstatt zwischen Zwischenspeichern kopieren zu müssen.
Media-Muxer
Anwendungen können neue Media Muxer APIs verwenden, um grundlegende 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 umwandeln. Die neuen APIs sind ein Gegenstück zu den in Android 4.2 eingeführten Media Demuxing APIs.
Wiedergabefortschritt und Scrubbing in Remote-Control-Clients
Seit Android 4.0 können Mediaplayer und ähnliche Anwendungen die Wiedergabesteuerung über Fernbedienungsclients wie den Sperrbildschirm des Geräts, Benachrichtigungen und über Bluetooth verbundene Remote-Geräte anbieten. Ab Android 4.3 können diese Anwendungen außerdem über ihre Fernbedienungs-Clients Wiedergabefortschritt und -geschwindigkeit abrufen und Befehle empfangen, um zu einer bestimmten Wiedergabeposition zu springen.
Neue Möglichkeiten zum Entwickeln ansprechender Apps
Zugriff auf Benachrichtigungen
Benachrichtigungen sind seit Langem eine beliebte Android-Funktion, weil sie Nutzern Informationen und Updates aus dem gesamten System an einem Ort ermöglichen. In Android 4.3 können Apps jetzt mit der Zustimmung des Nutzers den Benachrichtigungsstream beobachten und die Benachrichtigungen so anzeigen, wie sie möchten. Dazu gehört auch, dass sie über Bluetooth an Geräte in der Nähe gesendet werden.
Sie können auf Benachrichtigungen über neue APIs zugreifen, mit denen Sie einen Benachrichtigungs-Listener-Dienst registrieren und mit Erlaubnis des Nutzers Benachrichtigungen erhalten, sobald sie in der Statusleiste angezeigt werden. Sie erhalten Benachrichtigungen vollständig mit allen Details zur ursprünglichen App, dem Veröffentlichungszeitpunkt, der Ansicht und dem Stil der Inhalte sowie der Priorität. Sie können Interessenfelder für die Benachrichtigungen auswerten, Kontext aus Ihrer App verarbeiten oder hinzufügen und sie nach Belieben zur Anzeige weiterleiten.
Die neue API gibt dir Callbacks zurück, wenn eine Benachrichtigung hinzugefügt, aktualisiert oder entfernt wird (entweder weil der Nutzer sie oder die ursprüngliche App geschlossen hat). Du kannst alle Intents starten, die an die Benachrichtigung oder ihre Aktionen angehängt sind, und sie aus dem System schließen, sodass deine App eine vollständige Benutzeroberfläche für Benachrichtigungen bereitstellen kann.
Nutzer haben weiterhin die Kontrolle darüber, welche Apps Benachrichtigungen erhalten können. Sie können jederzeit in den Einstellungen nachsehen, welche Apps Benachrichtigungszugriff 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 direkt zu den Einstellungen weiterzuleiten, damit der Listener-Dienst nach der Installation aktiviert wird.
Overlays anzeigen
Sie können jetzt transparente Overlays über Ansichten und ViewGroups erstellen, um eine temporäre Ansichtshierarchie oder vorübergehende Animationseffekte zu rendern, ohne die zugrunde liegende Layouthierarchie zu beeinträchtigen. Overlays sind besonders nützlich, wenn Sie Animationen erstellen möchten und beispielsweise eine Ansicht außerhalb des Containers verschieben oder Elemente auf den Bildschirm ziehen, ohne die Ansichtshierarchie zu beeinflussen.
Modus für optische Grenzen
Mit einem neuen Layoutmodus können Sie die Positionierung von Ansichten innerhalb von ViewGroups gemäß ihren optischen Grenzen statt nach ihren Clipgrenzen verwalten. Clip-Grenzen stellen die tatsächliche äußere Begrenzung eines Widgets dar, während die neuen optischen Grenzen beschreiben, wo sich das Widget innerhalb der Clip-Grenzen zu befinden scheint. Mit dem Layoutmodus für optische Grenzen können Sie Widgets mit äußeren visuellen Effekten wie Schatten und Schein richtig ausrichten.
Animationstypen für die benutzerdefinierte Rotation
Apps können jetzt die Animationstypen für Ausstieg und Eintritt in einem Fenster definieren, wenn das Gerät gedreht wird. Sie können Fenstereigenschaften festlegen, um die Fensterdrehung Jump Cut, Überblenden oder Standard zu aktivieren. Das System verwendet benutzerdefinierte Animationstypen, wenn das Fenster im Vollbildmodus 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 beim Umdrehen des Geräts in der richtigen Ausrichtung angezeigt werden. Darüber hinaus können Apps einen neuen Modus verwenden, um den Bildschirm auf seine aktuelle Ausrichtung zu sperren. Das bietet sich bei Apps an, die die Kamera verwenden und die Drehung deaktivieren möchten, während sie ein Video aufnehmen.
Intent für die Verarbeitung von Kurzantworten
Mit Android 4.3 wird ein neuer öffentlicher Intent eingeführt, mit dem jede App Kurzantworten verarbeiten kann. Das sind Nachrichten, die vom Nutzer als Antwort auf einen eingehenden Anruf gesendet werden, ohne dass der Anruf angenommen oder das Gerät entsperrt werden muss. Ihre Anwendung kann auf den Intent warten und die Nachricht über Ihr Nachrichtensystem an den Aufrufer senden. Der Intent enthält den Empfänger (Anrufer) sowie die Nachricht selbst.
Unterstützung für internationale Nutzer
RTL-Verbesserungen
Android 4.3 umfasst RTL-Leistungsverbesserungen und eine umfassendere RTL-Unterstützung über Framework-Widgets wie ProgressBar/Spinner und ExpandableListView. Über das uiautomatorviewer
-Tool sind weitere Informationen zur Fehlerbehebung sichtbar. Darüber hinaus sind jetzt mehr System-UI-Komponenten von RTL erkannt, z. B. Benachrichtigungen, die Navigationsleiste und die Aktionsleiste.
Um die systemweite Nutzung von RTL-Scripts zu verbessern, unterstützen mehr standardmäßige System-Apps jetzt RTL-Layouts, darunter Launcher, Schnelleinstellungen, Telefon, Kontakte, SetupWizard, Uhr, Downloads und mehr.
Dienstprogramme für die Lokalisierung
Android 4.3 enthält auch neue Dienstprogramme und APIs zum Erstellen besserer RTL-Strings und zum Testen Ihrer lokalisierten UI-Elemente. Eine neue BidiFormatter-Klasse bietet eine einfache API zum Umschließen von Unicode-Strings, damit RTL-Skript-Daten wie vorgesehen in LTR-Sprache-Nachrichten angezeigt werden und umgekehrt. Damit Sie dieses Dienstprogramm in noch mehr Apps nutzen können, ist die BidiFormatter API jetzt auch für frühere Plattformversionen über das Supportpaket im Android SDK verfügbar.
Um Sie bei der Verwaltung der Datumsformatierung in verschiedenen Sprachen zu unterstützen, 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. Es ist eine bequeme Möglichkeit, Ihren Nutzern eine lokalisierte Version Ihrer App zu bieten.
Damit Sie Ihre App einfacher in anderen Sprachen testen können, werden in Android 4.3 pseudo-locales als neue Entwickleroption eingeführt. Pseudolokalisierungen simulieren die mit einer Sprache oder Sprachgruppe verknüpften Sprache-, Skript- und Anzeigeeigenschaften. Derzeit können Sie es mit einer Pseudosprache für Accented English testen, um zu sehen, wie Ihre UI mit Skriptakzenten und Zeichen in verschiedenen europäischen Sprachen funktioniert.
Bedienungshilfen und UI-Automatisierung
Ab Android 4.3 können Bedienungshilfen Schlüsselereignisse beobachten und filtern, z. B. um Tastenkombinationen zu verarbeiten oder die Navigation mit gestenbasierter Eingaben zu vergleichen. Der Dienst empfängt die Ereignisse und kann sie nach Bedarf verarbeiten, bevor sie an das System oder andere installierte Anwendungen übergeben werden.
Bedienungshilfen können neue Funktionsattribute deklarieren, um zu beschreiben, was die Dienste können und welche Plattformfunktionen sie verwenden. Sie können beispielsweise die Möglichkeit deklarieren, Schlüsselereignisse zu filtern, Fensterinhalte abzurufen, „Explore by Touch“ zu aktivieren oder Web-Bedienungshilfen zu aktivieren. In einigen Fällen müssen Dienste ein Funktionsattribut deklarieren, bevor sie auf zugehörige Plattformfunktionen zugreifen können. Das System erstellt anhand der Funktionsattribute des Dienstes ein Opt-in-Dialogfeld für Nutzer, über das sie die Funktionen vor der Veröffentlichung sehen und akzeptieren können.
Ein neues Framework für die UI-Automatisierung baut auf dem Barrierefreiheits-Framework in Android 4.3 auf. Es ermöglicht die Interaktion von Tests mit der Benutzeroberfläche des Geräts, indem Nutzeraktionen simuliert und Bildschirminhalte eine Introspektion vorgelegt werden. Über das Framework für UI-Automatisierung können Sie grundlegende Vorgänge ausführen, die Bildschirmdrehung festlegen, Eingabeereignisse generieren, Screenshots erstellen und vieles mehr. Es ist eine leistungsstarke Möglichkeit, Tests in realistischen Nutzerszenarien zu automatisieren, einschließlich Aktionen oder Sequenzen, die sich über mehrere Apps erstrecken.
Unternehmen und Sicherheit
WLAN-Konfiguration für WPA2-Enterprise-Netzwerke
Apps können jetzt die WLAN-Anmeldedaten konfigurieren, die sie für Verbindungen zu WPA2 Enterprise-Zugangspunkten benötigen. Entwickler können neue APIs verwenden, um Anmeldedaten des Extensible Authentication Protocol (EAP) und Encapsulated EAP (Phase 2) für im Unternehmen verwendete Authentifizierungsmethoden zu konfigurieren. Apps mit der Berechtigung, auf das WLAN zuzugreifen und es zu ändern, können Authentifizierungsanmeldedaten für verschiedene EAP- und Phase 2-Authentifizierungsmethoden konfigurieren.
Mit SELinux unterstützte Android-Sandbox
Android verwendet jetzt SELinux, ein System zur obligatorischen Zugriffssteuerung (MAC) im Linux-Kernel, um die UID-basierte Anwendungs-Sandbox zu erweitern. Dadurch wird das Betriebssystem vor potenziellen Sicherheitslücken geschützt.
Verbesserungen an KeyChain
Die KeyChain API bietet jetzt eine Methode, mit der Anwendungen prüfen können, ob systemweite Schlüssel an eine Hardware-Root of Trust für das Gerät gebunden sind. Hier können Sie private Schlüssel erstellen oder speichern, die selbst bei einer Root- oder Kernel-Manipulation nicht vom Gerät exportiert werden können.
Android-Schlüsselspeicheranbieter
Mit Android 4.3 werden ein Schlüsselspeicheranbieter und APIs eingeführt, mit denen Anwendungen Schlüssel mit exklusiver Verwendung erstellen können. Mithilfe der APIs können Anwendungen private Schlüssel erstellen oder speichern, die von anderen Apps weder gesehen noch verwendet werden können. Außerdem können sie dem Schlüsselspeicher ohne Nutzerinteraktion hinzugefügt werden.
Der Schlüsselspeicheranbieter bietet dieselben Sicherheitsvorteile, die die KeyChain API für systemweite Anmeldedaten bietet, z. B. das Binden von Anmeldedaten an ein Gerät. Private Schlüssel im Schlüsselspeicher können nicht aus dem Gerät exportiert werden.
Setuid für Android-Apps einschränken
Die Partition /system
wird jetzt mit nosuid
für Prozesse bereitgestellt, die durch Zygote ausgelöst wurden. Dadurch wird verhindert, dass Android-Anwendungen setuid
-Programme ausführen. Dies reduziert die Root-Angriffsfläche und die Wahrscheinlichkeit potenzieller Sicherheitslücken.
Neue Möglichkeiten zur Leistungsanalyse
Verbessertes Systrace-Logging
Android 4.3 unterstützt eine erweiterte Version des Systrace-Tools, das einfacher zu verwenden ist und Ihnen Zugriff auf mehr Arten von Informationen bietet, um ein Profil der Leistung Ihrer App zu erstellen. Sie können jetzt Trace-Daten von Hardwaremodulen, Kernel-Funktionen und Dalvik-VMs einschließlich der automatischen Speicherbereinigung, dem Laden von Ressourcen und mehr erfassen.
Android 4.3 enthält auch neue Trace APIs, mit denen Sie in Ihren Apps bestimmte Codeabschnitte markieren können, die mit Systrace-Beginn/Ende-Ereignissen verfolgt werden sollen. Wenn die markierten Codeabschnitte ausgeführt werden, schreibt das System die „begin/end“-Ereignisse in das Trace-Log. Die Auswirkungen auf die Leistung Ihrer App sind minimal. Die gemeldeten Timings geben Ihnen also einen genauen Überblick über die Aktionen Ihrer App.
Sie können anwendungsspezifische Ereignisse in einer Zeitachse in der Systrace-Ausgabedatei visualisieren und die Ereignisse im Kontext anderer Kernel- und Userspace-Trace-Daten analysieren. Zusammen mit den vorhandenen Systrace-Tags bieten Ihnen benutzerdefinierte Anwendungsbereiche neue Möglichkeiten, die Leistung und das Verhalten Ihrer Anwendungen zu verstehen.
GPU-Profilerstellung auf dem Bildschirm
Mit Android 4.3 werden neue Entwickleroptionen hinzugefügt, mit denen du die Leistung deiner App analysieren und Renderingprobleme auf allen Geräten oder Emulatoren erkennen kannst.
Mit der Option Profil-GPU-Rendering können Sie jetzt die effektive Framerate Ihrer App auf dem Bildschirm visualisieren, während die App ausgeführt wird. Sie können Profildaten als Balken- oder Liniendiagramme auf dem Bildschirm darstellen, wobei die Farben die Zeit angeben, die Sie zum Erstellen von Zeichenbefehlen (blau), zur Ausgabe der Befehle (orange) und für das Warten auf den Abschluss der Befehle benötigen (gelb). Das System aktualisiert die Bildschirmdiagramme kontinuierlich und zeigt eine Grafik für jede sichtbare Aktivität an, einschließlich der Navigationsleiste und der Benachrichtigungsleiste.
Eine grüne Linie unterstreicht den Grenzwert von 16 ms für Renderingvorgänge. So kannst du die effektive Framerate deiner App im Verhältnis zu einem Ziel von 60 fps beurteilen, da 1/60s einer Sekunde etwa 16 ms entspricht. Wenn Sie Vorgänge sehen, die die grüne Linie überschreiten, können Sie diese mit Systrace und anderen Tools weiter analysieren.
Auf Geräten mit Android 4.2 und höher sind die Entwickleroptionen standardmäßig ausgeblendet. Du kannst sie jederzeit aufrufen, indem du auf einem kompatiblen Android-Gerät siebenmal auf Einstellungen > Über das Telefon > Build-Nummer tippst.
StrictMode-Warnung für Datei-URIs
Die neueste Ergänzung des Tools „StrictMode“ ist eine Richtlinieneinschränkung, die warnt, wenn Ihre App dem System oder einer anderen Anwendung einen file://
-URI zur Verfügung stellt. In einigen Fällen hat die empfangende App möglicherweise keinen Zugriff auf den URI-Pfad file://
. Daher sollte bei der Freigabe von Dateien zwischen Apps ein content://
-URI verwendet werden (mit der entsprechenden Berechtigung). Mit dieser neuen Richtlinie können Sie solche Fälle erkennen und beheben. Wenn Sie nach einer bequemen Möglichkeit suchen, Dateien für andere Anwendungen zu speichern und für andere zugänglich zu machen, 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 aktualisierte System-UI und tolle neue Funktionen für Nutzer und Entwickler. Dieses Dokument bietet einen Einblick in die Neuerungen für Entwickler.
Ausführliche Informationen zu den neuen Entwickler-APIs finden Sie im Dokument zu Android 4.2 APIs.
Weitere Informationen zu den neuen Jelly Bean-Funktionen für Nutzer finden Sie unter www.android.com.
Schneller, flüssiger, reaktionsschneller
Android 4.2 baut auf den Leistungsverbesserungen von Jelly Bean auf – vsync-Timing, Dreifach-Zwischenspeicherung, verringerte Touch-Latenz und CPU-Eingabe-Booster – und bietet neue Optimierungen, die Android noch schneller machen.
Verbesserungen am hardwarebeschleunigten 2D-Renderer machen gängige Animationen wie Scrollen und Wischen flüssiger und schneller. Die Zeichnung ist insbesondere für Ebenen, das Ausschneiden und bestimmte Formen (abgerundete Rechtecke, Kreise und Ovale) optimiert.
Mit einer Vielzahl von WebView-Renderingoptimierungen lässt sich das Scrollen auf Webseiten reibungsloser und ohne Jitter und Verzögerungen möglich.
Renderscript Compute von Android ist die erste Rechenplattform, die direkt auf einer GPU für Mobilgeräte ausgeführt werden kann. Dabei werden nach Möglichkeit automatisch GPU-Computing-Ressourcen genutzt, was die Leistung der Grafik- und Bildverarbeitung drastisch verbessert. Jede App, die RenderScript auf einem unterstützten Gerät verwendet, kann sofort von dieser GPU-Integration profitieren, ohne neu kompilieren zu müssen.
Optimierte, aktualisierte Benutzeroberfläche
Android 4.2 optimiert die Jelly Bean-Nutzererfahrung und bringt bekannte Android-UI-Muster wie Statusleiste, Systemleiste und Benachrichtigungsfenster auf alle Tablets.
Bei allen Bildschirmgrößen befindet sich jetzt oben die Statusleiste mit Benachrichtigungen per Drop-down-Menü sowie einem neuen Menü Schnelleinstellungen. Unten wird die bekannte Systemleiste angezeigt, die mit beiden Händen leicht zugänglich ist. Die Anwendungsablage ist ebenfalls für alle Bildschirmgrößen verfügbar.
Ein Tablet, viele Nutzer
Jetzt können sich mehrere Nutzer ein einziges Android-Tablet teilen, wobei jeder Nutzer bequemen Zugriff auf einen speziellen Nutzerbereich hat. Nutzer können mit nur einer Berührung vom Sperrbildschirm zu ihren Gruppenbereichen wechseln.
Auf einem Gerät mit mehreren Nutzern bietet Android jedem Nutzer eine separate Umgebung, einschließlich nutzerspezifischer emulierter SD-Kartenspeicher. Nutzer haben auch ihre eigenen Startbildschirme, Widgets, Konten, Einstellungen, Dateien und Apps, die vom System getrennt werden. Alle Nutzer verwenden dieselben zentralen Systemdienste, aber das System sorgt dafür, dass die Anwendungen und Daten jedes Nutzers isoliert bleiben. Jeder Nutzer hat ein eigenes Android-Gerät.
Nutzer können Apps jederzeit in ihrer eigenen Umgebung installieren und deinstallieren. Um Speicherplatz zu sparen, lädt Google Play ein APK nur herunter, wenn es nicht bereits von einem anderen Nutzer auf dem Gerät installiert wurde. Wenn die App bereits installiert ist, zeichnet Google Play die Installation des neuen Nutzers wie gewohnt auf, lädt jedoch keine weitere Kopie der App herunter. Mehrere Nutzer können dieselbe Kopie eines APKs ausführen, da das System für jeden Nutzer eine neue Instanz erstellt, einschließlich eines nutzerspezifischen Datenverzeichnisses.
Für Entwickler ist die Unterstützung für mehrere Nutzer transparent. Ihre Apps müssen keine besonderen Schritte ausführen, um normal in einer Umgebung mit mehreren Nutzern ausgeführt werden zu können, und Sie müssen keine Änderungen an Ihren vorhandenen oder veröffentlichten APKs vornehmen. Das System verwaltet Ihre Anwendung in jedem Nutzerbereich wie in einer Einzelnutzerumgebung.
Neue Möglichkeiten, um mit Nutzern zu interagieren
Sperrbildschirm-Widgets
In Android 4.2 können Nutzer App-Widgets direkt auf ihrem Sperrbildschirm platzieren, um sofort auf App-Inhalte zuzugreifen, ohne das Gerät entsperren zu müssen. Nutzer können bis zu fünf Sperrbildschirm-Widgets hinzufügen und aus den von installierten Apps bereitgestellten Widgets auswählen. Auf dem Sperrbildschirm wird jedes Widget in einem eigenen Bereich angezeigt. Nutzer können nach links und rechts wischen, um verschiedene Bereiche und ihre Widgets zu sehen.
Wie alle App-Widgets können Sperrbildschirm-Widgets alle Arten von Inhalten anzeigen und direkte Nutzerinteraktionen zulassen. Sie können völlig eigenständig sein, z. B. ein Widget, das die Wiedergabe von Musik steuert, oder es Nutzern ermöglichen, direkt zu einer Aktivität in Ihrer App zu springen, nachdem sie sie nach Bedarf freigeschaltet haben.
Für Entwickler sind Sperrbildschirm-Widgets eine tolle neue Möglichkeit, mit Nutzern zu interagieren. Sie ermöglichen es Ihnen, Ihre Inhalte Nutzern an einer Stelle zu präsentieren, die sie häufig sehen. Außerdem bieten sie Ihnen 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 deine App bereits Startbildschirm-Widgets enthält, kannst du sie mit minimalen Änderungen auf den Sperrbildschirm erweitern. Für eine optimale Nutzung können Sie das Widget so aktualisieren, dass der gesamte Sperrbildschirmbereich verwendet wird, sofern verfügbar, und bei Bedarf die Größe auf kleineren Bildschirmen anpassen. 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 ist oder aufgeladen wird. In diesem Modus startet das System als Bildschirmschoner auf dem Gerät einen Remote-Inhaltsdienst, der von einer installierten App bereitgestellt wird. Nutzer können Daydream in den Einstellungen aktivieren und dann den Daydream auswählen, der angezeigt werden soll.
Daydreams vereinen die besten Funktionen von Live-Hintergründen und Startbildschirm-Widgets, sind aber noch leistungsstärker. Sie ermöglichen es Ihnen, alle Arten von Inhalten in einem völlig neuen Kontext anzubieten, mit Nutzerinteraktionen wie Fotos durchblättern, Audio- oder Videoinhalte abspielen oder mit einer einzigen Berührung direkt Ihre App aufrufen.
Da Daydreams automatisch gestartet werden können, wenn ein Gerät aufgeladen oder angedockt wird, bietet deine App eine gute Möglichkeit, neue Arten von User Experiences zu unterstützen, wie den Leanback- oder Ausstellungsmodus, den Demo- oder Kioskmodus und den „Attract-Modus“, ohne dass spezielle Hardware erforderlich ist.
Daydreams sind ähnlich wie Aktivitäten und können alle Funktionen von Activity nutzen – vom Rendern einer UI-Hierarchie (ohne Verwendung von RemoteViews) bis hin zum direkten Zeichnen mit Canvas, OpenGL, SurfaceTexture und vielem mehr. Sie können Video und Audio wiedergeben und sogar direkte Nutzerinteraktionen akzeptieren. Da Daydreams jedoch keine Aktivitäten sind, wirken sie sich nicht auf den Backstack aus und werden nicht unter „Recents“ (Letzte) angezeigt und können nicht direkt über Ihre App gestartet werden.
Die Implementierung von Daydream ist einfach und du kannst UI-Komponenten und -Ressourcen nutzen, die du bereits für andere Teile deiner App erstellt hast. Du kannst in deiner App mehrere Daydreams zur Verfügung stellen und für jeden unterschiedliche Inhalts- und Anzeigeeinstellungen festlegen.
Unterstützung externer Displays
Mit Android 4.2 wird eine Plattformunterstützung für externe Bildschirme eingeführt, die weit über die Spiegelung hinausgehen. Apps können jetzt individuelle Inhalte auf einen oder mehrere Bildschirme ausrichten, die mit einem Android-Gerät verbunden sind. Apps können darauf aufbauen und den Nutzern neue Arten der Interaktion und Unterhaltung bieten.
Display-Manager
Apps interagieren über einen neuen Display-Manager-Systemdienst mit Displays. Ihre App kann die Bildschirme auflisten und die Funktionen der einzelnen Bildschirme prüfen, einschließlich Größe, Dichte, Anzeigename, ID, Unterstützung von sicheren Videos und mehr. Deine App kann auch Callbacks erhalten, wenn Displays hinzugefügt oder entfernt werden oder wenn sich ihre Funktionen ändern. So lassen sich Inhalte auf externen Displays besser verwalten.
Präsentationsfenster
Um die Darstellung von Inhalten auf einem externen Bildschirm zu erleichtern, stellt das Framework ein neues UI-Objekt namens Presentation bereit. Dabei handelt es sich um einen Dialog, der ein Fenster für den Inhalt Ihrer App auf einem bestimmten externen Bildschirm darstellt. Ihre App stellt lediglich den zu verwendenden Bildschirm, ein Design für das Fenster und alle individuellen Inhalte bereit, die angezeigt werden sollen. In der Präsentation werden Ressourcen überhöht und Inhalte entsprechend den Eigenschaften des Zieldisplays gerendert.
Bei einer Präsentation hat Ihre App die volle Kontrolle über das Remote-Anzeigefenster und seinen Inhalt. Außerdem können Sie es basierend auf Nutzereingabeereignissen wie Tastendruck, Gesten, Bewegungsereignissen usw. verwalten. Sie können alle normalen Tools verwenden, um eine UI zu erstellen und Inhalte in der Präsentation zu rendern. Sie können eine beliebige Ansichtshierarchie erstellen oder mit SurfaceView oder SurfaceTexture direkt in das Fenster für gestreamte Inhalte oder Kameravorschauen zeichnen.
Bevorzugte Displayauswahl
Wenn mehrere externe Bildschirme verfügbar sind, können Sie so viele Präsentationen erstellen, wie Sie benötigen, wobei jede Präsentation individuelle Inhalte auf einem bestimmten Bildschirm anzeigt. In vielen Fällen möchten Sie Ihre Inhalte vielleicht nur auf einem einzigen externen Bildschirm anzeigen, aber immer auf dem Gerät, das für Präsentationsinhalte am besten geeignet ist. Dabei kann das System Ihrer App helfen, das beste Display auszuwählen.
Um die am besten geeignete Anzeige zu finden, kann Ihre App den Display-Manager nach der bevorzugten Präsentationsanzeige des Systems abfragen und Callbacks erhalten, wenn sich diese Anzeige ändert. Alternativ können Sie den in Android 4.2 erweiterten Media Router-Dienst verwenden, um Benachrichtigungen zu erhalten, wenn sich eine Systemvideoroute ändert. Ihre App kann Inhalte standardmäßig in der Hauptaktivität anzeigen, bis eine bevorzugte Präsentationsanzeige angehängt wird. Anschließend kann sie automatisch zu Präsentationsinhalten auf dem bevorzugten Bildschirm wechseln. Ihre Apps können auch MediaRouteActionProvider und MediaRouteButton des Media-Routers verwenden, um eine standardmäßige UI für die Anzeigeauswahl bereitzustellen.
Geschützte Inhalte
Bei Anwendungen, die geschützte oder verschlüsselte Inhalte verarbeiten, meldet die Display API jetzt die sicheren Videofunktionen angehängter Bildschirme. Ihre Anwendung fragt eine Anzeige ab, um herauszufinden, ob sie eine sichere Videoausgabe oder geschützte Grafikzwischenspeicher bietet, und dann den entsprechenden Inhaltsstream oder die Decodierung auszuwählen, um den Inhalt sichtbar zu machen. Zur Erhöhung der Sicherheit von SurfaceView-Objekten kann Ihre App ein Secure-Flag festlegen, um anzugeben, dass die Inhalte selbst beim Spiegeln niemals in Screenshots oder auf einer unsicheren Bildschirmausgabe erscheinen sollen.
Kabellose Übertragung (WiDi)
Ab Android 4.2 können Nutzer mit unterstützten Geräten über WLAN eine Verbindung zu einem externen Bildschirm über WLAN herstellen. Dies ist eine Peer-to-Peer-Lösung für kabellose Displays, die dem MiracastTM-Zertifizierungsprogramm entspricht. Wenn ein kabelloses Display verbunden ist, können Nutzer beliebige Inhalte auf den großen Bildschirm streamen, z. B. Fotos, Spiele und Karten.
Apps können drahtlose Bildschirme auf die gleiche Weise wie andere externe Bildschirme nutzen und es ist kein zusätzlicher Aufwand erforderlich. Das System verwaltet die Netzwerkverbindung und streamt Ihre Präsentation oder andere App-Inhalte nach Bedarf auf das kabellose Display.
Native Unterstützung für RTL
Android 4.2 bietet vollständige native Unterstützung für RTL-Layouts (von rechts nach links) einschließlich Layout-Spiegelung. Mit nativer RTL-Unterstützung können Sie allen Ihren Nutzern die gleiche hervorragende App-Erfahrung bieten, unabhängig davon, ob deren Sprache ein linksläufiges oder von links nach rechts gelesenes Skript verwendet.
Wenn der Nutzer die Systemsprache zu einem linksläufigen Skript wechselt, werden vom System jetzt neben der Bidi-Spiegelung von Textelementen sowohl für das Lesen als auch für die Zeicheneingabe automatisch die UI-Layouts der App sowie alle Anzeige-Widgets gespiegelt.
Ihre App kann die RTL-Layoutspiegelung mit minimalem Aufwand nutzen. Wenn Sie möchten, dass die App gespiegelt wird, deklarieren Sie einfach ein neues Attribut in Ihrem App-Manifest und ändern Sie alle Layouteigenschaften „links/rechts“ in neue „Anfang/Ende“-Äquivalente. Das System übernimmt dann die Spiegelung und Anzeige Ihrer UI entsprechend.
Für eine präzise Steuerung der App-Benutzeroberfläche enthält Android 4.2 neue APIs, mit denen Sie Layoutrichtung, Textrichtung, Textausrichtung, Schwerkraft und Gebietsschemarichtung in Ansichtskomponenten verwalten können. Du kannst sogar benutzerdefinierte Versionen von Layout, Drawables und anderen Ressourcen erstellen, die angezeigt werden, wenn ein von rechts nach links geschriebenes Skript verwendet wird.
Um Sie beim Debuggen und Optimieren Ihrer benutzerdefinierten von rechts nach links laufenden Layouts zu unterstützen, können Sie mit dem Tool HierarchyViewer jetzt Start- und Endeigenschaften, Layoutrichtung, Textrichtung und Textausrichtung für alle Ansichten in der Hierarchie sehen.
Verbesserungen für internationale Sprachen
Android 4.2 umfasst eine Vielzahl von Schriftart- und Zeichenoptimierungen für internationale Nutzer:
- Für koreanische Nutzer gibt es eine neue Schriftartauswahl: Nanum (나눔글꼴) Gothic, eine Unicode-Schriftart, die speziell für die koreanische Schrift entwickelt wurde.
- Verbesserte Unterstützung für vertikalen Text in Japan, der in WebViews angezeigt wird.
- Die Unterschneidung und Positionierung von Schriftarten für indische, thailändische, arabische und hebräische Standardschriftarten wurde verbessert.
Die Standard-Android-Tastatur enthält außerdem eine aktualisierte Reihe von Wörterbüchern:
- Verbesserte Wörterbücher für Französisch (mit Bigram-Unterstützung), Englisch und Russisch
- Neue Wörterbücher für Dänisch, Griechisch, Finnisch, Litauisch, Lettisch, Polnisch, Slowenisch, Serbisch, Schwedisch, Türkisch
Neue Möglichkeiten zum Erstellen einer ansprechenden Benutzeroberfläche
Verschachtelte Fragmente
Für mehr Kontrolle über Ihre UI-Komponenten und um sie modularer zu gestalten, können Sie mit Android 4.2 Fragmente in Fragmenten verschachteln. Für jedes Fragment können Sie mit einem neuen Fragmentmanager andere Fragmente als untergeordnete Knoten in der Ansichtshierarchie einfügen.
Sie können verschachtelte Fragmente auf verschiedene Arten verwenden, aber sie sind besonders nützlich, um dynamische und wiederverwendbare UI-Komponenten innerhalb einer UI-Komponente zu implementieren, die selbst dynamisch und wiederverwendbar ist. Wenn Sie beispielsweise ViewPager verwenden, um Fragmente zu erstellen, die nach links und rechts wischen, können Sie jetzt Fragmente in jedes Fragment des View-Pager einfügen.
Damit Sie verschachtelte Fragmente in mehr Bereichen Ihrer App nutzen können, wurde diese Funktion der neuesten Version der Android-Supportbibliothek hinzugefügt.
Bedienungshilfen
Mit dem System können Bedienungshilfen jetzt im Modus „Tippen & Entdecken“ zwischen Touch-Gesten und Bedienungshilfen unterscheiden. Wenn ein Nutzer den Bildschirm berührt, benachrichtigt das System den Dienst, dass eine allgemeine Touch-Interaktion gestartet wurde. Anschließend wird die Geschwindigkeit der Touch-Interaktion erfasst und bestimmt, ob es sich um eine Touch-Erkundung (langsam) oder eine Bedienungshilfe-Geste (schnell) handelt, und benachrichtigt den Dienst. Wenn die Touch-Interaktion endet, benachrichtigt das System den Dienst.
Das System bietet eine neue globale Option für Bedienungshilfen, mit der ein Bedienungshilfendienst das Menü „Schnelleinstellungen“ auf Grundlage einer Nutzeraktion öffnen kann. In Android 4.2 wurde außerdem ein neuer Feedbacktyp zur Barrierefreiheit für Braillegeräte hinzugefügt.
Damit Bedienungshilfen einen Einblick in die Bedeutung von Ansichten für Barrierefreiheit erhalten, bietet das Framework neue APIs zum Zuweisen einer Ansicht als Label für eine andere Ansicht. Das Label für die einzelnen Ansichten ist über AccessibilityNodeInfo für Bedienungshilfen verfügbar.
Verbesserte Kamera mit HDR
Mit Android 4.2 wird eine neue Kamerahardware-Schnittstelle und -Pipeline zur Verbesserung der Leistung eingeführt. Auf unterstützten Geräten können Apps einen neuen HDR-Kameraszenenmodus verwenden, um ein Bild mit High Dynamic Range-Bildtechniken aufzunehmen.
Außerdem bietet das Framework jetzt eine API, mit der Apps prüfen können, ob das Auslösegeräusch deaktiviert werden kann. Der Nutzer kann den Ton dann in Apps deaktivieren oder einen anderen Ton anstelle des standardmäßigen Auslösegeräuschtons auswählen (empfohlen).
Renderscript-Berechnung
In Android 4.2 bietet Renderscript Compute neue Skriptfunktionen, neue Optimierungen und eine direkte GPU-Integration für maximale Leistung bei Rechenvorgängen.
Filterscript
Filterscript ist eine Untergruppe von RenderScript, die auf die optimierte Bildverarbeitung für eine Vielzahl von Geräte-Chipsätzen ausgerichtet ist. Entwickler können ihre Bildverarbeitungsvorgänge in Filterscript mit der standardmäßigen Renderscript Runtime API schreiben. Dabei gelten strengere Einschränkungen, die für eine größere Kompatibilität und eine verbesserte Optimierung für CPUs, GPUs und DSPs sorgen.
Filterscript eignet sich ideal für hardwarebeschleunigte einfache Bildverarbeitungs- und Berechnungsvorgänge, z. B. solche, die für OpenGL ES-Fragment-Shader geschrieben werden. Da die Einschränkungen für die Hardware gelockert werden, werden Ihre Vorgänge auf mehr Arten von Gerätechipsätzen optimiert und beschleunigt. Alle API-Level 17 oder höher für Apps können Filterscript verwenden.
Skript-Grundlagen
In Android 4.2 unterstützt RenderScript eine Reihe von Skripteigenschaften, d. h. vorab implementierte Filterprimitive, die beschleunigt werden, um die Menge des zu schreibenden Codes zu reduzieren und dafür zu sorgen, dass Ihre App das maximal mögliche Leistungssteigerungen erzielt.
Intrinsische Elemente sind für Mischungen, Weichzeichnen, Farbmatrix, 3×3- und 5:5-Faltung, eine Suchtabelle pro Kanal und die Konvertierung eines Android-YUV-Zwischenspeichers in RGB verfügbar.
Skriptgruppen
Sie können jetzt Gruppen von Renderscript-Skripts erstellen und alle mit einem einzigen Aufruf so ausführen, als wären sie Teil eines einzigen Skripts. Dadurch kann Renderscript die Ausführung der Skripts auf eine Weise optimieren, die dies nicht möglich wäre, wenn die Skripts einzeln ausgeführt würden.
Renderscript-Bildverarbeitungs-Benchmarks werden nur auf einem Galaxy Nexus-Gerät auf verschiedenen Android-Plattformversionen (Android 4.0, 4.1 und 4.2) mit CPU ausgeführt.
Die Renderscript-Bildverarbeitungs-Benchmarks vergleichen die mit GPU + CPU ausgeführten Vorgänge mit denen, die nur auf einem Nexus 10-Gerät ausgeführt werden.
Wenn Sie einen gerichteten azyklischen Graphen von Renderscript-Vorgängen ausführen möchten, können Sie eine Builder-Klasse verwenden, um eine Skriptgruppe zu erstellen, die die Vorgänge definiert. Bei der Ausführung optimiert Renderscript die Ausführungsreihenfolge und die Verbindungen zwischen diesen Vorgängen, um eine optimale Leistung zu erzielen.
Kontinuierliche Optimierungsverbesserungen
Wenn Sie Renderscript für Rechenvorgänge verwenden, profitieren Ihre Anwendungen von kontinuierlichen Leistungs- und Optimierungsverbesserungen in der Renderscript-Engine selbst, ohne dass sich dies auf Ihren App-Code oder eine Neukompilierung auswirkt.
Mit zunehmender Optimierung werden Ihre Vorgänge schneller und auf mehr Chipsätzen ausgeführt, ohne dass Sie etwas dafür tun müssen. Das Diagramm auf der rechten Seite zeigt die Leistungssteigerung, die durch die fortlaufenden Verbesserungen der Renderscript-Optimierung in aufeinanderfolgenden Versionen der Android-Plattform erzielt wurde.
GPU-Computing
Renderscript Compute ist die erste Rechenplattform, die direkt auf der GPU eines Mobilgeräts ausgeführt werden kann. Nach Möglichkeit werden jetzt automatisch GPU-Rechenressourcen genutzt, um die Leistung zu verbessern. Dank GPU-Einbindung können selbst die komplexesten Berechnungen für Grafik- oder Bildverarbeitung mit einer deutlich verbesserten Leistung ausgeführt werden.
Jede App, die Renderscript auf einem unterstützten Gerät verwendet, kann sofort von dieser GPU-Integration profitieren, ohne neu kompilieren 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 umfasst eine Vielzahl neuer Entwickleroptionen, mit denen Sie noch einfacher tolle, gut aussehende Apps erstellen können, die eine gute Leistung erzielen. Die neuen Optionen bieten Funktionen zum Debugging und zur Profilerstellung für Ihre Anwendung von jedem Gerät oder Emulator aus.
Auf Geräten mit Android 4.2 sind die Entwickleroptionen standardmäßig ausgeblendet, um die Nutzerfreundlichkeit zu verbessern. Du kannst die Entwickleroptionen jederzeit aufrufen, indem du auf jedem kompatiblen Android-Gerät siebenmal auf Einstellungen > Über das Telefon > Build-Nummer tippst.
Zu den neuen Entwickleroptionen in Android 4.2 gehören:
- Fehlerbericht erstellen: Es wird sofort ein Screenshot erstellt, Informationen zum Gerätestatus werden in den lokalen Dateispeicher übertragen und dann an eine neue ausgehende E-Mail angehängt.
- Fehlerberichte im Ein/Aus-Menü: Dem Menü für die Ein/Aus-Taste des Geräts wurde eine neue Option sowie Schnelleinstellungen zum Erstellen eines Fehlerberichts hinzugefügt (siehe oben).
- Apps über USB prüfen: Sie können die App-Prüfung auf Sideloading von Apps über USB deaktivieren und gleichzeitig Apps aus anderen Quellen wie dem Browser prüfen. Dies kann den Entwicklungsprozess beschleunigen, während die Sicherheitsfunktion aktiviert bleibt.
- Updates von Hardwareebenen anzeigen: Hardwareebenen werden grün angezeigt, wenn sie aktualisiert werden.
- GPU-Überzeichnung anzeigen: hebt GPU-Überzeichnungsbereiche hervor.
- 4x MSAA erzwingen: Aktiviert 4x MSAA in Open GL ES 2.0-Apps.
- Sekundäre Bildschirme simulieren: Erstellt ein oder mehrere nicht sichere Overlay-Fenster auf dem aktuellen Bildschirm, um sie als simulierte Remote-Anzeige zu verwenden. Sie können die Größe und Dichte des simulierten Displays steuern.
- OpenGL-Traces aktivieren: Damit können Sie die OpenGL-Ausführung mit Logcat, Systrace oder Aufrufstack für glGetError verfolgen.
Neue Plattformtechnologien
Android 4.2 umfasst eine Vielzahl neuer und erweiterter Plattformtechnologien zur Unterstützung innovativer Kommunikationsanwendungsfälle auf einer Vielzahl von Hardwaregeräten. In den meisten Fällen haben die neuen Plattformtechnologien und -verbesserungen keine direkten Auswirkungen auf Ihre Apps, sodass Sie ohne Änderung davon profitieren können.
Erhöhte Sicherheit
Jede Android-Version enthält Dutzende von Sicherheitsverbesserungen zum Schutz der Nutzer. Hier sind einige der Verbesserungen in Android 4.2:
- Anwendungsüberprüfung: Nutzer können die Option "Apps überprüfen" aktivieren und Anwendungen vor der Installation von einer Anwendungsprüfer-Prüfung überprüfen lassen. Mit der App-Überprüfung kann der Nutzer benachrichtigt werden, wenn er versucht, eine potenziell schädliche Anwendung zu installieren. Ist eine Anwendung besonders schädlich, kann sie die Installation blockieren.
- Mehr Kontrolle über Premium-SMS: Android zeigt eine Benachrichtigung an, wenn eine App versucht, SMS an einen Kurzcode zu senden, der Premium-Dienste verwendet. Dies kann zu zusätzlichen Kosten führen. Der Nutzer kann auswählen, ob die Anwendung das Senden der Nachricht zulassen oder blockieren soll.
- Durchgehend aktives VPN – VPN kann so konfiguriert werden, dass Anwendungen erst dann Zugriff auf das Netzwerk haben, wenn eine VPN-Verbindung hergestellt wurde. Dadurch wird verhindert, dass Anwendungen Daten über andere Netzwerke senden.
- Zertifikat anpinnen: Die libcore-SSL-Implementierung unterstützt jetzt das „Certificate Pinning“. Angepinnte Domains schlagen fehl, wenn das Zertifikat nicht mit einer Reihe erwarteter Zertifikate verkettet ist. Dies schützt vor möglichen Gefährdungen von Zertifizierungsstellen.
- Verbesserte Anzeige von Android-Berechtigungen: Berechtigungen wurden in Gruppen organisiert, die für Nutzer besser verständlich sind. Während der Überprüfung der Berechtigungen kann der Nutzer auf die Berechtigung klicken, um detailliertere Informationen zur Berechtigung aufzurufen.
- installd Harening: Der installierte Daemon wird nicht als Root-Nutzer ausgeführt, wodurch die potenzielle Angriffsfläche für die Ausweitung der Root-Rechte reduziert wird.
- init-Skripthärtung: Init-Skripts wenden jetzt die O_NOFOLLOW-Semantik an, um Angriffe im Zusammenhang mit Symlink zu verhindern.
- FORTIFY_SOURCE: Android implementiert jetzt FORTIFY_SOURCE. Dieser wird von Systembibliotheken und Anwendungen verwendet, um eine Beschädigung des Arbeitsspeichers zu verhindern.
- ContentProvider-Standardkonfiguration: Bei Anwendungen, deren Ziel-API-Level 17 das Ziel-API-Level 17 ist, ist „export“ für jeden ContentProvider standardmäßig auf „false“ gesetzt, wodurch die standardmäßige Angriffsfläche für Anwendungen reduziert wird.
- 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 wurde hinzugefügt.
- Sicherheitsupdates – Aktualisierte Open-Source-Bibliotheken mit Sicherheitsupdates umfassen WebKit, libpng, OpenSSL und LibXML. Android 4.2 enthält außerdem Fehlerkorrekturen für Android-spezifische Sicherheitslücken. Mitgliedern der Open Handset Alliance wurden Informationen zu diesen Sicherheitslücken zur Verfügung gestellt. Fehlerbehebungen sind im Android Open Source-Projekt verfügbar. Einige Geräte mit älteren Android-Versionen können diese Fehlerkorrekturen ebenfalls enthalten, um die Sicherheit zu verbessern.
Neuer Bluetooth-Stack
Mit Android 4.2 wird ein neuer Bluetooth-Stack eingeführt, der für die Verwendung mit Android-Geräten optimiert ist. Der neue Bluetooth-Stack, der in Zusammenarbeit von Google und Broadcom entwickelt wurde, ersetzt den auf BlueZ basierenden Stack und bietet verbesserte Kompatibilität und Zuverlässigkeit.Audio mit niedriger Latenz
Android 4.2 verbessert die Unterstützung für die Audiowiedergabe mit niedriger Latenz, angefangen mit den Verbesserungen in Android 4.1 für die Audioausgabelatenz mithilfe von OpenSL, Soundpool und Tone Generator APIs. Diese Verbesserungen hängen von der Hardwareunterstützung ab. Geräte, die diese Audiofunktionen mit niedriger Latenz bieten, können ihre Unterstützung für Anwendungen durch eine Hardwarefunktionskonstante bewerben. Es werden neue AudioManager APIs bereitgestellt, um die native Audio-Abtastrate und -Zwischenspeichergröße abzufragen, um sie auf Geräten zu verwenden, die diese Funktion benötigen.
Neue Benutzeroberfläche für die Kamerahardware
Mit Android 4.2 wird eine neue Implementierung des Kamerastapels eingeführt. Das Kamera-Subsystem enthält die Implementierungen für Komponenten in der Kamera-Pipeline, z. B. die Aufnahme des Burst-Modus mit Verarbeitungssteuerungen.Neue NFC-Hardwareschnittstelle und Controller-Schnittstelle
Mit Android 4.2 wird Unterstützung für Controller eingeführt, die auf dem NCI-Standard aus dem NFC-Forum basieren. NCI stellt ein Standardkommunikationsprotokoll zwischen einem NFC-Controller (NFCC) und einem Gerätehost bereit, und der neue NFC-Stack, der in Zusammenarbeit zwischen Google und Broadcom entwickelt wurde, unterstützt es.Dalvik-Laufzeitoptimierungen
Die Dalvik-Laufzeit umfasst Verbesserungen für Leistung und Sicherheit für eine breitere Palette von Architekturen:
- x86 JIT-Support von Intel und MIPS JIT-Support von MIPS
- Optimierte Parameter für die automatische Speicherbereinigung für Geräte mit mehr als 512 MB
- Für die Standardimplementierungen von SecureRandom und Cipher.RSA wird jetzt OpenSSL verwendet
- SSLSocket-Unterstützung für TLSv1.1 und TLSv1.2 über OpenSSL 1.0.1
- Neue intrinsische Unterstützung für die StrictMath-Methoden „abs“, „min“, „max“ und „sqrt“
- BouncyCastle auf Version 1.47 aktualisiert
- zlib auf 1.27 aktualisiert
- dlmalloc wurde auf 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 nutzerfreundlichste Android-Version. Wir haben auf der gesamten Plattform Verbesserungen vorgenommen und tolle neue Funktionen für Nutzer und Entwickler hinzugefügt. Dieses Dokument bietet einen Einblick in die Neuerungen für Entwickler.
Ausführliche Informationen zu den neuen Entwickler-APIs finden Sie im Dokument zu Android 4.1 APIs.
Weitere Informationen zu den Jelly-Bean-Funktionen für Nutzer finden Sie unter www.android.com.
Schneller, flüssiger, reaktionsschneller
Android 4.1 ist für die beste Leistung bei Android und die niedrigste Touch-Latenz optimiert – und das in einer nutzerfreundlichen, intuitiven Benutzeroberfläche.
Um eine konsistente Framerate zu gewährleisten, erweitert Android 4.1 das vSync-Timing auf alle Zeichnungen und Animationen, die vom Android-Framework ausgeführt werden. Alles läuft im Gleichschritt mit einem 16-Millisekunden-VSync-Heartbeat – Anwendungs-Rendering, Touch-Ereignisse, Bildschirmzusammenstellung und Display-Aktualisierung – damit die Frames nicht übersehen werden.
Mit Android 4.1 wird außerdem eine dreifache Zwischenspeicherung in der Grafikpipeline hinzugefügt, um ein konsistentes Rendering zu ermöglichen, das vom Scrollen über das Paging bis hin zu Animationen alles reibungsloser anfühlt.
Android 4.1 verringert die Touch-Latenz nicht nur durch die Synchronisierung des Touch-Timings mit dem VSync-Zeitpunkt, sondern auch dadurch, dass prognostiziert wird, wo sich Ihr Finger zum Zeitpunkt der Bildschirmaktualisierung befindet. Dies führt zu einer reaktiveren und gleichmäßigeren Touch-Reaktion. Außerdem wendet Android nach einer gewissen Zeit der Inaktivität beim nächsten Touch-Ereignis eine CPU-Eingabeverstärkung an, um sicherzustellen, dass keine Latenz auftritt.
Tools können Ihnen helfen, die bestmögliche Leistung mit Ihren Apps zu erzielen. Android 4.1 ist so konzipiert, dass es mit dem neuen Tool systrace zusammenarbeitet, das Daten direkt aus dem Linux-Kernel sammelt, um ein Gesamtbild der Systemaktivitäten zu erhalten. Die Daten werden als Gruppe vertikal gestapelte Zeitreihendiagramme dargestellt, um Rendering-Unterbrechungen und andere Probleme zu erkennen. Das Tool ist jetzt im Android SDK (Tools R20 oder höher) verfügbar.
Verbesserte Bedienungshilfen
Mit neuen APIs für Bedienungshilfen können Sie Touch-Gesten steuern und den Schwerpunkt der Barrierefreiheit festlegen, während sich der Nutzer durch die Bildschirmelemente und Navigationsschaltflächen bewegt. Dabei werden Gesten für Bedienungshilfen, Zubehör und andere Eingaben verwendet. Das TalkBack-System und die Funktion "Tippen & Entdecken" wurden umgestaltet, um die Barrierefreiheit zu optimieren und Entwicklern damit eine umfassende Reihe von APIs zur Verfügung zu stellen.
Bedienungshilfen können eigene Anleitungen mit den Einstellungen für Bedienungshilfen verknüpfen, um Nutzern die Konfiguration und Verwendung ihrer Dienste zu erleichtern.
Apps, die Standard-View-Komponenten verwenden, übernehmen die Unterstützung für die neuen Bedienungshilfen automatisch, ohne Änderungen am Code. Apps, die benutzerdefinierte Ansichten verwenden, können mithilfe neuer Bedienungshilfen-Knoten-APIs die Teile der Ansicht anzeigen, die für Bedienungshilfen-Dienste von Interesse sind.
Unterstützung für internationale Nutzer
Unterstützung für bidirektionale Texte und andere Sprachen
Mit Android 4.1 können Sie mehr Nutzer erreichen, da in den Elementen TextView und EditText bidirektionaler Text unterstützt wird. Apps können in rechtsläufigen oder linksläufigen Skripts Text anzeigen oder Text bearbeiten. Apps können neue Sprachen für Arabisch und Hebräisch sowie die zugehörigen Schriftarten verwenden.
Neue Sprachunterstützung:
- Weitere indische Sprachen: Kannada, Telugu und Malayalam
- Die neuen Emoji-Zeichen aus der Unicode-Version 6.0
- Bessere Glyphenunterstützung für japanische Nutzer (erhält japanische Versionen von Symbolen, wenn die Systemsprache auf Japanisch eingestellt ist)
- Arabische Glyphen, die für WebViews optimiert sind, zusätzlich zu den arabischen Glyphen für TextViews
- Unterstützung von vertikalem Text in WebViews, einschließlich Ruby-Text und zusätzlicher Glyphen für vertikalen Text
- „Synthetischer Fettdruck“ ist jetzt für alle Schriftarten verfügbar, die keine speziellen fett gedruckten Glyphen haben
Vom Nutzer installierbare Tastaturbelegung
Die Plattform unterstützt jetzt von Nutzern installierbare Tastaturkarten, z. B. für zusätzliche internationale Tastaturen und spezielle Layouttypen. Android 4.1 umfasst standardmäßig 27 internationale Tastaturbelegungen, einschließlich Dvorak. Wenn Nutzer eine Tastatur anschließen, können sie in den Einstellungen eine oder mehrere Tastaturbelegungen auswählen, die sie für diese Tastatur verwenden möchten. Während der Eingabe können Nutzer mithilfe einer Tastenkombination (Strg + Leertaste) zwischen den Tastaturbelegungen wechseln.
Sie können eine App erstellen, um zusätzliche Tastaturbelegungen im System zu veröffentlichen. Das APK würde die Ressourcen für das Tastaturlayout enthalten, basierend auf dem Android-Standardformat für die Tastaturbelegung. Die App kann dem Nutzer zusätzliche Tastaturlayouts anbieten, indem in ihrem Manifest für ACTION_QUERY_KEYBOARD_LAYOUTS ein geeigneter Sendeempfänger deklariert wird.
Neue Möglichkeiten zum Erstellen einer ansprechenden Benutzeroberfläche
Maximierbare Benachrichtigungen
Benachrichtigungen sind schon lange eine einzigartige und beliebte Funktion auf Android-Geräten. Entwickler können sie verwenden, um Nutzern wichtige oder zeitbasierte Informationen in der Benachrichtigungsleiste außerhalb der normalen Benutzeroberfläche der App zu präsentieren.
Mit Android 4.1 wird das Android-Benachrichtigungs-Framework umfassend aktualisiert. Apps können Nutzern jetzt größere und aussagekräftigere Benachrichtigungen anzeigen, die sich durch Auseinander- und Zusammenziehen oder Wischen maximieren und minimieren lassen. Benachrichtigungen unterstützen neue Inhaltstypen (z. B. Fotos), können die Priorität festlegen und sogar mehrere Aktionen enthalten.
Über den verbesserten Benachrichtigungs-Builder können Apps Benachrichtigungen mit einer größeren Fläche von bis zu 256 dp erstellen. Drei Vorlagen für Benachrichtigungen sind verfügbar:
- BigTextStyle – eine Benachrichtigung, die ein mehrzeiliges TextView-Objekt enthält.
- BigInboxStyle – eine Benachrichtigung, die beliebige Listen wie Nachrichten, Überschriften usw. anzeigt.
- BigPictureStyle – eine Benachrichtigung, die visuelle Inhalte wie eine Bitmap präsentiert.
Zusätzlich zu den vordefinierten Stilen können Sie über jede beliebige Remote-Ansicht eigene Benachrichtigungsstile erstellen.
Apps können einer Benachrichtigung bis zu drei Aktionen hinzufügen. Diese werden unter dem Inhalt der Benachrichtigung angezeigt. So können die Nutzer direkt auf alternative Weise auf die Informationen in der Benachrichtigung reagieren, z. B. per E-Mail oder per Anruf, ohne die App aufzurufen.
Mit erweiterbaren Benachrichtigungen können Apps dem Nutzer mühelos und bei Bedarf weitere Informationen bereitstellen. Die Nutzer behalten die Kontrolle und können durch langes Drücken einer Benachrichtigung Informationen zum Absender abrufen und optional weitere Benachrichtigungen der App deaktivieren.
App-Widgets mit anpassbarer Größe
Mit Android 4.1 werden verbesserte App-Widgets eingeführt, deren Größe automatisch angepasst wird – basierend auf der Position des Nutzers auf dem Startbildschirm, der Größe, bei der der Nutzer sie maximiert, und dem Umfang des auf dem Startbildschirm verfügbaren Platzes. Mit den neuen App Widget APIs können Sie den Inhalt Ihres App-Widgets 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, sodass der Inhalt im Widget bei Bedarf neu geladen werden kann. Ein Widget kann beispielsweise größere, ansprechendere Grafiken oder zusätzliche Funktionen oder Optionen anzeigen. Entwickler können weiterhin die Kontrolle über Maximal- und Mindestgrößen behalten und andere Widget-Optionen bei Bedarf aktualisieren.
Sie können für Ihre Widgets auch separate Layouts im Hoch- und Querformat bereitstellen, sodass sich das System bei einer Änderung der Bildschirmausrichtung entsprechend aufbläht.
App-Widgets können jetzt über einen neuen Bindungs-Intent (AppWidgetManager.ACTION_APPWIDGET_BIND) in Launchern von Drittanbietern und anderen Host-Apps angezeigt werden.
Vereinfachte Aufgabennavigation
Mit Android 4.1 kannst du ganz einfach die Navigation in der Nach-oben-Taste verwalten, die Nutzern innerhalb deiner Apps zur Verfügung steht, und sorgt für eine einheitliche Nutzererfahrung.
Sie können für einzelne Activity-Komponenten Ihrer Benutzeroberfläche die vorgesehene Nach oben-Navigation definieren, indem Sie der Manifestdatei der App ein neues XML-Attribut hinzufügen. Wenn Aktivitäten gestartet werden, extrahiert das System während der Laufzeit den Navigationsbaum „Nach oben“ aus der Manifestdatei und erstellt automatisch die Navigation „Nach oben“ in der Aktionsleiste. Entwickler, die die Aufwärtsnavigation im Manifest deklarieren, müssen die Navigation bei der Laufzeit nicht mehr nach Callback verwalten, können dies jedoch bei Bedarf auch tun.
Ebenfalls verfügbar ist eine neue TaskStackBuilder-Klasse, mit der Sie schnell einen synthetischen Aufgaben-Stack zusammenstellen können, der sofort gestartet oder verwendet wird, wenn eine Activity von einem PendingIntent gestartet wird. Das Erstellen eines synthetischen Aufgaben-Stacks ist besonders nützlich, wenn Nutzer Aktivitäten aus Remote-Ansichten starten, z. B. über Widgets und Benachrichtigungen auf dem Startbildschirm, da der Entwickler auf diese Weise eine verwaltete, einheitliche Oberfläche für die Zurück-Navigation bereitstellen kann.
Einfache Animationen zum Starten der Aktivität
Mit der neuen Hilfsklasse ActivityOptions können Sie die Animation erstellen und steuern, die beim Start der Aktivitäten angezeigt wird. Über die Hilfsklasse können Sie benutzerdefinierte Animationsressourcen angeben, die beim Start der Aktivität verwendet werden, oder neue Zoomanimationen anfordern, die von einem beliebigen auf dem Bildschirm angegebenen Rechteck beginnen und optional eine Miniaturansicht-Bitmap enthalten.
Wechsel zu den Modi „Licht aus“ und „Vollbild“
Mit den neuen System-UI-Flags in der Ansicht können Sie problemlos von einer normalen App-Benutzeroberfläche (mit sichtbarer Aktionsleiste, Navigationsleiste und Systemleiste) zum „Licht aus“-Modus (mit ausgeblendeter Statusleiste und Aktionsleiste und gedimmter Navigationsleiste) oder zum „Vollbildmodus“ (Status-, Aktionsleiste und Navigationsleiste alle ausgeblendet) wechseln.
Neue Arten von remote verfügbaren Ansichten
Entwickler können jetzt in den Startbildschirm-Widgets und -Benachrichtigungen die Ansichten GridLayout und ViewStub verwenden. Mit GridLayout können Sie den Inhalt Ihrer Remote-Ansichten strukturieren und die Ausrichtung untergeordneter Ansichten in einer flachen UI-Hierarchie verwalten. ViewStub ist eine unsichtbare Ansicht mit Nullgröße, die verwendet werden kann, um Layoutressourcen während der Laufzeit verzögert aufzublähen.
Vorschau für Live-Hintergrund
Mit Android 4.1 ist es für Nutzer einfacher, Live-Hintergründe aus Apps zu finden und zu installieren, in denen sie enthalten sind. Wenn Ihre App Live-Hintergründe enthält, können Sie jetzt eine Aktivität (ACTION_CHANGE_LIVE_WALLPAPER) starten, bei der dem Nutzer eine Vorschau des Live-Hintergrunds aus Ihrer eigenen App angezeigt wird. Über die Vorschau können Nutzer den Live-Hintergrund direkt laden.
Fotos von Kontakten mit höherer Auflösung
Unter Android 4.1 können Sie Fotos von Kontakten mit einer Größe von bis zu 720 x 720 speichern, um Kontakte noch besser und persönlicher zu gestalten. Apps können Fotos von Kontakten in dieser Größe speichern und abrufen oder eine beliebige andere Größe verwenden. Die maximale Fotogröße, die auf bestimmten Geräten unterstützt wird, kann variieren. Daher sollten Apps zur Laufzeit den integrierten Kontaktanbieter abfragen, um die maximale Größe für das aktuelle Gerät zu ermitteln.
Neue Eingabetypen und Funktionen
Informationen dazu, welche Geräte hinzugefügt und entfernt werden
Apps können sich registrieren, um benachrichtigt zu werden, wenn neue Eingabegeräte über USB, Bluetooth oder einen anderen Verbindungstyp angeschlossen werden. Anhand dieser Informationen können sie den Status oder die Funktionen nach Bedarf ändern. Beispielsweise könnte ein Spiel eine Benachrichtigung erhalten, dass eine neue Tastatur oder ein neuer Joystick angeschlossen ist, was auf das Vorhandensein eines neuen Spielers hinweist.
Funktionen von Eingabegeräten abfragen
Android 4.1 beinhaltet APIs, mit denen Apps und Spiele alle verbundenen und verfügbaren Eingabegeräte optimal nutzen können.
Apps können den Gerätemanager abfragen, um alle derzeit verbundenen Eingabegeräte aufzulisten und sich über die Funktionen der einzelnen Geräte zu informieren.
Vibration auf Eingabegeräten steuern
Neben anderen Funktionen können Apps jetzt jeden Vibrationsdienst nutzen, der mit einem verbundenen Eingabegerät verknüpft ist, z. B. für Rumble Pak-Controller.
Animation und Grafik
VSync für Apps
Die Erweiterung von vsync im gesamten Android-Framework führt zu einer konsistenteren Framerate und einer flüssigen, stabilen Benutzeroberfläche. Damit Apps ebenfalls profitieren, verlängert Android 4.1 das vSync-Timing auf alle Zeichnungen und Animationen, die von Apps initiiert werden. Dadurch können sie Vorgänge im UI-Thread optimieren und eine stabile Zeitbasis für die Synchronisierung bereitstellen.
Apps können das vsync-Timing über das Animations-Framework von Android kostenlos nutzen. Das Animations-Framework verwendet jetzt das vsync-Timing, um die Synchronisierung zwischen Animatoren automatisch durchzuführen.
Bei speziellen Anwendungen können Apps über APIs, die von einer neuen Choreographer-Klasse zur Verfügung gestellt werden, auf vSync-Zeitangaben zugreifen. Apps können die Entwertung im nächsten vsync-Frame anfordern. Das ist eine gute Möglichkeit, eine Animation zu planen, wenn die App das Animations-Framework nicht verwendet. Für komplexere Anwendungen können Apps einen Callback posten, den die Choreografen-Klasse auf dem nächsten Frame ausführen wird.
Neue Animationsaktionen und Übergangstypen
Mit dem Animations-Framework können Sie jetzt Start- und Endaktionen definieren, die beim Ausführen von ViewPropertyAnimator-Animationen ausgeführt werden sollen, um diese mit anderen Animationen oder Aktionen in der Anwendung zu synchronisieren. Die Aktion kann ein beliebiges ausführbares Objekt ausführen. Das Runnable kann beispielsweise eine andere Animation angeben, die gestartet werden soll, wenn die vorherige beendet ist.
Sie können jetzt auch angeben, dass ein ViewPropertyAnimator während seiner Animation eine Ebene verwendet. Bisher galt es als Best Practice, komplizierte Ansichten zu animieren, indem vor dem Start einer Animation eine Ebene eingerichtet und dann das Ereignis onAnimationEnd() verarbeitet wurde, um die Ebene nach Abschluss der Animation zu entfernen. Jetzt vereinfacht die withLayer()-Methode von ViewPropertyAnimator diesen Vorgang mit einem einzigen Methodenaufruf.
Mit dem neuen Übergangstyp in LayoutTransition können Sie Animationen als Reaktion auf alle Layoutänderungen in einer ViewGroup automatisieren.
Neue Verbindungstypen
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 aneinanderhalten.
In Android 4.1 erleichtert Android Beam das Teilen von Bildern, Videos oder anderen Nutzlasten, indem Bluetooth für die Datenübertragung genutzt wird. Wenn der Nutzer eine Übertragung auslöst, übergibt Android Beam von NFC zu Bluetooth, was die Übertragung einer Datei von einem Gerät auf ein anderes sehr einfach verwalten kann.
Ermittlung der WLAN-Netzwerkdienste
Mit Android 4.1 wird die DNS-basierte Diensterkennung für Multicast unterstützt. Damit können Anwendungen Dienste von Peer-Geräten über WLAN finden und eine Verbindung zu ihnen herstellen, z. B. Mobilgeräte, Drucker, Kameras und Mediaplayer. Entwickler können die Erkennung von WLAN-Netzwerken nutzen, um plattform- oder Multiplayer-Spiele und Anwendungen zu erstellen.
Mithilfe der Service Discovery API können Apps jede Art von Dienst erstellen und registrieren, sodass jedes andere NSD-fähige Gerät diese erkennen kann. Der Dienst wird durch Multicast über das Netzwerk hinweg beworben. Dabei wird eine für Menschen lesbare String-ID verwendet, damit der Nutzer den Diensttyp leichter identifizieren kann.
Nutzergeräte können die API verwenden, um Dienste von Geräten, die mit dem lokalen WLAN verbunden sind, zu scannen und zu finden. Nach der Erkennung können Anwendungen die API verwenden, um den Dienst in eine IP-Adresse und einen Port aufzulösen, über den eine Socket-Verbindung hergestellt werden kann.
Sie können diese API nutzen, um neue Funktionen in Ihre Anwendungen zu integrieren. Sie können Nutzern beispielsweise erlauben, eine Verbindung zu einer Webcam, einem Drucker oder einer App auf einem anderen Mobilgerät herzustellen, das Peer-to-Peer-WLAN-Verbindungen unterstützt.
WLAN-P2P-Diensterkennung
Ice Cream Sandwich bietet jetzt Unterstützung für Wi-Fi Peer-to-Peer (P2P), eine Technologie, mit der Apps über eine Peer-to-Peer-Verbindung mit hoher Bandbreite (gemäß dem Wi-Fi DirectTM-Zertifizierungsprogramm der Wi-Fi DirectTM) deine Anwendungen erkennen und direkt koppeln können. Wi-Fi P2P ist eine ideale Möglichkeit, Medien, Fotos, Dateien und andere Datentypen und Sitzungen zu teilen, auch wenn kein Mobilfunknetz oder WLAN verfügbar ist.
Android 4.1 führt Wi-Fi P2P noch weiter und bietet API-Unterstützung für die Erkennung von vorab verknüpften Diensten. Dank der vorab verknüpften Diensterkennung erhalten Ihre Apps von Geräten in der Nähe nützliche Informationen zu den von ihnen unterstützten Diensten, bevor sie versuchen, eine Verbindung herzustellen. Apps können die Erkennung für einen bestimmten Dienst initiieren und die Liste der erkannten Geräte nach den Geräten filtern, die den Zieldienst oder die Zielanwendung tatsächlich unterstützen.
Das bedeutet beispielsweise, dass Ihre App möglicherweise nur Geräte findet, die „Drucker“ sind oder für die ein bestimmtes Spiel verfügbar ist, anstatt alle WLAN-P2P-Geräte in der Nähe zu finden. Andererseits kann Ihre App den von ihr bereitgestellten Dienst für andere Geräte bewerben, die ihn erkennen und dann eine Verbindung aushandeln können. Dies vereinfacht die Erkennung und Kopplung für Nutzer erheblich und ermöglicht Apps, Wi-Fi P2P effektiver zu nutzen.
Mit der WLAN-P2P-Diensterkennung können Sie Apps und Multiplayer-Spiele erstellen, mit denen sich Fotos, Videos, Spiele, Spielstände und so gut wie alles andere teilen lassen – ohne Internet oder Mobilfunknetz. Ihre Nutzer können sich nur über eine direkte P2P-Verbindung verbinden, wodurch die mobile Bandbreite vermieden wird.
Verwaltung der Netzwerkbandbreite
Mit Android 4.1 können Apps die Datennutzung angemessen verwalten, wenn das Gerät mit einem kostenpflichtigen Netzwerk verbunden ist, einschließlich Tethering zu einem mobilen Hotspot. Apps können abfragen, ob das aktuelle Netzwerk kostenpflichtig ist, bevor ein großer Download gestartet wird, der für den Nutzer relativ teuer wäre. Mithilfe der API können Sie sich jetzt ein klares Bild davon machen, welche Netzwerke empfindlich auf die Datennutzung reagieren, und Ihre Netzwerkaktivität entsprechend verwalten.
Neue Medienfunktionen
Medien-Codec-Zugriff
Android 4.1 bietet Low-Level-Zugriff auf Plattform-Hardware- und -Software-Codecs. Apps können eine Abfrage an das System senden, um herauszufinden, welche untergeordneten Medien-Codecs auf dem Gerät verfügbar sind, und diese dann entsprechend zu verwenden. Sie können jetzt beispielsweise mehrere Instanzen eines Medien-Codecs erstellen, Eingabepuffer in eine Warteschlange stellen und Ausgabepuffer erhalten. Außerdem unterstützt das Media-Codec-Framework geschützte Inhalte. Apps können einen verfügbaren Codec abfragen, der in der Lage ist, geschützte Inhalte mit einer auf dem Gerät verfügbaren DRM-Lösung abzuspielen.
USB-Audio
Durch die Unterstützung der USB-Audioausgabe können Hardwareanbieter Hardware wie Audiodocks erstellen, die als Schnittstelle zu Android-Geräten verbunden sind. Diese Funktion ist auch im Open Accessory Development Kit (ADK) von Android verfügbar, damit alle Entwickler ihre eigene Hardware erstellen können.
Auslöser von Audioaufnahmen
Auf Android-Geräten kannst du jetzt Audioaufnahmen auslösen, wenn die Wiedergabe abgeschlossen ist. Das ist z. B. nützlich, wenn ein Ton abgespielt wird, um Nutzer zu ermutigen, zu sprechen, um ihre Stimme aufzunehmen. Mit dieser Funktion kannst du Aufnahmen synchronisieren, sodass du keine Audioaufnahmen mehr machst, die gerade abgespielt werden. Außerdem wird verhindert, dass Aufnahmen zu spät beginnen.
Mehrkanal-Audio
Android 4.1 unterstützt Mehrkanal-Audio auf Geräten, deren Hardware-Mehrkanal-Audio über den HDMI-Port ausgegeben wird. Mit Multi-Channel-Audio können Sie Nutzern Rich Media-Erlebnisse für Anwendungen wie Spiele, Musik-Apps und Videoplayer bereitstellen. Auf Geräten, die nicht über die unterstützte Hardware verfügen, führt Android das Audio automatisch mit der Anzahl der vom Gerät unterstützten Kanäle (in der Regel Stereo) herunter.
Android 4.1 unterstützt außerdem die Codierung/Decodierung von AAC 5.1-Audio.
Audiovorverarbeitung
Entwickler haben die Möglichkeit, Vorverarbeitungseffekte auf Audioaufnahmen anzuwenden, z. B. zur Verbesserung der Sprachaufnahmequalität, zur Echounterdrückung des akustischen Echos und zur automatischen Verstärkung von Audioinhalten mit uneinheitlicher Lautstärke. Apps, die hochwertige und klare Audioaufnahmen erfordern, profitieren von diesen Präprozessoren.
Audioverkettung
MediaPlayer unterstützt das Verketten von Audiostreams, um Audiodateien ohne Pausen abzuspielen. Dies ist nützlich für Apps, die nahtlose Übergänge zwischen Audiodateien erfordern, wie z. B. Musikplayer, um Alben mit fortlaufenden Titeln oder Spiele abzuspielen.
Medienrouter
Die neuen APIs MediaRouter, MediaRouteActionProvider und MediaRouteButton bieten Standardmechanismen und UI für die Auswahl des Speicherorts für Medien. Unterstützt werden sowohl kabelgebundene Headsets als auch a2dp-Bluetooth-Headsets und -Lautsprecher und Sie können Ihre eigenen Routingoptionen in Ihrer eigenen App hinzufügen.
Renderscript-Berechnung
Android 4.1 erweitert die Renderscript-Berechnung, um Ihnen mehr Flexibilität zu bieten. Sie können in Ihren Renderscript-Computing-Skripts jetzt Texturen generieren. Außerdem sind neue Pragma verfügbar, mit denen Sie die von Ihren Skripts benötigte Gleitkommagenauigkeit definieren können. So können Sie NEON-Anweisungen wie schnelle Vektorberechnungen im CPU-Pfad aktivieren, die mit dem vollständigen IEEE 754-2008-Standard nicht möglich wären.
Sie können jetzt Fehler in Renderscript-Compute-Skripts auf x86-basierten Emulatoren und Hardwaregeräten beheben. Außerdem können Sie mehrere Root-Kernel-Kernel in einer einzigen Renderscript-Quelldatei definieren.
Android-Browser und WebView
In Android 4.1 umfassen der Android-Browser und WebViews die folgenden Verbesserungen:
- Bessere Nutzererfahrung bei HTML5-Videos, einschließlich der Wiedergabe/Pause (Touch-to-Play/Pause) und reibungsloser Übergang vom Inline- in den Vollbildmodus.
- Verbesserte Renderinggeschwindigkeit und geringere Speichernutzung für eine bessere Leistung beim Scrollen und Zoomen.
- Verbesserte Leistung von HTML5-, CSS3- und Canvas-Animationen
- Verbesserte Texteingabe.
- Die JavaScript-Engine (V8) wurde aktualisiert, um die JavaScript-Leistung zu verbessern.
- Unterstützung der aktualisierten HTML5 Media Capture-Spezifikation (das Attribut "Capture" für die Elemente "input type=file")
Google APIs und Google-Dienste
Um die Funktionen von Android noch weiter zu erweitern, sind verschiedene neue Dienste für Android verfügbar.
Google Cloud Messaging für Android
Google Cloud Messaging (GCM) ist ein Dienst, mit dem Entwickler auf Android-Geräten kurze Nachrichtendaten an ihre Nutzer senden können, ohne eine proprietäre Synchronisierungslösung benötigen.
GCM kümmert sich um alle Details der Wiedergabeliste in der Warteschlange und sorgt dafür, dass sie effizient an die Ziel-Android-Geräte gesendet werden. Sie unterstützt Multicasting von Nachrichten und kann mit einer einzigen Anfrage bis zu 1.000 verbundene Geräte gleichzeitig erreichen. Außerdem werden Nutzlasten von Nachrichten unterstützt. Das bedeutet, dass Entwickler zusätzlich zum Senden von Ticker-Nachrichten an eine App auf dem Gerät bis zu 4K an Daten senden können.
Google Cloud Messaging ist für alle Entwickler kostenlos und die Registrierung ist ganz einfach. Informationen zur Registrierung, Downloads und 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 vor der Auslieferung und Speicherung auf einem Gerät mit einem gerätespezifischen Schlüssel verschlüsselt werden.
Updates für intelligente Apps
Intelligente App-Updates sind eine neue Funktion von Google Play, die eine bessere Möglichkeit bietet, App-Updates an Geräte zu senden. Wenn Entwickler ein Update veröffentlichen, stellt Google Play jetzt nur die geänderten Bits und nicht das gesamte APK an die Geräte weiter. Dadurch sind die Updates in den meisten Fällen viel leichter. Das bedeutet, dass sie schneller heruntergeladen werden können, der Akku des Geräts geschont wird und die Bandbreitennutzung im Rahmen des mobilen Datentarifs der Nutzer geschont wird. Im Durchschnitt ist ein Smart 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 Apps integrieren, die über Google Play bereitgestellt werden.
Die Google Play-Dienste werden von Google Play automatisch auf den Endnutzergeräten bereitgestellt. Sie benötigen daher nur eine Thin-Clientbibliothek in Ihren Apps.
Da Ihre Anwendung nur eine kleine Clientbibliothek enthält, können Sie diese Dienste ohne größere Erhöhung der Downloadgröße und des Speicherplatzes nutzen. Außerdem stellt Google Play regelmäßig Updates für die Dienste bereit, ohne dass Entwickler App-Updates veröffentlichen müssen, um diese zu nutzen.
Weitere Informationen zu den in den Google Play-Diensten enthaltenen APIs finden Sie auf der Entwicklerseite der Google Play-Dienste.