Mørkt tema, Thermal API og Bubbles: Gjøre appen din klar for Android 10

Forfatter: Louise Ward
Opprettelsesdato: 6 Februar 2021
Oppdater Dato: 2 Juli 2024
Anonim
Mørkt tema, Thermal API og Bubbles: Gjøre appen din klar for Android 10 - Apps
Mørkt tema, Thermal API og Bubbles: Gjøre appen din klar for Android 10 - Apps

Innhold


Den siste, største, ennå ikke navngitte versjonen av Android introduserer funksjoner og API-er som du kan bruke til å designe nye opplevelser for brukerne dine - pluss noen få atferdsendringer som du trenger å passe på.

Selv om du ikke oppdaterer appen din for å målrette mot Android Q ennå, vil noen av disse endringene ha betydning hver applikasjon som er installert på Android Q, selv om appen din ikke målretter eksplisitt mot denne versjonen av Android.

Noen av disse endringene vil påvirke alle applikasjoner som er installert på Android Q.

Uansett om du er ivrig etter å eksperimentere med de nyeste funksjonene, eller bare ønsker å sikre at appen din ikke skal bryte øyeblikket den er installert på Android Q, er det nå det perfekte tidspunktet å begynne å forberede deg på Android Qs forestående versjon.

Les også:Android Q: Alt utviklere trenger å vite


I denne artikkelen vil jeg dekke alle trinnene du må ta for å gjøre appen din klar for Android Q - fra helt nye funksjoner til mindre sikkerhetsinnstillinger som har potensial til å ødelegge hele applikasjonen din.

Unngå prosessering av CPU og GPU: Overvåke enhetens temperatur

Overoppheting kan skade smarttelefonen eller nettbrettet ditt alvorlig. Som et beskyttende tiltak vil Android smutte enhetens CPU og GPU når den oppdager at temperaturene nærmer seg farlige nivåer.

Selv om denne oppførselen er med på å beskytte enhetens maskinvare, kan den også ha en merkbar innvirkning på applikasjonsytelsen, spesielt hvis appen din bruker høyoppløselig grafikk, tunge beregninger eller utfører kontinuerlig nettverksaktivitet.

Selv om denne nedgangen blir pålagt av systemet, vil den typiske smarttelefon- eller nettbrettbrukeren gi skylden for bruken av applikasjonen for fall i ytelsen. I verste fall kan brukeren bestemme at applikasjonen din er feil eller ødelagt, og potensielt til og med avinstallere appen din og gi deg en negativ Google Play-gjennomgang i prosessen.


I verste fall kan brukeren bestemme at applikasjonen din er feil eller ødelagt.

Android Q introduserer en ny Thermal API som kan hjelpe deg med å unngå denne prosessoren og GPU-gassen. Du kan bruke denne API-metoden addThermalStatusListener () for å lage en lytter for termisk statusendringer, og deretter justere appens oppførsel når enhetens temperatur begynner å stige. Dette kan bidra til å redusere sjansene for at systemet tyr til prosessering av CPU eller GPU. For eksempel kan du redusere belastningen applikasjonen din legger på overopphetingssystemet ved å senke oppløsningen eller bildefrekvensen, eller ved å deaktivere ressurskrevende funksjoner som nettverkstilkobling.

Merk at Android Qs Thermal API krever et nytt HAL-lag for enheter, som i skrivende stund bare var tilgjengelig på Pixel-enheter.

Reduser øyestrekningen og øker synligheten med Mørkt tema

På Android Q kan brukere aktivere et systemomfattende mørkt tema som er designet for å redusere øyestrekningen, forbedre synligheten under lite lysforhold og redusere strømforbruket på enheter med OLED-skjermer.

Mørkt tema er et UI med lite lys som bruker mørke overflater i bakgrunnen, og lyse forgrunner for elementer som tekst og ikonografi.

Brukere kan når som helst aktivere dette systemomfattende mørke temaet via en ny hurtiginnstillinger-flis, eller ved å starte enhetens Innstillinger-applikasjon og navigere til Display> Theme. Ved å bytte til batterisparemodus vil også Dark Theme automatisk aktiveres på Pixel-enheter.

