După luni de speculații, de hype și teasing, Google a lansat oficial Android 5.0 în lume la 12 noiembrie 2014. SDK a fost pus la dispoziție pe 3 noiembrie. Știm deja multe despre caracteristici, datorită lui Lprevizualizare SDK care a fost lansată pe 25 iunie 2014. Ceea ce nu știam era ceea ce Lar stărui.
Acadea a fost numele dat actualizării 5.0. Privind înapoi, Lollipop era un favorit clar. Dar, dacă i se dă suficient timp pentru a specula, evidentul încă o dată deține puterea de a surprinde.
Lollipop este o actualizare semnificativă pentru platforma Android. Este, probabil, cea mai mare lansare până în prezent, și cu siguranță cea mai ambițioasă.
Acum, când SDK-ul Android este dezactivat, iată o prezentare a unora dintre noile caracteristici din Android 5.0.
În ultimii ani, Google sa concentrat pe fiecare lansare Android pe un anumit aspect al dezvoltării sistemului de operare și pe modul în care acesta poate fi îmbunătățit. Pentru 5.0, îmbunătățirea duratei de viață a bateriei.
JobScheduler
API vă permite să executați lucrări asincron mai târziu sau în anumite condiții. JobInfo
obiectele pot fi folosite pentru a defini condițiile pe care o lucrare programată se va executa sub.
Datorită acestor adăugiri, dezvoltatorii au acum mult mai mult control asupra momentului și a modului în care sunt îndeplinite sarcinile de descărcare a bateriilor.
Există un nou ADBcomanda dumpsys batterystats
care pot fi folosite pentru a genera date statistice despre utilizarea bateriilor pe un dispozitiv. Uitați-vă la următoarea comandă pentru a vedea cum funcționează aceasta.
adb shell dumpsys acumulatori - încărcate
În Lollipop, notificările pot fi afișate pe ecranul de blocare. Dezvoltatorii pot specifica cantitatea de informații afișate în cadrul unei notificări prin intermediul setVisibility
, care acceptă următoarele valori:
VISIBILITY_PRIVATE
: afișează informații de bază, cum ar fi pictograma notificării, dar ascunde conținutul notificăriiVISIBILITY_PUBLIC
: afișează conținutul notificăriiVISIBILITY_SECRET
: nu arată nimic, excluzând chiar pictograma notificăriiMetadatele pot fi acum adăugate la notificări pentru a permite categoriile și prioritățile și pentru a colecta contacte suplimentare.
Notificările cheie, cum ar fi apelurile primite, vor apărea într-o fereastră de notificare heads-up, care va pluti în partea de sus a aplicației curente până când utilizatorul va recunoaște sau va respinge notificarea.
Ecranul recent a fost redenumit Prezentare generală. Cu noul nume veni noi interfețe API care îmbunătățesc opțiunile de multitasking pe Android. Acum puteți avea activitățile dvs. tratate ca sarcini și puteți fi afișate în fereastra proprie în ecranul de prezentare generală.
De exemplu, o aplicație de browser web poate fi setată astfel încât fiecare filă să aibă o fereastră proprie. În ecranul precedent recent, ar fi afișat o singură aplicație de browser.
Dacă aveți un site web, puteți adăuga în secțiunea antet pentru a avea o prezentare generală, afișați culoarea dată ca antet pentru site-ul dvs. web.
Versiunile anterioare ale Android au folosit cu toții Dalvik ca mașină virtuală de proces. Aplicațiile sunt în mod obișnuit scrise în Java, care este apoi compilat la octet. Acest lucru este apoi tradus în Dalvik bytecode și stocate în .dex
și .ODEX
dosare, pentru ca Dalvik să procedeze ulterior.
Aceasta este o foarte explicație de bază a ceea ce face runtime-ul și, sperăm, îi transmite importanța. Aplicațiile rulează pe mașina virtuală a procesului, astfel încât performanța acesteia determină performanța generală a aplicației și este o piedică.
Dalvik folosește JIT (Just In Time), ceea ce înseamnă că rulează aplicația doar în momentul în care este necesară.
ART, pe de altă parte, folosește un AOT (Ahead Of Time) compilație pentru a compila octetul. Când o aplicație este instalată, aceasta este compilată de ART-uri dex2oat
utilitate, care creează executabile ELF în loc de fișiere .odex. De atunci, aplicația este executată de la executabilul ELF deja compilat.
Este o mulțime de compilații salvate în detrimentul timpilor de instalare a aplicațiilor mai lungi și a spațiului de disc suplimentar.
Odată cu adăugarea unei colecții îmbunătățite de colectare a gunoiului (GC), ART depășește performanța Dalvik în aproape orice fel, făcând astfel o experiență Android mai clară și mai fluidă.
Pentru a vă ajuta să aduceți aplicația dvs. la afișaje de mari dimensiuni, Lollipop introduce UI de la Leanback si Android TV Input Framework (TIF). Biblioteca Leanback oferă widget-uri de interfață utilizator pentru aplicații TV. TIF este proiectat pentru a permite aplicațiilor TV să gestioneze fluxuri video din surse cum ar fi intrările HDMI, tunerele TV și receptoarele IPTV.
A fost adăugat Khronos OpenGL ES 3.1. Printre caracteristicile cheie se numără:
Android 5.0 rămâne compatibil cu OpenGL ES 2.0 și 3.0.
Pentru a completa OpenGL ES 3.1, au fost adăugate un set de extensii OpenGL ES care permit următoarele:
Android Lollipop include o nouă versiune a Chromium for Web View, bazată pe Cromul m37 care adaugă suport pentru WebAudio, WebRTC și WebGL.
Suportul nativ pentru Componentele Web este, de asemenea, inclus în actualizare și va permite utilizarea Polymer și a sa Proiectare materiale elemente fără a necesita polifluziuni.
Începând de la Android 5.0, Chromium este acum actualizabil din Magazin Play, astfel încât noi API-uri și corecții de erori vor fi disponibile imediat și nu vor mai necesita o actualizare a sistemului de operare Android.
Noul android.media.browse
API permite aplicațiilor să navigheze în biblioteca de conținut media a altor aplicații. MediaBrowserService
clasa este folosită pentru a expune media într - o aplicație, în timp ce MediaBrowser
clasa este folosit pentru a interacționa cu un serviciu de browser media.
Două clase noi au fost introduse pentru a face controlul redării să fie mai simplu de gestionat între diferite interfețe utilizator și servicii.
MediaSession
înlocuiește RemoteControlClient
. Acesta oferă un set de metode de apel invers pentru a fi utilizate în comenzile de transport și butoanele media. MediaController
poate fi folosit pentru a crea o aplicație personalizată pentru controlerul media, care poate fi apoi utilizată pentru a trimite comenzi către o MediaSession
.
S-au introdus doi senzori noi:
Desigur, ambii senzori necesită hardware compatibil.
Administratorii de dispozitive pot utiliza a un serviciu de furnizare gestionat pentru a adăuga aplicații la un profil gestionat separat. Dacă există un cont personal existent pe un dispozitiv care a fost furnizat, aplicațiile profilului gestionat vor apărea alături de aplicațiile existente.
Proprietarul dispozitivului este un tip special de administrator de dispozitiv care poate crea și elimina utilizatori secundari și poate configura setările globale, oferind în principal Android un administrator tradițional și un sistem de cont de utilizatori.
Prinderea ecranului este o funcție nouă care este comparabilă cu modul chioșc pe iOS. Prinderea ecranului include următoarele caracteristici:
Prinderea ecranului poate fi activată manual prin Setări> Securitate> Conectarea ecranului. De asemenea, poate fi activat programat. startLockTask
poate fi apelată din aplicația dvs. pentru a activa activarea ecranului. Dacă aplicația nu este de la un proprietar de dispozitiv, va fi afișat un mesaj de confirmare. setLockTaskPackages
metoda poate fi apelată de o aplicație de proprietar și va evita promptul de confirmare.
Pentru a dezactiva fixarea ecranului, trebuie să apelați stopLockTask
dacă a fost inițiată de o aplicație de proprietar de dispozitiv. Dacă a fost activat de un proprietar care nu deține un dispozitiv, utilizatorul poate ieși din modul de fixare a ecranului prin menținerea butoanelor din spate și recente.
Capturarea de ecran este acum posibilă prin intermediul noului android.media.projection
API-uri. Creați VirtualDisplay
permite aplicației de apel să capteze ecranul într-un obiect de suprafață, care poate fi apoi trimis prin rețea. API-ul poate captura numai conținut nesecurizat și nu include audio.
Preluarea imaginilor RAW a sosit în sfârșit pe Android, datorită noului android.hardware.camera2
API-ul.
Dispozitivele Android pot acționa acum caBluetooth periferice LE. Aplicațiile pot folosi acest lucru pentru a-și face cunoscute prezența dispozitivelor din apropiere. Cu noul android.bluetooth.le
API, puteți permite aplicațiilor să se conecteze la dispozitive Bluetooth din apropiere, să difuzeze reclame și să caute răspunsuri. Aceste caracteristici noi vin, de asemenea, cu o nouă permisiune manifestă, BLUETOOTH_ADMIN
.
Aceste API-uri vor fi extrem de utile atunci când lucrați cu dispozitive portabile, aplicații de sănătate și fitness și aplicații de monitorizare. Toate acestea sunt zone de creștere anticipate pentru Android în viitorul apropiat.
NFC a fost îmbunătățită în mai multe moduri:
invokeBeam
poate fi utilizat pentru a iniția schimbul de date. Nu mai trebuie să vă bateți fizic dispozitivele.registerAidsForService
și setPreferredService
au fost adăugate pentru a ajuta la dezvoltarea aplicațiilor de plată.Noile interfețe API permit aplicațiilor să interogheze rețelele pentru funcțiile disponibile, cum ar fi dacă rețeaua este mobilă, măsurată sau Wi-Fi.
Imaginile bitmap pot fi acum redate din paginile documentului PDF, folosind noul PdfRendered
clasă.
Puteți parcurge acum diferite IME-uri disponibile platformei. Acest lucru se realizează prin utilizarea funcției shouldOffetToNextInputMethod
metodă.
Una dintre cele mai mari caracteristici ale Android 5.0 este Material Design. Material Design este un set de linii directoare referitoare la designul vizual, mișcarea conținutului și interacțiunea utilizatorului. Instrucțiunile sunt destinate să depășească sistemul Android și sunt concepute pentru o gamă largă de dispozitive și platforme.
Polimerul este un exemplu notabil al naturii transversale a materialului de design al materialelor, Google creând mai multe elemente web de design material pentru a ajuta la construirea de site-uri web / aplicații web cu tema Material Design. În ciuda naturii transfrontaliere, Material Design rămâne încă un punct focal al Android 5.0.
Lollipop a introdus două widgeturi noi:
CardView
: Acest widget permite ca informațiile să fie grupate împreună într-o manieră consecventă. Cardul în sine poate modifica profunzimea acestuia pentru ao promova sau ao sublinia după cum este necesar.RecyclerView
: Aceasta este o versiune mai avansată a ListView
widget.Există două teme noi care fac uz de principiile de design material, Materialul închis și Materialul de lumină. Ambele aplică noi widget-uri pentru sistemul de interfață utilizator. Widgeturile de sistem sunt ușor de personalizat și puteți seta paleta lor de culori. Mai multe animații și tranziții sunt, de asemenea, defaults de aceste teme, cum ar fi efectul de ripple.
Adâncimea poate fi acum modificată în vizualizările Android prin noua proprietate Z. Valorile Z mai mari aruncă umbre mai mari în jurul vederii, dând aspectul creșterii ridicate. Acesta este un element esențial al etosului de design al materialului, în care obiectivul este de a crea un aspect textil prin utilizarea straturilor.
Un alt tip de Material Design este animația. Atingeți animațiile de feedback și o serie de tranziții de activități, toate ajutând la crearea unei experiențe tactile și imersive. Scopul nu este să existe informații sau să dispară. Fiecare vizualizare / obiect ar trebui să apară ca un strat pe o suprafață.
Imaginați-vă un birou frumos, curat, alb. Pe acest birou aveți diverse lucrări, note post-it și papetărie. Când te uiți la birou, nu este o vedere plată. Biroul conține mai multe straturi, iar obiectele au adâncimi diferite și umbre aruncate pe stratul dedesubt.
Dacă trebuie să vedeți o pagină sub altă pagină, trebuie să mutați pagina de acoperire. Dacă doriți să plasați laptopul pe birou, trebuie să glisați hârtiile existente în afara spațiului pentru a face spațiu. Când atingeți ceva pe birou, se mișcă, se îndoaie, vibrează și se amestecă.
Pentru a începe cu Android 5.0, descărcați platforma SDK pentru v21 în IDE preferat. Acest lucru se va realiza cel mai probabil prin managerul SDK din Eclipse sau Android Studio.
În ApplicationManifest.xml fișier și / sau build.gradle
fișier, setați targetSdkVersion
la 21.
Modificări și considerații importante:
Există o zicală în lumea super-eroului: "Cu mare putere, vine o mare responsabilitate." Există o problemă similară în comunitatea de dezvoltare: "Cu actualizări mari, vine teste extinse".
Iată o listă rapidă de verificare, dacă aveți deja o aplicație Android:
RemoteControlClient
clasa este acum depreciată, așa că ar trebui să trec la MediaSession
API-ul?WebView
acum blochează conținutul mixt și cookie-urile terță parte în mod implicit. Trebuie să folosesc setMixedContentMode
și setAcceptThirdPartyCookies
?O listă completă de liste poate fi găsită pe site-ul Android Developer.
Una dintre cele mai mari schimbări în Android 5.0 este interfața cu introducerea Material Design. Utilizarea materialului de proiectare și punerea în practică a celor mai bune practici de proiectare necesită multă atenție și lucrare din partea dezvoltatorului.
Pentru aplicațiile existente, dezvoltatorii se confruntă cu alte provocări, cum ar fi modul de utilizare a noilor caracteristici ale versiunii 5.0, menținând în același timp compatibilitate, oferind o experiență consistentă a utilizatorilor în diferite niveluri API.
Pentru a arăta cum să folosiți Android 5.0 și Material Design în proiectul dvs., am creat o aplicație simplă. Se compune dintr-o singură activitate care afișează mai multe widget-uri. Am adăugat apoi următoarele la res /
pliant:
meniu-V21 /
: Aceasta conține o copie a textului menu_main.xml și va fi utilizat pentru a afișa icoane Design Material pe dispozitive Android 5.0.Valori-v11 /
: Aceasta conține a styles.xml fișier care stabilește tema de bază la holo.lightpentru toate dispozitivele care rulează Android 3.0 sau o versiune ulterioară. Modificările aspectului în bara de acțiune au fost de asemenea făcute în acest fișier.Valori-V21 /
: Aceasta conține a styles.xml fișier care stabilește tema de bază la material.lightpentru dispozitive care rulează pe Android 5.0 și versiuni ulterioare. De asemenea, definește culorile de bază.Imaginea de mai jos arată aplicația care rulează pe un dispozitiv 4.4.2 și un dispozitiv 5.0. Tema Material a fost aplicată pentru dispozitivele de 5.0 sau mai multe. Alte dispozitive vor primi tema holo.light. Afișează starea implicită a ambelor teme și diferențele dintre interfața cu utilizatorul.
Cu Material Design, definirea culorilor de bază ale aplicației pentru a se potrivi cu marca dvs. nu a fost niciodată mai ușoară. De exemplu, adăugarea codului de mai jos la tema dvs. va stabili notificareabara de fundal, fundalul bara de acțiune și widget-urile pentru interfața cu utilizatorul.
Rezultatele pot fi foarte uimitoare și aplicația poate deveni identificabilă cu doar o privire. Există, de asemenea, un nou set de pictograme de design al materialelor, care reprezintă o altă modalitate rapidă și ușoară de a aduce o interfață modernă de utilizare a unei aplicații existente.
Iată un exemplu de diferență făcută prin utilizarea pictogramelor Material Design și definirea principalelor culori tematice:
Utilizarea barei de acțiune și a culorii este o caracteristică dominantă a materialului de design și poate marca și distinge în mod eficient aplicația dvs. O modalitate de a oferi o experiență consistentă a utilizatorilor în diferite niveluri API este de a replica aceste caracteristici asupra stilurilor și temelor destinate diferitelor niveluri API.
De exemplu, dacă vom compara aplicația care rulează pe un dispozitiv 4.4.2 cu un dispozitiv 5.0:
După cum vedeți, ei au o privire foarte distinctă asupra lor. Pentru a îmbunătăți acest lucru, putem folosi aceleași pictograme Design Material pe niveluri API mai mici de 5.0. De asemenea, putem modela bara de acțiune astfel încât să seamănă cu versiunea Material Design.
Pentru pictogramele, putem schimba imaginile în res / meniu / meniu main.xml la pictogramele de design material. Pentru bara de acțiune, putem edita res / valori-v11 / styles.xml fișierul să arate astfel:
Iată o altă privire la cele două comparații, după schimbări:
Versiunea care rulează pe dispozitivul 4.4.2 devine mai ușor de recunoscut ca aplicația noastră și marca noastră. Fără modificări semnificative, aplicația pare deja mai consistentă în cadrul diferitelor API-uri și are o senzație mai modernă față de aceasta.
Anumite caracteristici sunt exclusive pentru Android Lollipop, în special tranzițiile de activitate și animațiile de dezvăluire. Acest lucru nu înseamnă neapărat că trebuie să renunțați la utilizarea acestora sau să creați o aplicație separată care le folosește. Puteți verifica versiunea de sistem la timpul de execuție și puteți efectua anumite apeluri API doar dacă aplicația rulează pe o versiune adecvată de Android.
Un exemplu pentru a verifica dacă sistemul este 5.0 +:
// Verificați dacă rulează pe Android 5.0 sau o versiune superioară dacă (Build.VERSION.SDK_INT> = Build.VERSION_CODES.LOLLIPOP) // Apelați aici API-uri de design material altceva // Implementați această caracteristică fără a crea materiale
Doar pentru că poți face ceva nu înseamnă întotdeauna că ar trebui. Nu este absolut nimic în neregulă cu tema Holo pe care Android o folosește de la Honeycomb. Puteți oferi aspecte și teme alternative și le puteți aplica la diferite niveluri API. De exemplu, ați putea avea tema Design material să se aplice tuturor dispozitivelor cu un API de 5.0 și mai mult. Tema Holo se va aplica oricărui dispozitiv cu un API de 3,0 și mai sus. În cele din urmă, tema clasică ar putea fi aplicată tuturor dispozitivelor sub 3.0.
Pentru a face acest lucru, veți folosi următoarele directoare în proiectul dvs.:
În fiecare director, puteți plasa a styles.xml fișier care va defini tema dorită.
Bibliotecile de suport V7 r21 acceptă mai multe widget-uri și caracteristici de la Material Design.
Tema.AppCompat permite utilizarea paletei de culori prin extinderea uneia dintre temele AppCompat. De exemplu, Theme.AppCompat.Light
:
De asemenea, furnizează widget-uri de design material pentru următoarele:
Biblioteca de suport V7 oferă, de asemenea, acces la noul CardView
și RecyclerView
widget-uri.
Dacă rămâneți cu AppCompat în design-urile dvs. de layout, este posibil să creați un singur aspect care să mențină aceleași imagini vizuale pe mai multe niveluri API.
Pentru a utiliza biblioteca de suport V7, trebuie să adăugați proiectul. Dacă folosiți Android Studio și Gradle, acesta poate fi adăugat la secțiunea dependențe din secțiunea build.gradle
fişier:
dependencies compile 'com.android.support:appcompat-v7:21.0.+' compile 'com.android.support:cardview-v7:21.0.+' compile 'com.android.support:recyclerview-v7:21.0.+'
Când includeți biblioteca de suport v7 trebuie să vă setați minSdkVersion
la 7.
Android 5.0 este o versiune majoră. Actualizările precum ART și notificările de pe ecran vor avea un impact imediat. Alte actualizări, cum ar fi Material Design, Prezentare generală și Programarea posturilor, vor avea nevoie de timp pentru dezvoltatori pentru implementare și adoptare.
Utilizatorii vor juca, de asemenea, un rol important în modelarea viitorului apropiat al Androidului. Încercările anterioare de a aduce Android la spațiul TV nu au fost bine primite. Televizoarele inteligente în ansamblu trebuie să devină încă un dispozitiv care trebuie să aibă.
O experiență unificată și familiară a utilizatorilor pe mai multe dispozitive și ecrane este interesantă și, după părerea mea, este necesară avansarea. Succesul acestui lucru, totuși, va depinde în cele din urmă de adopție și de cererea utilizatorilor.
Google a stabilit scena la I / O din acest an Google și cu Lollipop actorii sunt acum asamblați. Indiferent de cât timp rulează jocul și plăcerile pe care le primește, nimeni nu poate spune că Google nu a încercat.