Etter måneder med spekulasjoner, hype og plage, ga Google offisielt ut Android 5.0 til verden 12. november 2014. SDK ble gjort tilgjengelig 3. november. Vi visste allerede mye om funksjonene, på grunn av Lforhåndsvisning SDK som ble utgitt 25. juni 2014. Det vi ikke visste var hva Lville stå for.
Kjærlighet på pinne ble navnet gitt til 5.0-oppdateringen. Ser tilbake, var Lollipop en klar favoritt. Men, hvis gitt nok tid til å spekulere, holder den åpenbare igjen kraften til å overraske.
Lollipop er en betydelig oppdatering for Android-plattformen. Det er uten tvil den største utgivelsen hittil, og absolutt den mest ambisiøse.
Nå som Android SDK er ute, er det en oversikt over noen av de nye funksjonene i Android 5.0.
I de senere årene har Google fokusert på alle Android-utgivelser på et bestemt utviklingsaspekt av operativsystemet og hvordan det kan forbedres. For 5,0 var det bedre batterilevetid.
De JobScheduler
API lar deg kjøre jobber asynkront på et senere tidspunkt eller under spesielle forhold. JobInfo
Objekter kan brukes til å definere vilkårene for en planlagt jobb.
Takket være disse tilleggene har utviklere nå mye mer kontroll over når og hvordan batteridrikkende oppgaver utføres.
Det er en ny ADBkommando dumpsys batterystats
som kan brukes til å generere statistiske data om batteribruk på en enhet. Ta en titt på følgende kommando for å se hvordan dette fungerer.
adb shell dumpsys batterystats - ladet
I Lollipop kan meldinger vises på låseskjermen. Utviklere kan spesifisere mengden informasjon som vises i et varsel via setVisibility
, som aksepterer følgende verdier:
VISIBILITY_PRIVATE
: Viser grunnleggende informasjon, for eksempel varselens ikon, men skjuler varselinnholdets innholdVISIBILITY_PUBLIC
: Viser meldingens innholdVISIBILITY_SECRET
: Viser ingenting, unntatt selv varselets ikonMetadata kan nå legges til varsler for å tillate kategorier og prioritet, og å samle flere kontakter.
Nøkkelvarsler, for eksempel innkommende anrop, vises i et meldingsvindu med hovedoppslag, som vil flyte øverst i den aktuelle appen til brukeren bekrefter eller avviser varselet.
Nyhetsskjermbildet har blitt omdøpt til oversikt. Med det nye navnet kommer nye APIer som forbedrer multitaskingsalternativer på Android. Du kan nå få dine aktiviteter behandlet som oppgaver og bli vist i eget vindu på oversiktsskjermbildet.
For eksempel kan en nettleser-app settes slik at hver fane har sitt eget vindu. På den forrige skjermbildet for nylig ble det vist en enkelt nettleser-app.
Hvis du har et nettsted, kan du legge til til overskriften din for å få oversikt vise den angitte farge som topptekst for nettstedet ditt.
Tidligere versjoner av Android har alle brukt Dalvik som prosess virtuell maskin. Programmer skrives vanligvis i Java, som deretter kompileres til bytecode. Dette blir så oversatt til Dalvik bytecode og lagret i .dex
og .ODEX
filer, for Dalvik å prosessere.
Dette er en veldig grunnleggende forklaring på hva kjøretiden gjør og forhåpentligvis formidler dens betydning. Programmer kjører på prosess virtuell maskin, slik at ytelsen avgjør den generelle ytelsen til appen og er en flaskehals.
Dalvik bruker JIT (Just In Time) kompilering, noe som betyr at den bare kjører programmet i øyeblikket det trengs.
ART bruker derimot en AOT (Forut for tid) kompilering for å kompilere bytekoden. Når et program er installert, er det utarbeidet av ARTs dex2oat
verktøyet, som lager ELF-kjørbare i stedet for .odex-filer. Fra da av blir applikasjonen utført fra den allerede utførte ELF-kjørbare.
Det er mye lagret kompilering på bekostning av lengre programinstallasjonstider og litt ekstra diskplass.
Med tillegg til forbedret søppelsamling (GC), utgjør ART langt bedre enn Dalvik, noe som gir en skarpere og mer flytende Android-opplevelse..
For å bidra til å bringe appen din til store skjermdisplayer, introduserer Lollipop Leanback brukergrensesnitt og Android TV Input Framework (TIF). Leanback-biblioteket gir brukergrensesnitt widgets for TV-programmer. TIF er designet for å tillate TV-apparater å håndtere videostrømmer fra kilder som HDMI-innganger, TV-tunere og IPTV-mottakere.
Khronos OpenGL ES 3.1 er lagt til. Viktige funksjoner inkluderer:
Android 5.0 forblir bakoverkompatibel med OpenGL ES 2.0 og 3.0.
For å supplere OpenGL ES 3.1 har et sett med OpenGL ES utvidelser blitt lagt til som tillater følgende:
Android Lollipop inneholder en ny versjon av Chromium for Web View, basert på Krom m37 utgivelse som legger til støtte for WebAudio, WebRTC og WebGL.
Innfødt støtte for webkomponenter er også inkludert i oppdateringen og vil tillate bruk av polymer og dens Material Design elementer uten å kreve polyfiller.
Fra og med Android 5.0 er Chrome nå oppdaterbart fra Play-butikken, så nye APIer og feilrettinger vil være tilgjengelig umiddelbart, og vil ikke lenger kreve en oppdatering av Android-operativsystemet.
Den nye android.media.browse
API lar apper bla gjennom medieinnholdsbiblioteket til andre apper. De MediaBrowserService
Klassen brukes til å avsløre media i et program, mens Mediabrowser
Klassen brukes til å samhandle med en nettleser tjeneste.
To nye klasser er innført for å gjøre avspillingskontroll enklere å administrere på tvers av forskjellige brukergrensesnitt og tjenester.
MediaSession
erstatter RemoteControlClient
. Den gir et sett tilbakekallingsmetoder for bruk i transportkontroller og medieknapper. MediaController
kan brukes til å lage en tilpasset media-kontroller-app, som deretter kan brukes til å sende kommandoer til en MediaSession
.
To nye sensorer er innført:
Selvfølgelig krever begge sensorene støttet maskinvare.
Enhetsadministratorer kan bruke en administrert provisjonstjeneste å legge til apper i en separat administrert profil. Hvis det finnes en eksisterende personlig konto på en enhet som er blitt levert, vises de administrerte profilappsene sammen med eksisterende programmer.
En enhetseier er en spesialisert type enhetsadministrator som kan opprette og fjerne sekundære brukere og konfigurere globale innstillinger, i hovedsak å gi Android et tradisjonelt administrator- og brukerkontosystem.
Screen pinning er en ny funksjon som kan sammenlignes med kiosk modus på iOS. Skjermspenning inneholder følgende funksjoner:
Skjermspenning kan aktiveres manuelt via Innstillinger> Sikkerhet> Skjermsparing. Det kan også aktiveres programmatisk. De startLockTask
Metoden kan bli ringt fra appen din for å aktivere skjermspenning. Hvis appen ikke er fra en enhetseier, vises en bekreftelsespåmelding. De setLockTaskPackages
Metoden kan bli kalt av en eierapp og vil unngå bekreftelsesprompten.
For å deaktivere skjermpinne må du ringe stopLockTask
hvis det ble initiert av en enhetseier-app. Hvis den ble aktivert av en ikke-enhetseier, kan brukeren gå ut av skjermspenningsmodus ved å holde både tilbakeknappen og tilbakekallings knappene.
Skjermfangst er nå mulig gjennom det nye android.media.projection
APIer. Skape VirtualDisplay
Metoden gjør det mulig for anropsprogrammet å fange skjermen i et overflateobjekt, som deretter kan sendes over nettverket. API-en kan bare ta opp usikkert innhold og inkluderer ikke lyd.
RAW-bildeopptak har endelig kommet på Android, takket være det nye android.hardware.camera2
API.
Android-enheter kan nå fungere somBluetooth LE periferiutstyr. Apper kan gjøre bruk av dette for å gjøre deres tilstedeværelse kjent for nærliggende enheter. Med den nye android.bluetooth.le
APIer, kan du aktivere appene dine til å koble til nærliggende Bluetooth-enheter, kringkaste annonser og søke etter svar. Disse nye funksjonene kommer også med en ny manifesttillatelse, BLUETOOTH_ADMIN
.
Disse APIene vil være ekstremt nyttige når du arbeider med bærbare enheter, helse- og treningsprogrammer og overvåkingsprogrammer. Alle disse er forventede vekstområder for Android i nær fremtid.
NFC har blitt forbedret på flere måter:
invokeBeam
kan brukes til å starte deling av data. Du trenger ikke lenger å støte enheter fysisk.registerAidsForService
og setPreferredService
har blitt lagt til for å hjelpe utviklingen av betalingsapplikasjoner.Nye APIer tillater at apps kan søke etter nettverk for tilgjengelige funksjoner, for eksempel om nettverket er mobilt, måles eller Wi-Fi.
Bitmap-bilder kan nå gjengis fra PDF-dokument sider, ved hjelp av det nye PdfRendered
klasse.
Du kan nå sykle gjennom forskjellige IMEer som er tilgjengelige for plattformen. Dette oppnås ved å bruke shouldOffetToNextInputMethod
metode.
En av de største funksjonene i Android 5.0 er Material Design. Material Design er et sett med retningslinjer knyttet til visuell design, innholdsbevegelse og brukerinteraksjon. Retningslinjene er ment å gå utover Android og er designet for et bredt utvalg av enheter og plattformer.
Polymer er et bemerkelsesverdig eksempel på Material Design-plattformen, med Google opprettet flere Material Design-webelementer for å hjelpe til med bygging av nettsteder / webapps med et Material Design-tema. Til tross for sin tverrplattform natur, er Material Design fortsatt et fokuspunkt for Android 5.0.
Lollipop introduserte to nye widgets:
CardView
: Denne widgeten gjør at informasjon kan grupperes sammen på en konsekvent måte. Selve kortet kan ha sin dybde forandret for å fremme eller markere den etter behov.RecyclerView
: Dette er en mer avansert versjon av Listevisning
widget.Det er to nye temaer som bruker prinsippene for Material Design, Mørkt materiale og Lett materiale. Begge bruker nytt grensesnitt for brukergrensesnitt. System widgets er enkle å tilpasse, og du kan angi fargepaletten. Flere animasjoner og overganger er også standard for disse temaene, for eksempel rippel-effekten.
Dybden kan nå endres på Android-visninger gjennom den nye Z-eiendommen. Høyere Z-verdier støtter større skygger rundt utsikten, noe som gir utseendet av økt høyde. Dette er en stift av Material Design ethos hvor målet er å skape et tekstilutseende gjennom bruk av lag.
En annen stift av Material Design er animasjon. Berør tilbakemelding animasjoner og en rekke aktiviteter overganger all hjelp til å skape en taktil og nedsenkende opplevelse. Målet er ikke å få informasjon som dukker opp eller forsvinner. Hver visning / objekt skal vises som et lag på en overflate.
Tenk deg et fint, rent, hvitt skrivebord. På dette skrivebordet har du ulike papirer, post-it notater og skrivesaker. Når du ser ned på pulten, er det ikke en flatt utsikt. Skrivebordet inneholder flere lag, og objekter har forskjellige dybder og støpte skygger på laget under.
Hvis du trenger å se en side under en annen side, må du flytte omslagssiden ut av veien. Hvis du vil plassere den bærbare datamaskinen på skrivebordet, må du skyve eksisterende papirer ut av veien for å få plass. Når du berører noe på skrivebordet, beveger det seg, bøyer, vibrerer og blander seg.
For å komme i gang med Android 5.0, last ned SDK-plattformen for v21 i din foretrukne IDE. Dette vil sannsynligvis bli gjort gjennom SDK-lederen i Eclipse eller Android Studio.
I ApplicationManifest.xml fil og / eller build.gradle
fil, sett inn targetSdkVersion
til 21.
Viktige endringer og overveielser:
Det er et ordsprog i superheroverdenen: "Med stor makt kommer det store ansvar." Det er en lignende i utviklingssamfunnet, "med store oppdateringer, kommer omfattende testing."
Her er en rask sjekkliste, hvis du allerede har en Android-app:
RemoteControlClient
klassen er nå avskrevet, så skal jeg flytte over til MediaSession
API?WebView
Nå blokkerer blandet innhold og tredjeparts cookies som standard. Må jeg bruke setMixedContentMode
og setAcceptThirdPartyCookies
?En komplett listeliste finner du på Android Developer-nettstedet.
En av de største endringene i Android 5.0 er brukergrensesnittet med introduksjonen av Material Design. Bruke Material Design og sette beste design praksis å bruke, tar mye hensyn og arbeid fra utviklerens side.
For eksisterende applikasjoner står utviklere overfor ytterligere utfordringer, for eksempel hvordan du kan utnytte de nye funksjonene til 5.0, samtidig som du opprettholder bakoverkompatibilitet, og gir en konsistent brukeropplevelse på tvers av ulike API-nivåer.
For å vise hvordan du bruker Android 5.0 og Material Design i prosjektet ditt, har jeg opprettet en enkel app. Den består av en enkelt aktivitet som viser flere widgets. Jeg har da lagt til følgende i res /
mappe:
meny-V21 /
: Dette inneholder en kopi av menu_main.xml og vil bli brukt til å vise Material Design ikoner på Android 5.0-enheter.Verdiene-v11 /
: Dette inneholder en styles.xml fil som setter grunntemaet til holo.lightfor alle enheter som kjører Android 3.0 eller nyere. Utsiktsendringer til handlingslinjen er også gjort i denne filen.Verdiene-V21 /
: Dette inneholder en styles.xml fil som setter grunntemaet til materialetfor enheter som kjører på Android 5.0 og nyere. Det definerer også grunnfargene.Bildet nedenfor viser appen som kjører på en 4.4.2-enhet og en 5.0-enhet. Materialet temaet har blitt brukt for 5.0+ enheter. Andre enheter vil motta holo.light-temaet. Den viser standardtilstanden for begge temaene og brukergrensesnittet forskjellene mellom dem.
Med materialdesign har det aldri vært enklere å definere appens basisfarger for å passe inn i merkevaren din. Hvis du for eksempel legger til koden nedenfor til temaet ditt, angir du varslingenbar bakgrunn, handlingslinjen bakgrunn og brukergrensesnitt widgets.
Resultatene kan være veldig slående og appen kan bli identifisert med bare et blikk. Det er også et nytt sett med Material Design ikoner, som er en annen rask og enkel måte å få et moderne brukergrensesnitt til enhver eksisterende app.
Her er et eksempel på forskjellen ved å bruke Material Design ikoner og definere hovedtema farger:
Bruken av handlingslinjen og fargen er en dominerende funksjon av Material Design, og kan effektivt merke og skille appen din. En måte å gi en konsistent brukeropplevelse på forskjellige API-nivåer er å kopiere disse funksjonene til stiler og temaer beregnet på forskjellige API-nivåer.
Hvis vi for eksempel sammenligner programmet som kjører på en 4.4.2-enhet til en 5,0-enhet:
Som du ser, har de et veldig særegent utseende til dem. For å forbedre dette kan vi bruke de samme Material Design ikonene på API nivåer lavere enn 5.0. Vi kan også utforme handlingslinjen slik at den ligner Material Design-versjonen.
For ikonene kan vi endre bildene i res / meny / meny-main.xml til Material Design ikoner. For handlingslinjen kan vi redigere res / verdiene-v11 / styles.xml filen for å se ut som følgende:
Her er en annen titt på de to sammenlignet, etter endringene:
Versjonen som kjører på 4.4.2-enheten blir mer gjenkjennelig som vår søknad og vårt merke. Uten noen vesentlige endringer ser appen seg mer konsistent på de forskjellige APIene, og har en mer moderne følelse av det.
Visse funksjoner er eksklusive for Android Lollipop, spesielt aktivitetsturneringer og avslørende animasjoner. Dette betyr ikke nødvendigvis at du må unngå å bruke dem eller opprette en egen app som bruker dem. Du kan sjekke systemversjonen ved kjøring og bare utføre visse API-anrop hvis appen kjører på en passende versjon av Android.
Et eksempel for å sjekke om systemet er 5.0+:
// Sjekk om vi kjører på Android 5.0 eller nyere hvis (Build.VERSION.SDK_INT> = Build.VERSION_CODES.LOLLIPOP) // Ring noen materialdesign-APIer her annet // Implement denne funksjonen uten materialdesign
Bare fordi du kan gjøre noe betyr ikke alltid at du skal. Det er absolutt ingenting galt med Holo-temaet som Android har brukt siden Honeycomb. Du kan gi alternative oppsett og temaer og få dem til å gjelde for forskjellige API-nivåer. For eksempel kan du ha Material Design-temaet gjelder for alle enheter med en API på 5,0 og høyere. Holo-temaet gjelder for alle enheter med en API på 3.0 og over. Endelig kan det klassiske temaet brukes på alle enheter under 3.0.
For å gjøre dette, vil du bruke følgende kataloger i prosjektet ditt:
I hver katalog kan du plassere en styles.xml fil som vil definere ønsket tema.
V7 r21-støttebibliotekene støtter flere widgets og funksjoner fra Material Design.
Theme.AppCompat gjør det mulig å bruke fargepaletten ved å utvide et av AppCompat-temaene. For eksempel, Theme.AppCompat.Light
:
Det gir også Material Design widgets for følgende:
V7-støttebiblioteket gir også tilgang til det nye CardView
og RecyclerView
widgets.
Hvis du holder deg til AppCompat i layoutdesignene dine, er det mulig å lage et enkelt layout som vil opprettholde de samme bildene i flere API-nivåer.
For å bruke V7-støttebiblioteket må du legge til prosjektet ditt. Hvis du bruker Android Studio og Gradle, kan den legges til i avhengighetsdelen i build.gradle
fil:
avhengigheter compile 'com.android.support:appcompat-v7:21.0.+' compile 'com.android.support:cardview-v7:21.0.+' compile 'com.android.support:recyclerview-v7:21.0.+'
Når du inkluderer v7-støttebiblioteket, må du angi minSdkVersion
til 7.
Android 5.0 er en stor utgave. Oppdateringer som ART og skjermvarsler vil få umiddelbar innvirkning. Andre oppdateringer som Material Design, Oversikt og Jobplanlegging vil ta tid for utviklere å implementere og vedta.
Brukerne vil også spille en stor rolle i å forme nær fremtid i Android. Tidligere forsøk på å bringe Android til TV-rommet har ikke blitt godt mottatt. Smart-TVer i det hele tatt har ennå ikke blitt en må-ha-enhet.
Å ha en enhetlig og kjent brukeropplevelse på tvers av flere enheter og skjermer er spennende og etter min mening nødvendig fremover. Suksessen til dette vil imidlertid i siste instans avhenge av adopsjon og brukerbehov.
Google satte scenen på årets Google I / O og med Lollipop skuespillerne nå er samlet. Uansett hvor lenge spillet går, og det får det, kan ingen si at Google ikke har prøvd.