Dark Theme brukes på hele enheten, så for å gi en jevn brukeropplevelse, trenger du å sikre at applikasjonen din støtter Dark Theme.

For å legge til Dark Theme-støtte, må du forsikre deg om at du bruker den nyeste versjonen av Material Android-biblioteket, og deretter oppdaterer appen din til å arve fra Theme.MaterialComponents.DayNight, for eksempel:

Du må deretter opprette en res / Values-Night / Theme.xml-fil og arve fra Theme.MaterialComponents:

For å gi en god brukeropplevelse, kan det hende du må endre appens oppførsel når mørkt tema er aktivert, for eksempel å erstatte eller fjerne grafikk som sender ut en betydelig mengde lys.

Du kan sjekke om Mørkt tema er aktivert ved å bruke følgende kodestykke:

int currentNightMode = konfigurasjon.uiMode & konfigurasjon.UI_MODE_NIGHT_MASK; switch (currentNightMode) {// Dark Theme er for tiden ikke aktiv // case Configuration.UI_MODE_NIGHT_NO: break; // Dark Theme er aktiv // case Configuration.UI_MODE_NIGHT_YES: break; }

Deretter kan applikasjonen din endre oppførselen, avhengig av hvilket tema som for øyeblikket er aktivt.

Innstillinger Panel API: Viser enhetsinnstillinger i appen din

Hvis appen din er målrettet mot Android Q, vil du ikke lenger kunne endre enhetens Wi-Fi-innstillinger. I stedet må du be brukeren om å gjøre de ønskede endringene ved å bruke Innstillinger-panelets API.

Du kan bruke denne nye APIen til å vise innhold fra enhetens Innstillinger-applikasjon, som et inline-panel som glir over appens innhold. Fra brukerens perspektiv lar disse kontrollene i appen dem raskt og enkelt endre enhetens innstillinger uten å måtte starte en egen app. For en applikasjonsutvikler lar Innstillingspanel-API deg endre Wi-Fi-status og andre viktige enhetsinnstillinger, uten å oppmuntre brukeren til å navigere bort fra appen din.

I Android Q gjør Google varslinger om chat-stil til en offisiell del av Android-plattformen med introduksjonen av Bubble API.

Designet som et alternativ til SYSTEM_ALERT_WINDOW, ser boblevarsler ut til å flyte over annet applikasjonsinnhold, i en stil som minner om de flytende varslene som brukes av Facebook Messenger for Android.

Boblevarsler kan utvides for å avsløre tilleggsinformasjon, eller tilpassede handlinger som gjør det mulig for brukere å samhandle med appen din, utenfor applikasjonskonteksten.

Når appen din prøver å lage sin første boble, vil Android spørre brukeren om de vil tillate alle bobler fra applikasjonen din, eller blokkere alle boblene. Hvis brukeren velger å blokkere alle appens bobler, vises de i stedet som standardvarsler. Boblene dine vises også som standardvarsler når enheten er låst, eller alltid er på skjermen aktiv. For å gi en god brukeropplevelse, må du sørge for at alle boblene dine vises og fungerer korrekt som vanlige varsler.

For å lage en boble, trenger du en aktivitet som definerer den utvidede bobleens oppførsel og en layout som definerer brukergrensesnittet. For en trinn-for-trinn-guide for hvordan du oppretter din første boblevarsling, sjekk ut Exploring Android Q: Legge til boblevarsler i appen din.

Øke tilgjengeligheten med systemomfattende gestasjonsnavigasjon

Brukere med fingerferdighetsproblemer kan synes det er lettere å samhandle med enheten sin ved bruk av bevegelser. I Android Q har brukere muligheten til å aktivere gestusnavigering over hele enheten, noe som vil påvirke hver applikasjonen installert på den enheten.

Selv om du ikke oppdaterer appen din for å målrette mot Android Q, er applikasjonen din vil bli påvirket av enhetens navigasjonsinnstillinger, så du må forsikre deg om at appen din er kompatibel med Android Qs gestusnavigering.

I gestasjonsnavigasjonsmodus skal appen din bruke hele skjermen, så det første trinnet er å fortelle Android-systemet at applikasjonen din støtter fra side til kant-visning. For å legge opp applikasjonen din på fullskjerm, kan du bruke SYSTEM_UI_FLAG_LAYOUT_STABLE og SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION-flaggene, for eksempel:

view.setSystemUiVisibility (View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);

Du må også implementere støtte for en gjennomsiktig systemlinje ved å legge til følgende til temaet ditt:

Når det er på tide å teste appen din, må du sjekke at Android Qs systembevegelser ikke utløser noen av appens kontroller, for eksempel knapper eller menyer. Spesielt bruker Android Q en sveip innover for Tilbake-handlingen, og en sveip oppover for Hjem og hurtigbryter, som kan forstyrre alle UI-elementer som er lokalisert i disse områdene.

Hvis du under testen oppdager at det å sveipe fra bunnen av skjermen, eller sveipe innover, utløser appens kontroller, kan du indikere hvilke regioner som er konfigurert for å motta berøringsinndata. For å blokkere bestemte områder, passerer du en liste til Android Qs View.setSystemGestureExclusionRects () API, for eksempel:

Liste exclusionRects; offentlig tomrom onLayout (boolesk forandret canvas, int venstre, int øverst, int høyre, int nederst) {setSystemGestureExclusionRects (exclusionRects); } public void onDraw (Canvas canvas) {setSystemGestureExclusionRects (exclusionRects); }

Hvis appen din bruker noen tilpassede bevegelser, bør du også sjekke at de ikke er i konflikt med systemets navigasjonsbevegelser.

Fange lyd fra tredjeparts applikasjoner

Android Q introduserer et AudioPlaybackCapture API som gjør det mulig for appen din å fange lyd fra andre applikasjoner - perfekt hvis du lager en skjermopptak-app!

For å fange lydavspilling, må du be om RECORD_AUDIO-tillatelse, og deretter:

  • Bygg en AudioPlaybackCaptureConfiguration-forekomst ved hjelp av AudioPlaybackCaptureConfiguration.Builder.build ().
  • Konfigurer og opprett AudioRecord-forekomsten ved å ringe setAudioPlaybackCaptureConfig og deretter overføre konfigurasjonen til AudioRecord-objektet.

For eksempel:

MediaProjection mediaProjection; AudioPlaybackCaptureConfiguration config = new AudioPlaybackCaptureConfiguration.Builder (mediaProjection) .addMatchingUsage (AudioAttribute.USAGE_MEDIA) .build (); AudioRecord record = new AudioRecord.Builder () .setAudioPlaybackCaptureConfig (config) .build ();

Denne nye APIen betyr at tredjepartsapper som standard vil kunne registrere alle av programmets lyd. For noen apper kan dette være et privatlivsproblem eller til og med sette appen din i fare for brudd på opphavsretten. Hvis nødvendig, kan du forhindre at tredjeparter fanger lyden til appen din ved å legge til android: allowAudioPlaybackCapture = "falsk" i manifestet.

Selv med dette flagget på plass, vil systemapper fortsatt kunne fange appens lydavspilling, ettersom tilgjengelighetsfunksjoner som bildetekst avhenger av lydfangst.

For å gi en tilgjengelig opplevelse, anbefales det at du alltid lar systemkomponenter fange lyden til appen din, men du kan blokkere systemapper ved å bruke ALLOW_CAPTURE_BY_NONE-konstanten, om nødvendig.

Forbedret biometrisk autentisering

Android Q lager flere justeringer til Android's BiometricPrompt-godkjenning.

1. Kontroller for biometrisk evne

Før du påkaller BiometricPrompt, kan du nå sjekke om enheten støtter biometrisk autentisering, ved å bruke den nye metoden canAuthenticate ().

2. Strømlinjeformede biometriske autentiseringsdialogbokser

Android Q gjør en subtil endring i godkjenningsdialogene til BiometricPrompt.

Android lar brukere autentisere identifikasjonen sin ved hjelp av en rekke implisitte “håndfrie” biometriske modaliteter, for eksempel ansikts- eller irisautentisering. Selv om brukeren bekrefter identifikasjonen ved bruk av en implisitt modalitet, vil de imidlertid gjøre det fortsatt må trykke på dialogboksen Bekreft-knappen for å fullføre godkjenningsprosessen.

For mange implisitte biometriske modaliteter er denne bekreftende handlingen unødvendig, så i Android Q kan du be om at systemet fjerner bekreftelsesknappen fra biometriske godkjenningsdialogen.

Denne lille endringen kan ha en positiv innvirkning på brukeropplevelsen, ettersom det å verifisere identiteten din ved å se på enheten din er enklere enn å se på enheten din, vente på at den skal gjenkjenne ansiktet ditt og deretter trykke på Bekreft-knappen.

I Android Q kan du be om at systemet fjerner bekreftelsesknappen ved å sende usant til metoden setConfirmationRequired (). Vær oppmerksom på at systemet kan velge å ignorere forespørselen din i visse scenarier, for eksempel hvis brukeren har deaktivert implisitt autentisering i enhetens innstillinger.

3. Alternative autentiseringsmetoder

Noen ganger kan det hende at en bruker ikke kan autentisere ved hjelp av biometriske innspill. I disse scenariene kan du tillate dem å autentisere identifikasjonen sin ved å bruke enhetens PIN, mønster eller passord ved å bruke den nye metoden setDeviceCredentialAllowed ().

Når denne tilbakefallet er aktivert, blir brukeren i første omgang bedt om å autentisere ved hjelp av biometri, men vil da ha muligheten til å autentisere ved hjelp av en PIN, mønster eller passord.

Kjør innebygd DEX-kode direkte fra APK-en din

I Android Q er det mulig å kjøre innebygd DEX-kode direkte fra APK-filen din, noe som kan forhindre at angripere tukler med appens lokalt kompilerte kode.

Du kan aktivere denne nye sikkerhetsfunksjonen ved å legge til følgende i manifestets element:

android: useEmbeddedDex = "true”

Du kan deretter bygge en APK som inneholder ukomprimert DEX-kode ved å legge til følgende i Gradle build-filen:

aaptOptions {noCompress dex}

Nye tillatelser for aktivitetsgjenkjenning

Android Q introduserer en ny com.google.android.gms.permission.ACTIVITY_RECOGNITION kjøretidstillatelse for applikasjoner som trenger å registrere brukerens trinntelling eller kategorisere fysisk aktivitet, for eksempel løping eller sykling.

Androids API for aktivitetsgjenkjenning vil ikke lenger gi resultater med mindre applikasjonen din har denne nye tillatelsen ACTIVITY_RECOGNITION. Merk at hvis appen din bruker data fra innebygde sensorer som gyroskop eller akselerometer, trenger du ikke å be om ACTIVITY_RECOGNITION-tillatelsen.

Begrensninger i aktivitet starter

For å bidra til å minimere avbrudd, legger Android Q nye begrensninger for når applikasjonen din kan starte en aktivitet. Du finner en fullstendig liste over alle forholdene som gjør det mulig for aktivitetsstarter, over på de offisielle Android-dokumentene.

Systemvarslingsoverlegg fjernet fra Android Go

Hvis appen din havner på en enhet som kjører Android Q og Android Go, vil den ikke kunne få tilgang til SYSTEM_ALERT_WINDOW-tillatelsen. Denne endringen er implementert for å unngå merkbare ytelsesfall som kan oppstå når Android Go-enheter prøver å tegne overleggsvinduet SYSTEM_ALERT_WINDOW.

Ta farvel med Android Beam

Android Q markerer slutten på Android Beam, siden denne datadelingsfunksjonen nå er offisielt avskrevet.

Å holde brukerne dine sikre: Viktige personvernendringer

Android Q introduserer en rekke personvernendringer som gir brukerne større kontroll over dataene sine og enhetens følsomme funksjoner.

Dessverre kan disse endringene påvirke appens oppførsel og kan til og med ødelegge appen din fullstendig. Når du tester søknaden din mot Android Q, bør du være spesielt oppmerksom på følgende personvernendringer:

1. Scoped lagring: Android sin nye eksterne lagringsmodell

Android Q legger nye begrensninger for hvordan applikasjoner får tilgang til ekstern lagring.

Hvis appen din er målrettet mot Android Q, vil den som standard ha en "filtrert visning" i enhetens eksterne lagring (tidligere kalt en "sandkassevisning"), som bare gir tilgang til en appspesifikk katalog.

Med scoped-lagring kan applikasjonen din få tilgang til denne appspesifikke katalogen og alt innholdet, uten å måtte erklære lagringstillatelser.Appen din kan imidlertid bare få tilgang til filer som er opprettet av andre applikasjoner hvis den har fått tillatelsen READ_EXTERNAL_STORAGE og filene er plassert i enten Bilder (MediaStore.Images), Videoer (MediaStore.Video) eller Musikk (MediaStore.Audio). Hvis appen din krever tilgang til en fil som ikke oppfyller disse kriteriene, må du bruke Storage Access Framework.

I skrivende stund var det mulig å velge bort scoped-lagring ved å legge til android: requestLegacyExternalStorage = "true" til prosjektets manifest, men i henhold til de offisielle Android-dokumentene vil scoped-lagring til slutt kreves av alle applikasjoner, så det anbefales at oppdaterer du appen din så snart som mulig.

2. Bestem når en app skal få tilgang til posisjonen din

Android Q gir brukerne mer kontroll over når en applikasjon kan få tilgang til deres beliggenhet.

Når appen din krever stedsinformasjon, vil Android Q vise en dialogrute der du spør om brukeren vil dele denne informasjonen:

  • Når appen din kjører i forgrunnen kun.
  • Hele tiden (dvs. når appen din er i forgrunnen og bakgrunnen).

Hvis brukeren gir appen din hele tiden tilgang, vil Android Q opprette vanlige varsler for å minne brukeren om at appen din når som helst kan få tilgang til deres beliggenhet.

For å implementere disse endringene introduserer Android Q en ny ACCESS_BACKGROUND_LOCATION tillatelse.

Hvis appen din krever tilgang til posisjonsinformasjon mens den er i bakgrunnen, må du be om denne nye tillatelsen sammen med den eksisterende ACCESS_COARSE_LOCATION eller ACCESS_FINE_LOCATION-tillatelsen. For eksempel:

3. Nye begrensninger for ikke-tilbakestillbare systemidentifikatorer

Hvis du trenger tilgang til ikke-tilbakestillbare systemidentifikatorer, for eksempel IMEI og serienummer, må du nå be om godkjenning READ_PRIVILEGED_PHONE_STATE.

Der det er mulig, anbefales det at du bruker alternative metoder for å spore brukeren. Hvis du for eksempel ville registrere brukeranalyse, kan du opprette en Android-annonserings-ID i stedet for å be om tilgang til ikke-tilbakestillbare enhetsidentifikatorer.

Forsikre deg om at du er klar for Android Q: Test appen din

Den beste måten å sikre at applikasjonen din gir en god brukeropplevelse på Android Q, er å teste den på en enhet som kjører Android Q.

Mens vi venter på den offisielle utgivelsen, er det tre måter å teste appen din mot forhåndsvisninger av Android Q-utvikleren: registrer enheten din i Android Beta-programmet, blitz et Android Q-systembilde manuelt på enheten din, eller bruk en Android Virtual Enhet (AVD).

1. Installer Android Q beta på en fysisk enhet

Hvis du eier en kompatibel enhet (full liste finner du her), kan du få Android Q-oppdateringer gjennom luften ved å registrere deg i Android Beta-programmet. I skrivende stund støttes alle Google Pixel-telefoner av Android Beta-programmet. Det inkluderer Google Pixel, Pixel XL, Pixel 2, Pixel 2 XL, Pixel 3, Pixel 3 XL, Pixel 3a og Pixel 3a XL.

Hvis du ikke eier en Pixel, er Android Q beta også tilgjengelig på utvalgte enheter fra en håndfull produsenter, inkludert Asus, Huawei, LG, Xiaomi og mer. For hele listen over støttede enheter, sjekk ut listen her.

Når du er påmeldt, anslår Google at du vil motta mellom tre og seks oppdateringer i løpet av programmet.

Før du registrerer deg i Beta-programmet, er det flere ulemper du må være klar over. Forhåndsversjon av Android kan inneholde feil og feil som kan forhindre at enheten din fungerer normalt, og det er ingen offisiell støtte tilgjengelig hvis du støter på problemer. Brukere som kjører versjonsversjoner av Android, får heller ikke separate månedlige sikkerhetsoppdateringer, noe som kan forlate enheten din sårbar for angrep og utnyttelse.

Til slutt, selv om du kan velge bort programmet og gå tilbake til en stabil versjon av Android når som helst, vil alle lokalt lagrede data på enheten din bli slettet når du går tilbake til den stabile utgivelsen. Merk at hvis du forblir påmeldt til slutten av beta-programmet, så vil du oppgradere og motta den endelige, offentlige versjonen av Android Q uten mister noen av dataene dine.

Hvis du vil begynne å motta Android Q-oppdateringer uten tvil, kan du gå til Android Beta-nettstedet for mer informasjon.

2. Blinker et Android Q-systembilde manuelt

Hvis du ikke liker ideen om å motta Android Q-oppdateringer over luften, kan du laste ned og blinke et Android Q-systembilde manuelt til Pixel-enheten din.

Google har publisert systembildene for alle kompatible Pixel-enheter, sammen med instruksjoner for hvordan du kan blinke et systembilde. Denne manuelle tilnærmingen kan være nyttig hvis du trenger å teste mot en spesifikk utgivelse av Android Q, eller hvis du vil begynne å teste umiddelbart i stedet for å melde deg på Beta-programmet og potensielt vente i opptil 24 timer for å få den første oppdateringen.

3. Bruk Android-emulatoren

Hvis du ikke vil ha risikoen forbundet med å installere beta-programvare på en fysisk smarttelefon eller nettbrett, eller hvis du ikke eier en kompatibel enhet, kan du bruke en AVD i stedet.

Følg disse trinnene for å laste ned det nyeste forhåndsvisningsbildet til Android Q:

  • Start Android Studio.
  • Velg Verktøy> SDK Manager fra Android Studio-verktøylinjen.
  • Forsikre deg om at fanen SDK-plattformer er valgt.
  • Velg Vis pakkeinformasjon.
  • Velg Google Play Intel x86 Atom System Image.

  • Klikk OK.
  • Opprett en AVD ved hjelp av dette systembildet.

Hvordan tester jeg appen min mot Android Q?

Når du har en fysisk enhet eller AVD som kjører Android Q, bør du sette appen din gjennom de samme testprosessene og prosedyrene du bruker når du forbereder noen utgivelse. Under testing bør du også være spesielt oppmerksom på personvernendringene til Android Q, ettersom disse kan potensielt ødelegge appen din.

Når du har bekreftet at applikasjonen din gir en god brukeropplevelse på Android Q, bør du publisere din Android Q-kompatible app til Google Play så snart som mulig. Ved å gi ut appen din tidlig, kan du samle tilbakemeldinger før flertallet av brukerbasen din flytter til Android Q.

Alternativt kan du bruke Google Play-testspor for å skyve APK-en din til en valgt gruppe testere, og deretter utføre en iscenesatt utrulling til produksjon når du er fornøyd med tilbakemeldingene deres.

Vi håper denne artikkelen hjalp deg med å gjøre appen din klar for Android Q! Hvilken Android Q-funksjon er du mest spent på?

Det er vankelig nok å huke hva du hadde til middag for to netter iden, enn i utallige paord du eier. Dette gjelder peielt for nettteder om krever at paordet ditt kal være umulig ammenatt og ...

Xiaomi belutning om å kyve annoner til brukergrenenittet kom om en irriterende overrakele i eptember i fjor. Tatt i betraktning hvordan Xiaomi eier 9,7% av den globale markedandelen for marttelef...

Anbefales Til Deg