Exploring Android M Developer Preview
41
Del
11
Del
Dette Cyber mandag Envato Tuts + Kursene vil bli redusert til bare $ 3. Ikke gå glipp av.
I mai kunngjorde Google at neste versjon av Android-plattformen, Android M. Mens det er fortsatt ukjent hva "M" står for (Marshmallow? Macaroon? Macadamia Nut Cookie?), du kan allerede få hendene på Android M utvikler forhåndsvisning. Utvikler forhåndsvisning 2 ble utgitt bare noen dager siden.
I denne opplæringen, vil vi se på hvordan du kan sette opp din utviklingsmiljø og installere denne tidlige utgaven av Android M, før du utforsker noen av de nye funksjonene inkludert i denne utvikleren forhåndsvisning. Vi vil ta en titt på hvordan du kan bruke de nye databinding biblioteket for å kutte ned på standardtekst kode, hvordan din app kan dra nytte av Android Ms nye tillatelser modell, og hvordan Android innebygde app linking er satt til å bli kraftigere i Android M.
Ansvarsfraskrivelse
Selv om du kan utforske Android M funksjoner i utvikler forhåndsvisning, må du ikke glemme at dette er en utvikling Anmeldelser utgivelse som leverer forhåndsvisning Siden denne utvikleren forhåndsvisningen er et arbeid som pågår, er det viktig at du holder din utviklingsmiljø oppdatert og alltid jobbe med det aller nyeste utgaven av Android M utvikler forhåndsvisning. Å sørge for at du ikke går glipp av oppdateringer, kan det være lurt å bokmerke Android Developers Blog, bli med Android M Developer Community, og noterer Googles (tentative) release datoer. Hvis du ønsker å begynne å eksperimentere med Android M utvikler forhåndslansering, må du Android Studio 1.3 beta eller høyere. Android Studio laget ut oppdateringer via flere kanaler, stabil, beta, dev, og kanarifuglen kanal. Til tross for beta-koden, vil du finne Android Studio 1.3 beta på kanari kanal For å koble til kanarifuglen kanal. På dette punktet, Android Studio bør spørre om du ønsker å laste ned den nyeste kanarifuglen bygge. Klikk på Oppdater og starte på nytt. Hvis du ikke ser en dialogboks, prøve å lukke vinduet Innstillinger ved å klikke Oppdater. Dette bør tvinge dialogboksen skal vises Deretter åpner du SDK Manager og nedlastingen. Og det er det. Din utviklingsmiljø er nå Android M-klar. I løpet av de neste par avsnitt, vil jeg dekke noen av de viktigste funksjonene introdusert i forhåndsvisnings SDK og viser deg hvordan du kan begynne å jobbe med disse funksjonene i dine egne Android M prosjekter. Hvis du ønsker å lage en Android-M prøve prosjekt og prøve noen av kodebitene for deg selv, bare lage en ny Android-prosjektet som normalt, men sette minimum SDK til MNC Android M (Preview). Android M legger data binding til utviklerens verktøysett med utgivelsen av en dedikert databinding bibliotek. Denne nye data bindende bibliotek setter ut for å minimere mengden av koden du trenger å skrive ved å la deg binde data direkte inn i bestemte synspunkter i layouten filer. Den beste måten å forstå hvordan data bindende gjerninger er å se den i aksjon. Så i stedet for å se på teorien bak databinding, la oss sette seg fast i noen kode For å gjøre data bindende tilgjengelig til prosjektet, må du legge Data Binding bibliotek avhengighet til prosjektets build.gradle fil. Åpne din toppnivå Gradle bygge fil og legge til følgende: Du må også legge til databinding plug-in til hver modul der du ønsker å bruke databinding. Åpne din modulens build.gradle fil og legge til følgende: med Data Binding bibliotek satt opp, la oss se på et grunnleggende eksempel på databinding. Tenk deg din har en Student Klasse: Du vil vise studentens fornavn i layouten fil. For å oppnå dette via data bindende, vil du bruke følgende i layouten filen:? This nye < layout > tag forvandler layout filen til en data-bindende layout fil Mellom disse < data > tags, liste du alle variablene du ønsker å binde seg til brukergrensesnittet elementene Denne linjen med kode definerer en variabel , student i dette tilfellet, og beskriver en eiendom som du deretter kan bruke i din layout Etter den avsluttende < data > tag, kan du lage resten av oppsettet som normalt, er den eneste forskjellen er at du nå kan sette tilhører studenten til fornavn i layouten fil Android Studio kan enkelte feil flagg opp til deg å bygge prosjektet. Dette er fordi Data Binding biblioteket må generere en klasse som inneholder bindingene fra layout egenskaper og vet å tilordne verdier for bindende uttrykk. Denne filen er bare genereres når du bygger ditt prosjekt, så åpner Build-menyen og velg Lag prosjektet. Android Studio bygger prosjektet og genererer en ny klasse oppkalt etter din layout fil, med tillegg av en bindende suffiks . (f.eks ActivityMainBinding) For å gjøre dette forpliktende arbeid, må du legge til binding klasse til onCreate () metode for hovedaktiviteten: Dette er en svært enkel databinding eksempel. Når du bruker databinding biblioteket i dine egne prosjekter, gjør det vanligvis fornuftig å utdype dette grunnleggende eksempel og gi din dataobjekter muligheten til å oppdatere programmets brukergrensesnitt når eiendommen til at data objektet endres. For å se et eksempel på denne typen databinding i aksjon, sjekk ut Googles offisielle databinding guide. Vi er alle lagre mer personlig informasjon om våre smarttelefoner og nettbrett enn noen gang før, så det er fornuftig at Google gir brukerne økt kontroll over informasjonen sine mobile apps ha tilgang til Android M . Til nå Android-apps har tatt en alt-eller-ingenting tilnærming til tillatelser. Ved nye installasjoner, apps be alle tillatelser de kunne kreve skikkelige og brukere kan deretter enten godta eller avvise tillatelser liste hele. Android M introduserer en helt ny tillatelser modell som gir brukerne muligheten til å velge hvilke tillatelser de gir hver app under kjøring. I hovedsak apps forespørsel tillatelser som, og når de trenger dem, og brukeren kan da enten godta eller avvise hver tillatelse. For eksempel, kan brukeren la Facebook-applikasjonen tilgang deres plassering, men ikke deres enhetens mikrofon eller kamera . Brukere kan også tilbakekalle tillatelser du har gitt. Hvis de bestemmer de ønsker ikke lenger Facebook til å kjenne sin plassering, kan de alltid oppheve android.permission.ACCESS_FINE_LOCATION. Den nye tillatelser modellen er gode nyheter for sikkerhetsbevisste Android-brukere, men hva betyr det for utviklere? For det første er bare støttet nye tillatelser modell på Android M. Selv om Android operativsystem faktisk gjør bakoverkompatibilitet ganske grei (som du ser i et minutt), det er avhengig av din app vite om det er installert på en enhet som kjører Android M eller en enhet som kjører en eldre versjon av Android. Kontrollere hvilken versjon av Android kan høres grei, men dette ganske rutinemessig oppgave blir litt mer forvirrende på grunn av utviklingen beskyttet natur Android M. tiden, for din app for å sjekke om den er installert på Android M utvikler forhåndsvisning, må du bruke MNC kodenavn. Men ifølge Googles kodeeksempler, når API er avsluttet, skal appen bruke følgende stedet: Så bruk "MNC" .equals for nå, men ikke bli overrasket om dette endrer seg på et tidspunkt før den endelige SDK utgivelsen. Kontroller også at du dobbeltsjekke dette stykke kode når den endelige Android M SDK gjør en opptreden. Uansett hvilken versjon av Android enheten vind opp på, erklærer du alle tillatelser i ditt manifest på vanlig måte. Så, hvis din app er installert på en enhet som kjører noe annet enn Android M, rett og slett går den til den gamle tillatelser modellen og ber alle tillatelser ved nye installasjoner. Håndtering tillatelse forespørsler og svar på Android M er en litt mer komplisert, men du likevel erklære tillatelsene på nøyaktig samme måte, i manifestet. Den eneste innfall er at hvis din app krever en tillatelse på Android M bare, bør du erklærer den ved hjelp det nye < bruker-tillatelse-SDK-m > element. På Android M, < bruker-tillatelse-SDK-m > oppfører seg akkurat det samme som < bruker-tillatelse >, men noe erklært med < bruker-tillatelse-SDK-m > ignoreres på pre-Android-M-enheter. Tenk deg din app har bekreftet at det er installert på Android M, hvordan du går om å lage tillatelse forespørsler og håndtering av bruker svar Dette er de forskjellige stadier:? En ny tillatelser modell betyr nye beste praksis. Her er noen retningslinjer som kan hjelpe deg å bruke Android Ms granulære tillatelse innstillinger mer effektivt. Hver gang appen gjør en tillatelser forespørsel , du gir brukeren mulighet til å redusere appens funksjonalitet ved å benekte at forespørsel. Så du bør designe din app for å gjøre så få tillatelse forespørsler som mulig. Du kan også være lurt å vurdere om du kan oppnå de samme resultatene ved å instruere en annen app for å utføre oppgaven i spørsmålet via en intensjon. For eksempel, i stedet for å be om android.permission.CAMERA, kan du bruke en MediaStore.ACTION_IMAGE_CAPTURE hensikt Brukeren kan nekte noen (og selv hver) Håndtering avvisning grasiøst vil variere avhengig av din app, men det kan innebære ting som returnerer en tom datasettet, fjerne et alternativ fra din app-menyen, eller vise en pop-up som forklarer at brukeren kan låse opp denne funksjonen ved å gi din app visse tillatelser. Målet ditt er å levere en god brukeropplevelse uavhengig av hvilke tillatelser brukeren velger å innvilge eller avslå. Dette betyr at du vil være sikker på din app kan håndtere alle eventualiteter, og den eneste måten å gjøre dette på er gjennom testing. Når du surfer på Internett, klikke på en link vil ofte få opp en app Velger dialog. Selv om dette er nyttig når du har flere programmer som kan håndtere koblet innhold, er dette ekstra trinnet ofte ikke nødvendig, spesielt når du bare har en app som kan håndtere det aktuelle innholdet. I den kommende M utgivelsen, Android innebygde app linking er å få en oppgradering som tar sikte på å fjerne dette ofte unødvendig App Velger steg for automatisk assosiere apps med web-domener. Tenk deg for eksempel at du klikket på en lenke til en Twitter-profil i Googles søkeresultater. I Android M, kontrollerer systemet om noen av programmene dine kan håndtere dette på Twitter URL og har auto binding aktivert. Android vil deretter starte den offisielle Twitter-appen uten å vise App Velger dialog (forutsatt at du har Twitter installert på enheten). Dette er gode nyheter hvis du eier en web-domene som er relatert til programmet ditt. Når du har knyttet din nettside med din søknad, når en bruker klikker en kobling til nettstedet ditt, vil operativsystemet automatisk starte din app stedet for å vise App Velger dialog. Dette bidrar ikke bare du leverer en mer sømløs brukeropplevelse, men det holder å kjøre brukeren tilbake mot din app, heller enn å gi dem muligheten til å bruke et konkurrerende tredjeparts app eller en nettleser. For å etablere en kobling mellom din app og en web-domene din egen, må du være vert for en JSON-fil på .well kjent sted på domenet ditt. < .no> Hvis du ønsker at din app for å automatisk håndtere linker relatert til ditt nettsted (mywebsite.com), ville du trenger å laste opp en JSON-fil til roten av mywebsite.com. Her er et eksempel på innhold og layout av en statement.json fil som heter Android bør alltid bruke app (MyApp) for å vise innhold relatert til mywebsite.com: pakkenøkkelen refererer til pakken you name erklært i appen din manifest. Verdien av sha256_cert_fingerprints nøkkelen er offentlig sertifikat fingeravtrykk (SHA256) av appens signeringssertifikatet. Merk at i den første M-utvikler forhåndslansering, er dette JSON-fil verifisert via HTTP-protokollen. I den endelige M utgivelsen, vil det bli kontrollert over kryptert HTTPS protokollen. Igjen, dette er en av de quirks av å arbeide med en utvikler forhåndsvisning og noe du ønsker å holde et øye med de påfølgende utgivelser. Det siste trinnet er å fortelle Android operativsystem som det trenger ikke å be brukeren om visse typer koblinger. Dette betyr å legge til android: autoVerify = "true" attributt til hver < intent-filter > tag i appen din manifest Når android: autoVerify attributt er til stede i appen din manifest, verifiserer Android operativsystem disse linkene når brukeren først installerer appen. I hovedsak er en liste over unike vertsnavn hentet fra < intent-filter > tagger i pakken, og Android Ms nye Intent Filter Verifier komponent forsøker å hente JSON-fil fra hver vertsnavn. Disse JSON filene blir deretter kontrollert mot søknaden ID og sertifikatet for den installerte pakken, og Android-pakken Manager lagrer resultatet. Selvfølgelig, hvis denne kontrollen mislykkes deretter app lenke oppførsel vil ikke være tilgjengelig til programmet ditt. Men forutsatt at bekreftelsen er vellykket, Android M vil automatisk starte programmet når brukeren klikker på en link relatert til din web-domene. I denne opplæringen, har vi sett på hvordan app linking, den nye tillatelser modell, og Data Binding biblioteket vil fungere på Android M. Vi har også sett hvordan du kan begynne å eksperimentere med disse nye funksjonene i dag ved å sette opp Android M utvikler forhåndsvisning i Android Studio 1.3 beta eller høyere. For mer informasjon om Android M, sjekk ut Googles offisielle dokumentasjon. Her finner du mer informasjon om de nye funksjonene, en testing guide, og hvis du ønsker å få litt hands-on erfaring med Android M fra brukerens perspektiv, vil du finne systemavbildninger som du kan blinke til din Android-enhet.
APIer, så du bør forvente betydelige endringer helt fram til finalen SDK. Du kan heller ikke publisere noen programmer som er rettet mot M utvikler forhåndsvisning til Google Play.
Final SDK: Q3 2015 med spekulasjoner om at Android M vil bli utgitt i september
1. Sette opp Android M Forhåndsvisning SDK
I verktøylinjen klikker Android Studio og velg Innstillinger
Åpne Utseende &.; Menyen Virke, utvide systeminnstillinger, og klikk oppdateringer.
Kontroller at automatisk sjekke oppdateringer for alternativet er valgt.
Klikk på Check Now knappen.
Android Support Repository (revisjon 15 eller senere)
2. Data Binding Bibliotek
Trinn 1:. Sette opp databinding Library
... avhengig {classpathen "com.android.tools.build:gradle:1.3.0-beta4" klassebane "com.android.databinding: dataBinder: 1,0 -rc0 "}}
gjelder plugin: 'com.android.application'apply plugin:' com.android.databinding '
Trinn 2: Data Binding Eksempel
public class Student {public endelige String fornavn; offentlig Student (String fornavn) {this.firstName = fornavn; }}
≪ xml version = "1.0" encoding = "UTF-8" > < layout xmlns:? Android = "http: //schemas.android.com/apk/res/android">
. < data >
. < variable name = "student" type = "com.databindingexample.Student" />
. < /data >
android. text = "@ {student.firstName}" />
Overrideprotected void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); ActivityMainBinding binding = DataBindingUtil.setContentView (dette, R.layout.main_activity); Student student = new Student ("Test"); binding.setStudent (student);}
3. Tillatelser på Android M
Tillatelser og Bakoverkompatibilitet
tilbake "MNC" .equals (Build.VERSION.CODENAME);
tilbake Build.VERSION. SDK_INT == Build.VERSION_CODES.MNC;
Be om og håndtering av tillatelser på Android M
Sjekk om din app har allerede den nødvendige tillatelse. Når din app trenger å utføre en begrenset handling, bør det sjekke om det har i dag tilgang til den nødvendige tillatelse. Du må fullføre dette trinnet selv om brukeren har gitt denne tillatelsen tidligere. Dette er fordi brukeren kan tilbakekalle en tillatelse til enhver tid, og appen vil ikke bli varslet. Den gode nyheten er at du sjekker for tillatelser er ganske grei, bare ring Context.checkSelfPermission (permission_name).
Motta brukerens svar. Når brukeren har innvilget eller avslått tillatelse, kaller systemet aktivitetens onRequestPermissionsResult (int, String [], int []) metoden og sender den resultatene.
Overridepublic void onRequestPermissionsResult (int requestCode, String tillatelser [], int [] grantResults) {switch (requestCode) {case YOUR_REQUEST_CODE: {if (grantResults [0] == PackageManager.PERMISSION_GRANTED) {} else {}} avkastning; }}
Best Practices for det nye tillatelser Model
Krev så få tillatelser som mulig
. Håndtere avslag grasiøst
tillatelse forespørsel. Hvis dette skjer, vil du ønsker å sikre din app fryser ikke, krasj, slutter å fungere, eller deaktivere funksjoner uten noen forklaring. Tross alt, brukerne kunne tenke at det er noe fundamentalt galt med din app og kan til og med legge igjen en negativ vurdering på Google Play som resultat.
Testing, Testing og mer testing
4. App Linking
Hvordan jeg Etablere App Linking? Har
http: //< domene >: < valgfri port > /kjente /statements.json [{"forhold". ["delegate_permission /common.handle_all_urls"], "target": {"namespace": "android_app", "pakke": "< com.mywebsite.myapp > "," sha256_cert_fingerprints ": [" 6C: EC: C5: 0E: 34: AE .... EB: 0C: 9B "]}}]
< intent-filter android. autoVerify = "true" >
Konklusjon