Nach monatelangen Spekulationen, Hype und Teasing hat Google offiziell Android 5.0 am 12. November 2014 auf der ganzen Welt veröffentlicht. Das SDK wurde am 3. November verfügbar gemacht. Wir haben schon viel über die Funktionen gewusst, aufgrund des LVorschau SDK, die am 25. Juni 2014 veröffentlicht wurde. Was wir nicht wussten, war, was das Lwürde dafür stehen.
Lutscher war der Name des 5.0-Updates. Rückblickend war Lollipop ein klarer Favorit. Aber wenn genug Zeit zum Spekulieren gegeben wird, hält das Offensichtliche die Macht zur Überraschung bereit.
Lollipop ist ein wichtiges Update für die Android-Plattform. Es ist wohl die bisher größte Veröffentlichung und sicherlich die ehrgeizigste.
Jetzt, da das Android-SDK verfügbar ist, finden Sie hier einige Neuerungen in Android 5.0.
Google hat sich in den letzten Jahren mit jeder Android-Version auf einen bestimmten Entwicklungsaspekt des Betriebssystems konzentriert und wie es verbessert werden kann. Für 5.0 verbesserte sich die Lebensdauer der Batterie.
Das JobScheduler
Mit der API können Sie Jobs zu einem späteren Zeitpunkt oder unter bestimmten Bedingungen asynchron ausführen. JobInfo
Mithilfe von Objekten können die Bedingungen definiert werden, unter denen ein geplanter Job ausgeführt wird.
Dank dieser Ergänzungen haben Entwickler jetzt viel mehr Kontrolle darüber, wann und wie die Batterieentladung ausgeführt wird.
Es gibt eine neue ADBBefehl dumpsys Batteriesätze
Dies kann verwendet werden, um statistische Daten über den Batterieverbrauch eines Geräts zu generieren. Sehen Sie sich den folgenden Befehl an, um zu sehen, wie das funktioniert.
Adb-Shell-Dumpsys-Batterien - geladen
In Lollipop können Benachrichtigungen auf dem Sperrbildschirm angezeigt werden. Entwickler können die Menge der in einer Benachrichtigung angezeigten Informationen über angeben setVisibility
, welche die folgenden Werte akzeptiert:
VISIBILITY_PRIVATE
: Zeigt grundlegende Informationen wie das Benachrichtigungssymbol an, blendet jedoch den Inhalt der Benachrichtigung ausVISIBILITY_PUBLIC
: zeigt den Inhalt der BenachrichtigungVISIBILITY_SECRET
: zeigt nichts, mit Ausnahme des Symbols der BenachrichtigungMetadaten können jetzt zu Benachrichtigungen hinzugefügt werden, um Kategorien und Prioritäten zu berücksichtigen und zusätzliche Kontakte zu erfassen.
Wichtige Benachrichtigungen, wie z. B. eingehende Anrufe, werden in einem Heads-Up-Benachrichtigungsfenster angezeigt, das oben in der aktuellen App angezeigt wird, bis der Benutzer die Benachrichtigung bestätigt oder abweist.
Der letzte Bildschirm wurde in umbenannt Überblick. Mit dem neuen Namen kommen neue APIs hinzu, die die Multitasking-Optionen auf Android verbessern. Sie können Ihre Aktivitäten nun als Aufgaben behandeln und in einem eigenen Fenster auf dem Übersichtsbildschirm anzeigen.
Beispielsweise kann eine Webbrowser-App so eingestellt werden, dass jede Registerkarte ein eigenes Fenster hat. Im vorherigen letzten Bildschirm wurde eine einzelne Browser-App angezeigt.
Wenn Sie eine Website haben, können Sie hinzufügen in Ihrem Kopfzeilenbereich, um die angegebene Farbe als Kopfzeile für Ihre Website im Überblick anzuzeigen.
Alle früheren Android-Versionen haben Dalvik als virtuelle Prozessmaschine verwendet. Anwendungen werden üblicherweise in Java geschrieben, das dann zu Bytecode kompiliert wird. Dieser wird dann in den Dalvik-Bytecode übersetzt und in gespeichert .dex
und .Odex
Dateien, die Dalvik dann verarbeiten kann.
Dies ist eine grundlegende Erklärung für die Laufzeit und hoffentlich vermittelt ihre Bedeutung. Anwendungen werden auf der virtuellen Prozessmaschine ausgeführt, sodass ihre Leistung die Gesamtleistung der App bestimmt und einen Engpass darstellt.
Dalvik verwendet JIT (Just In Time) -Kompilierung, dh die Anwendung wird nur in dem Moment ausgeführt, in dem sie benötigt wird.
ART hingegen verwendet ein AOT (Ahead Of Time) -Kompilierung, um den Bytecode zu kompilieren. Wenn eine Anwendung installiert ist, wird sie von ART zusammengestellt dex2oat
Dienstprogramm, das ausführbare ELF-Dateien anstelle von .odex-Dateien erstellt. Von da an wird die Anwendung von der bereits kompilierten ELF-Programmdatei ausgeführt.
Das spart beim Kompilieren eine Menge Zeit, die sich aus längeren Installationszeiten und zusätzlichem Speicherplatz ergibt.
Mit der verbesserten Garbage Collection (GC) übertrifft ART Dalvik in nahezu jeder Hinsicht und sorgt für ein schärferes und flüssigeres Android-Erlebnis.
Um Ihre App auf große Bildschirme zu bringen, führt Lollipop die Leanback UI und das Android TV Input Framework (TIF). Die Leanback-Bibliothek bietet Benutzeroberflächen-Widgets für TV-Apps. Mit TIF können TV-Apps Videostreams von Quellen wie HDMI-Eingängen, TV-Tunern und IPTV-Empfängern verarbeiten.
Khronos OpenGL ES 3.1 wurde hinzugefügt. Hauptmerkmale sind:
Android 5.0 ist weiterhin abwärtskompatibel mit OpenGL ES 2.0 und 3.0.
Zur Ergänzung von OpenGL ES 3.1 wurde eine Reihe von OpenGL ES-Erweiterungen hinzugefügt, die Folgendes zulassen:
Android Lollipop enthält eine neue Version von Chromium für Web View, basierend auf der Chrom m37 Release, das Unterstützung für WebAudio hinzufügt, WebRTC und WebGL.
Die systemeigene Unterstützung für Webkomponenten ist ebenfalls im Update enthalten und ermöglicht die Verwendung von Polymer und dessen Komponenten Material Design Elemente ohne Polyfills.
Seit Android 5.0 ist Chromium jetzt über den Play Store aktualisierbar, sodass neue APIs und Fehlerbehebungen sofort verfügbar sind und keine Aktualisierung des Android-Betriebssystems erforderlich ist.
Das neue android.media.browse
Die API ermöglicht Apps das Durchsuchen der Medieninhaltsbibliothek anderer Apps. Das MediaBrowserService
Klasse wird verwendet, um Medien in einer Anwendung anzuzeigen, während die MediaBrowser
Klasse wird verwendet, um mit einem Medienbrowser-Dienst zu interagieren.
Es wurden zwei neue Klassen eingeführt, um die Steuerung der Wiedergabe über verschiedene Benutzeroberflächen und Dienste hinweg zu vereinfachen.
MediaSession
ersetzt RemoteControlClient
. Es bietet eine Reihe von Rückrufmethoden für die Verwendung in Transportsteuerelementen und Medienschaltflächen. MediaController
kann zum Erstellen einer benutzerdefinierten Mediencontroller-App verwendet werden, mit der dann Befehle an eine gesendet werden können MediaSession
.
Zwei neue Sensoren wurden eingeführt:
Natürlich benötigen beide Sensoren unterstützte Hardware.
Geräteadministratoren können a verwenden Managed Provisioning Service Hinzufügen von Apps zu einem separaten verwalteten Profil. Wenn auf einem bereitgestellten Gerät ein persönliches Konto vorhanden ist, werden die Apps für verwaltete Profile neben den vorhandenen Anwendungen angezeigt.
Ein Gerätebesitzer ist ein spezieller Typ von Geräteadministrator, der sekundäre Benutzer erstellen und entfernen sowie globale Einstellungen konfigurieren kann, wodurch Android im Wesentlichen ein herkömmliches Administrator- und Benutzerkontensystem erhält.
Screen Pinning ist eine neue Funktion, die mit dem Kiosk-Modus unter iOS vergleichbar ist. Screen Pinning beinhaltet die folgenden Funktionen:
Das Screenpinning kann manuell über aktiviert werden Einstellungen> Sicherheit> Screen Pinning. Es kann auch programmgesteuert aktiviert werden. Das startLockTask
Methode kann von Ihrer App aus aufgerufen werden, um das Bildschirmpinning zu aktivieren. Wenn die App nicht von einem Gerätebesitzer stammt, wird eine Bestätigungsaufforderung angezeigt. Das setLockTaskPackages
Die Methode kann von einer Eigentümer-App aufgerufen werden und vermeidet die Aufforderung zur Bestätigung.
Um das Bildschirmpinning zu deaktivieren, müssen Sie anrufen stopLockTask
wenn es von einer Geräteinhaber-App initiiert wurde. Wenn es von einem Besitzer eines anderen Geräts aktiviert wurde, kann der Benutzer den Bildschirm-Pinning-Modus beenden, indem er sowohl die Zurück- als auch die Zurück-Taste gedrückt hält.
Bildschirmaufnahmen sind jetzt durch das Neue möglich android.media.projection
APIs. Die schaffen VirtualDisplay
Mit dieser Methode kann die aufrufende App den Bildschirm in einem Oberflächenobjekt erfassen, das dann über das Netzwerk gesendet werden kann. Die API kann nur nicht sichere Inhalte erfassen und enthält keine Audiodaten.
Dank des neuen ist RAW-Bilderfassung nun auch auf Android angekommen android.hardware.camera2
API.
Android-Geräte können jetzt als fungierenBluetooth LE-Peripheriegeräte. Apps können dies nutzen, um ihre Präsenz bei Geräten in der Nähe anzuzeigen. Mit dem Neuen android.bluetooth.le
Über APIs können Sie Ihren Apps ermöglichen, sich mit nahegelegenen Bluetooth-Geräten zu verbinden, Ankündigungen auszusenden und nach Antworten zu suchen. Diese neuen Funktionen werden auch mit einer neuen Manifestberechtigung geliefert, BLUETOOTH_ADMIN
.
Diese APIs sind äußerst nützlich, wenn Sie mit tragbaren Geräten, Gesundheits- und Fitness-Apps und Überwachungs-Apps arbeiten. All dies sind in naher Zukunft voraussichtliche Wachstumsbereiche für Android.
NFC wurde auf verschiedene Weise verbessert:
invokeBeam
kann verwendet werden, um die gemeinsame Nutzung von Daten zu initiieren. Sie müssen Geräte nicht mehr physisch stoßen.registerAidsForService
und setPreferredService
wurden hinzugefügt, um die Entwicklung von Zahlungs-Apps zu unterstützen.Neue APIs ermöglichen es Apps, Netzwerke nach verfügbaren Funktionen abzufragen, z. B. ob das Netzwerk ein Mobilfunknetz, ein Messgerät oder WLAN ist.
Bitmap-Bilder können jetzt aus PDF-Dokumentseiten mit den neuen gerendert werden PdfRendered
Klasse.
Sie können jetzt verschiedene IMEs aufrufen, die für die Plattform verfügbar sind. Dies wird durch die Verwendung von erreicht shouldOffetToNextInputMethod
Methode.
Eine der größten Funktionen von Android 5.0 ist Material Design. Material Design ist eine Reihe von Richtlinien in Bezug auf visuelles Design, Content-Bewegung und Benutzerinteraktion. Die Richtlinien sollen über Android hinausgehen und sind für eine Vielzahl von Geräten und Plattformen bestimmt.
Polymer ist ein bemerkenswertes Beispiel für die plattformübergreifende Natur von Material Design. Google erstellt mehrere Material Design-Webelemente, um die Erstellung von Websites / Web-Apps mit einem Material Design-Thema zu unterstützen. Trotz seines plattformübergreifenden Charakters bleibt Material Design nach wie vor ein Schwerpunkt von Android 5.0.
Lollipop hat zwei neue Widgets eingeführt:
CardView
: Mit diesem Widget können Informationen konsistent gruppiert werden. Die Tiefe der Karte selbst kann geändert werden, um sie nach Bedarf zu fördern oder hervorzuheben.RecyclerView
: Dies ist eine fortgeschrittenere Version von Listenansicht
Widget.Es gibt zwei neue Themen, die die Prinzipien des Materialdesigns nutzen, Dunkles Material und Leichtes Material. Beide wenden neue Systemoberflächen für Benutzeroberflächen an. System-Widgets lassen sich leicht anpassen und Sie können ihre Farbpalette festlegen. Verschiedene Animationen und Übergänge sind auch Standardeinstellungen dieser Themen, beispielsweise der Ripple-Effekt.
Die Tiefe kann jetzt in Android-Ansichten über die neue Z-Eigenschaft geändert werden. Höhere Z-Werte werfen größere Schatten um die Ansicht, wodurch der Eindruck einer erhöhten Höhe entsteht. Dies ist ein fester Bestandteil des Material Design-Ethos, dessen Ziel es ist, durch die Verwendung von Schichten ein textiles Erscheinungsbild zu schaffen.
Eine weitere Grundlage von Material Design ist die Animation. Touch-Feedback-Animationen und eine Vielzahl von Aktivitätsübergängen unterstützen Sie bei der Erstellung einer taktilen und immersiven Erfahrung. Das Ziel ist nicht, dass Informationen herausspringen oder verschwinden. Jede Ansicht / jedes Objekt sollte als Ebene auf einer Oberfläche erscheinen.
Stellen Sie sich einen schönen, sauberen, weißen Schreibtisch vor. Auf diesem Schreibtisch haben Sie verschiedene Papiere, Haftnotizen und Schreibwaren. Wenn Sie auf den Schreibtisch schauen, ist dies keine flache Ansicht. Das Pult enthält mehrere Ebenen, und Objekte haben unterschiedliche Tiefen und werfen Schatten auf der darunter liegenden Ebene.
Wenn Sie eine Seite unter einer anderen Seite anzeigen müssen, müssen Sie das Deckblatt aus dem Weg räumen. Wenn Sie Ihren Laptop auf den Schreibtisch stellen möchten, müssen Sie die vorhandenen Papiere aus dem Weg schieben, um Platz zu schaffen. Wenn Sie etwas auf Ihrem Schreibtisch berühren, wird es bewegt, gebogen, vibriert und schlurft.
Laden Sie die SDK-Plattform für Version 21 in Ihrer bevorzugten IDE herunter, um mit Android 5.0 zu beginnen. Dies wird höchstwahrscheinlich über den SDK-Manager in Eclipse oder Android Studio durchgeführt.
In dem ApplicationManifest.xml Datei und / oder build.gradle
Datei, stellen Sie die targetSdkVersion
zu 21.
Wichtige Änderungen und Überlegungen:
In der Superheldenwelt gibt es ein Sprichwort: "Mit großer Kraft kommt große Verantwortung." In der Entwicklungscommunity gibt es eine ähnliche: "Mit großen Updates werden umfangreiche Tests durchgeführt."
Hier ist eine kurze Checkliste, wenn Sie bereits eine Android-App haben:
RemoteControlClient
Die Klasse ist jetzt veraltet, sollte ich auf die wechseln MediaSession
API?WebView
blockiert jetzt standardmäßig gemischte Inhalte und Cookies von Drittanbietern. Muss ich verwenden? setMixedContentMode
und setAcceptThirdPartyCookies
?Eine vollständige Liste finden Sie auf der Android Developer-Website.
Eine der größten Änderungen in Android 5.0 ist die Benutzeroberfläche mit der Einführung von Material Design. Die Verwendung von Material Design und die Verwendung der besten Konstruktionspraktiken erfordert viel Rücksicht und Arbeit seitens des Entwicklers.
Für bestehende Apps stehen Entwickler vor weiteren Herausforderungen, z. B. wie die neuen 5.0-Funktionen genutzt werden können, während die Abwärtskompatibilität erhalten bleibt. Dadurch wird eine konsistente Benutzererfahrung über verschiedene API-Ebenen hinweg geboten.
Um zu zeigen, wie Android 5.0 und Material Design in Ihrem Projekt verwendet werden, habe ich eine einfache App erstellt. Es besteht aus einer einzelnen Aktivität, die mehrere Widgets anzeigt. Ich habe dann folgendes hinzugefügt res /
Mappe:
Menü-v21 /
: Dieses enthält eine Kopie der menu_main.xml und wird verwendet, um Material Design-Symbole auf Android 5.0-Geräten anzuzeigen.Werte-v11 /
: Das enthält ein styles.xml Datei, die das Basisdesign festlegt holo.lightfür alle Geräte mit Android 3.0 oder höher. In dieser Datei wurden auch Aussehensänderungen an der Aktionsleiste vorgenommen.Werte-v21 /
: Das enthält ein styles.xml Datei, die das Basisdesign auf material.light setztfür Geräte mit Android 5.0 und höher. Es definiert auch die Grundfarben.Das Bild unten zeigt die App, die auf einem 4.4.2-Gerät und einem 5.0-Gerät ausgeführt wird. Das Material-Design wurde für 5.0+ Geräte angewendet. Andere Geräte erhalten das Thema holo.light. Es zeigt den Standardstatus beider Designs und die Unterschiede zwischen den Benutzeroberflächen.
Mit Material Design war es noch nie einfacher, die Grundfarben Ihrer App für Ihre Marke zu definieren. Wenn Sie beispielsweise den folgenden Code zu Ihrem Design hinzufügen, wird die Benachrichtigung festgelegtHintergrund der Leiste, Hintergrund der Aktionsleiste und Widgets für die Benutzeroberfläche.
Die Ergebnisse können sehr auffällig sein und die App kann mit einem Blick erkennbar werden. Es gibt auch eine Reihe neuer Materialdesign-Symbole, mit denen sich eine moderne Benutzeroberfläche schnell und einfach in jede vorhandene App integrieren lässt.
Hier ein Beispiel für den Unterschied, der durch die Verwendung von Material Design-Symbolen und die Definition der Hauptfarben des Themas erzielt wird:
Die Verwendung der Aktionsleiste und der Farbe ist ein dominierendes Merkmal von Material Design und kann Ihre App effektiv kennzeichnen und unterscheiden. Eine Möglichkeit, eine konsistente Benutzererfahrung für verschiedene API-Ebenen bereitzustellen, besteht darin, diese Funktionen auf Stile und Designs zu übertragen, die für verschiedene API-Ebenen vorgesehen sind.
Wenn wir zum Beispiel die auf einem 4.4.2-Gerät ausgeführte Anwendung mit einem 5.0-Gerät vergleichen:
Wie Sie sehen, haben sie ein sehr charakteristisches Aussehen. Um dies zu verbessern, können wir die gleichen Material Design-Symbole auf API-Ebenen unter 5.0 verwenden. Wir können die Aktionsleiste auch so gestalten, dass sie der Material Design-Version ähnelt.
Für die Symbole können wir die Bilder in ändern res / menu / menu-main.xml zu Material Design Icons. Für die Aktionsleiste können wir die bearbeiten res / values-v11 / styles.xml Datei wie folgt aussehen:
Hier ist ein weiterer Blick auf die beiden nach den Änderungen:
Die Version, die auf dem 4.4.2-Gerät ausgeführt wird, wird mehr als unsere Anwendung und unsere Marke erkennbar. Ohne wesentliche Änderungen sieht die App in den verschiedenen APIs bereits einheitlicher aus und wirkt moderner.
Bestimmte Funktionen sind exklusiv für Android Lollipop, insbesondere die Aktivitätsübergänge und die Animationen. Dies bedeutet nicht unbedingt, dass Sie auf die Verwendung dieser Programme verzichten müssen oder eine separate Anwendung erstellen müssen, die sie verwendet. Sie können die Systemversion zur Laufzeit überprüfen und bestimmte API-Aufrufe nur ausführen, wenn die App auf einer geeigneten Android-Version ausgeführt wird.
Ein Beispiel, um zu überprüfen, ob das System 5.0 oder höher ist:
// Überprüfen Sie, ob wir auf Android 5.0 oder höher laufen, wenn (Build.VERSION.SDK_INT> = Build.VERSION_CODES.LOLLIPOP) // Einige Materialdesign-APIs hier aufrufen else // Implementieren Sie diese Funktion ohne Materialdesign
Nur weil Sie etwas tun können, heißt das nicht immer, dass Sie etwas tun sollten. Das Holo-Theme, das Android seit Honeycomb verwendet, ist absolut in Ordnung. Sie können alternative Layouts und Designs bereitstellen und diese auf verschiedene API-Ebenen anwenden. Beispielsweise könnte das Material Design-Design auf alle Geräte mit einer API von 5.0 und höher angewendet werden. Das Holo-Design gilt für alle Geräte mit einer API von 3.0 und höher. Schließlich könnte das klassische Design auf alle Geräte unter 3.0 angewendet werden.
Dazu würden Sie die folgenden Verzeichnisse in Ihrem Projekt verwenden:
In jedem Verzeichnis können Sie eine styles.xml Datei, die das gewünschte Thema definiert.
Die V7 r21-Unterstützungsbibliotheken unterstützen mehrere Widgets und Funktionen von Material Design.
Theme.AppCompat ermöglicht die Verwendung der Farbpalette, indem eines der AppCompat-Designs erweitert wird. Zum Beispiel, Theme.AppCompat.Light
:
Es bietet auch Materialdesign-Widgets für Folgendes:
Die V7-Support-Bibliothek ermöglicht auch den Zugriff auf die neue CardView
und RecyclerView
Widgets.
Wenn Sie AppCompat in Ihren Layoutentwürfen beibehalten, ist es möglich, ein einzelnes Layout zu erstellen, das über mehrere API-Ebenen hinweg die gleiche Grafik beibehält.
Um die V7-Unterstützungsbibliothek zu verwenden, müssen Sie Ihr Projekt hinzufügen. Wenn Sie Android Studio und Gradle verwenden, können Sie es zu Ihren Abhängigkeiten im Abschnitt hinzufügen build.gradle
Datei:
Abhängigkeiten kompilieren 'com.android.support:appcompat-v7:21.0.+' kompilieren 'com.android.support:cardview-v7:21.0.+' kompilieren 'com.android.support:recyclerview-v7:21.0.+'
Wenn Sie die v7-Unterstützungsbibliothek aufnehmen, müssen Sie Ihre minSdkVersion
zu 7.
Android 5.0 ist eine Hauptversion. Aktualisierungen wie ART und Benachrichtigungen auf dem Bildschirm wirken sich sofort aus. Andere Updates wie Material Design, Overview und Job Scheduling benötigen für die Implementierung und Implementierung von Entwicklern Zeit.
Die Benutzer werden auch eine große Rolle bei der Gestaltung der nahen Zukunft von Android spielen. Frühere Versuche, Android in den TV-Raum zu bringen, wurden nicht gut angenommen. Smart TVs sind im Großen und Ganzen ein Muss-Gerät.
Ein einheitliches und vertrautes Benutzererlebnis über mehrere Geräte und Bildschirme hinweg ist aufregend und meiner Meinung nach auch in Zukunft notwendig. Der Erfolg davon hängt jedoch letztendlich von der Akzeptanz und der Nachfrage der Benutzer ab.
Google hat die Bühne bei der diesjährigen Google I / O bereitet, und mit Lollipop sind die Schauspieler jetzt versammelt. Unabhängig davon, wie lange das Spiel läuft und welche Lobgesänge es erhält, kann niemand sagen, dass Google es nicht versucht hat.