Ce este nou în Android Lollipop

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ă.

1. Caracteristici

Acum, când SDK-ul Android este dezactivat, iată o prezentare a unora dintre noile caracteristici din Android 5.0.

Baterie

Proiectul Volta   

Î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. 

Instrumente de dezvoltare

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

notificări

Î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ării
  • VISIBILITY_PUBLIC: afișează conținutul notificării
  • VISIBILITY_SECRET: nu arată nimic, excluzând chiar pictograma notificării

Metadatele 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.

Multifunctional

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.

Durata de funcționare și ART

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 dex2oatutilitate, 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ă.

Android TV

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.

Grafică

A fost adăugat Khronos OpenGL ES 3.1. Printre caracteristicile cheie se numără:

  • calculați shaderele
  • separate obiecte de shader
  • umbrirea îmbunătățirilor lingvistice
  • extensii pentru moduri avansate de amestecare și depanare
  • comenzi de atragere indirectă
  • multisample și texturi de șablon

Android 5.0 rămâne compatibil cu OpenGL ES 2.0 și 3.0.

Pachetul de extindere Android (AEP)

Pentru a completa OpenGL ES 3.1, au fost adăugate un set de extensii OpenGL ES care permit următoarele:

  • garantat suport pentru shader de stocare pentru tampoane de stocare shader, imagini și atomi (suportul pentru shader de fragmente este opțional în OpenGL ES 3.1)
  • diferite moduri de amestecare pentru fiecare atașare de culoare într-un tampon de cadre
  • tessellation și shaders geometrie
  • ASTC (LDR) format de compresie textura
  • interpolarea pe fiecare eșantion și umbrirea

Vizualizare Chrome

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.

Vizionarea media    

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.

Controlul redării 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.

Senzori noi

S-au introdus doi senzori noi:

  • Detector de înclinare: îmbunătățește recunoașterea activității
  • Senzor de ritm cardiac: capabil să raporteze frecvența cardiacă a utilizatorului atingând dispozitivul

Desigur, ambii senzori necesită hardware compatibil.

Gestionarea furnizării

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

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.

Screen Pinning

Prinderea ecranului este o funcție nouă care este comparabilă cu modul chioșc pe iOS. Prinderea ecranului include următoarele caracteristici:

  • Bara de stare este goală.
  • Alte aplicații nu pot lansa activități noi.
  • Notificările utilizatorilor și informațiile despre stare sunt ascunse.
  • Aplicația curentă poate crea noi activități atâta timp cât nu se creează noi sarcini.

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.

Distribuirea ecranului

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.

aparat foto

Preluarea imaginilor RAW a sosit în sfârșit pe Android, datorită noului android.hardware.camera2 API-ul.

Bluetooth Low Energy

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

NFC a fost îmbunătățită în mai multe moduri:

  • Android Beam este acum o opțiune în meniul de partajare.
  • 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ă.

Conexiuni multiple de rețea

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.

Imprimarea cadrului

Imaginile bitmap pot fi acum redate din paginile documentului PDF, folosind noul PdfRendered clasă.

Metode de editare a intrărilor (IME)

Puteți parcurge acum diferite IME-uri disponibile platformei. Acest lucru se realizează prin utilizarea funcției shouldOffetToNextInputMethod metodă.

2. Designul materialelor

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.

Widgeturi noi

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.

Noi teme    

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 și umbra

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.

Animații

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ă.

3. Folosind Android 5.0

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:

  • Aplicația mea rulează fără probleme pe ART?
  • Dacă aplicația mea utilizează notificări, cum vor fi integrate în ecranul de blocare?
  • Interfața utilizatorului poate beneficia de o reîmprospătare? Material Design este o potrivire bună și cât de mult va implica munca?
  • 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. 

4. Compatibilitate înapoi

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 ulterioareDe 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.

Culoare și bara de acțiune 

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.

Utilizarea caracteristicilor care nu sunt suportate

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

Păstrarea temelor anterioare

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.:

  • res / valori / (locație implicită)
  • res / valori-v11 / (pentru 3,0 +)
  • res / valori-v21 / (pentru 5,0 +)

În fiecare director, puteți plasa a styles.xml fișier care va defini tema dorită.

Biblioteci de suport    

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:

  • Editează textul
  • Caseta de bifat
  • filator
  • Buton de radio
  • SwitchCompat
  • CheckedTextView

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.

Concluzie

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.

Cod