Mørkt tema, Termisk API og bobler: Gør din app klar til Android 10

Forfatter: Louise Ward
Oprettelsesdato: 6 Februar 2021
Opdateringsdato: 1 Juli 2024
Anonim
Mørkt tema, Termisk API og bobler: Gør din app klar til Android 10 - Apps
Mørkt tema, Termisk API og bobler: Gør din app klar til Android 10 - Apps

Indhold


Den seneste, største, endnu ikke navngivne version af Android introducerer funktioner og API'er, som du kan bruge til at designe nye oplevelser for dine brugere - plus et par adfærdsændringer, som du skal være opmærksom på.

Selv hvis du ikke opdaterer din app til at målrette Android Q lige nu, vil nogle af disse ændringer påvirke hver applikation, der er installeret på Android Q, selvom din app ikke udtrykkeligt er målrettet mod denne version af Android.

Nogle af disse ændringer vil påvirke enhver applikation, der er installeret på Android Q.

Uanset om du er ivrig efter at eksperimentere med de nyeste funktioner, eller du bare ønsker at sikre, at din app ikke bryder det øjeblik, den er installeret på Android Q, er det perfekte tidspunkt at begynde at forberede sig til Android Qs forestående udgivelse.

Læs også:Android Q: Alt, hvad udviklere skal vide


I denne artikel vil jeg dække alle de trin, du skal tage for at få din app klar til Android Q - fra splinternye funktioner til mindre sikkerhedstips, der har potentialet til at ødelægge hele din applikation.

Undgå throttling af CPU og GPU: Overvågning af enhedens temperatur

Overophedning kan alvorligt skade din smartphone eller tablet. Som en beskyttelsesforanstaltning vil Android smutte din enheds CPU og GPU, når den registrerer, at temperaturerne nærmer sig farlige niveauer.

Selvom denne opførsel hjælper med at beskytte enhedens hardware, kan den også have en mærkbar indflydelse på applikationsydelsen, især hvis din app bruger grafik i høj opløsning, tunge beregninger eller udfører løbende netværksaktivitet.

Mens denne afmatning pålægges af systemet, vil din typiske smartphone- eller tabletbruger give din ansøgning skylden for ethvert fald i ydelsen. I værste fald kan brugeren beslutte, at din ansøgning er buggy eller ødelagt, potentielt endda afinstallere din app og efterlader dig en negativ Google Play-gennemgang i processen.


I værste fald kan brugeren muligvis beslutte, at din applikation er buggy eller ødelagt.

Android Q introducerer en ny termisk API, der kan hjælpe dig med at undgå denne CPU og GPU-throttling. Du kan bruge denne API's addThermalStatusListener () -metode til at oprette en lytter til termiske statusændringer og derefter justere din apps opførsel, når enhedens temperatur begynder at stige. Dette kan hjælpe med at reducere chancerne for, at systemet tager til CPU eller GPU-throttling. For eksempel kan du reducere den belastning, som din applikation placerer på overophedningssystemet ved at sænke din opløsning eller billedhastighed, eller ved at deaktivere ressourceintensive funktioner såsom netværksforbindelse.

Bemærk, at Android Qs Thermal API kræver et nyt enheds-HAL-lag, som i skrivende stund kun var tilgængeligt på Pixel-enheder.

Reducer øjenbanen og øg synligheden med mørkt tema

På Android Q kan brugere aktivere et systemdækket mørkt tema, der er designet til at reducere øjenstrækningen, forbedre synligheden under dårlige lysforhold og reducere strømforbruget på enheder med OLED-skærme.

Mørkt tema er et UI med lavt lys, der bruger mørke overflader i baggrunden og lyse forgrundsfarver til elementer som tekst og ikonografi.

Brugere kan når som helst aktivere dette system-dækkede mørke tema via en ny Quick Settings-flise eller ved at starte deres enheds indstillingsprogram og navigere til Display> Theme. På Pixel-enheder aktiverer skift til batterisparetilstand også mørkt tema automatisk.

Dark Theme anvendes på hele enheden, så for at give en konsistent brugeroplevelse skal du sikre dig, at din applikation fuldt ud understøtter Dark-tema.

For at tilføje support fra Dark Theme skal du sørge for at du bruger den seneste version af Material Android-biblioteket og derefter opdaterer din app til at arve fra Theme.MaterialComponents.DayNight, for eksempel:

Du bliver derefter nødt til at oprette en res / Values-Night / Theme.xml-fil og arve fra Theme.MaterialComponents:

For at give en god brugeroplevelse skal du muligvis ændre din apps opførsel, når mørkt tema er aktiveret, f.eks. Udskiftning eller fjernelse af grafik, der udsender en betydelig mængde lys.

Du kan kontrollere, om mørkt tema er aktiveret ved hjælp af følgende uddrag:

int currentNightMode = config.uiMode & Configuration.UI_MODE_NIGHT_MASK; switch (currentNightMode) {// Dark Theme er ikke aktiv i øjeblikket // case Configuration.UI_MODE_NIGHT_NO: break; // Dark Theme er aktiv // case Configuration.UI_MODE_NIGHT_YES: break; }

Din applikation kan derefter ændre dens opførsel, afhængigt af hvilket tema der i øjeblikket er aktivt.

API-indstillinger i panelet: Viser enhedsindstillinger i din app

Hvis din app er målrettet mod Android Q, vil du ikke længere kunne ændre enhedens Wi-Fi-indstillinger direkte. I stedet skal du bede brugeren om at foretage de ønskede ændringer ved hjælp af API-indstillingspanelet.

Du kan bruge denne nye API til at vise indhold fra enhedens applikationsindstillinger som et inline-panel, der glider over din app's indhold. Fra brugerens perspektiv tillader disse kontroller i appen dem hurtigt og nemt at ændre deres enheds indstillinger uden at skulle starte en separat app. For en applikationsudvikler giver API-indstillingspanelet dig mulighed for at ændre Wi-Fi-status og andre vigtige enhedsindstillinger uden at tilskynde brugeren til at navigere væk fra din app.

I Android Q gør Google chathovedstilkendegivelser til en officiel del af Android-platformen med introduktionen af ​​Bubble API.

Designet som et alternativ til SYSTEM_ALERT_WINDOW ser boblemeddelelser ud til at "flyde" over andet applikationsindhold i en stil, der minder om de flydende underretninger, der er brugt af Facebook Messenger til Android.

Bubble-meddelelser kan udvides til at afsløre yderligere oplysninger eller tilpassede handlinger, der gør det muligt for brugere at interagere med din app, uden for applikationskonteksten.

Når din app forsøger at oprette sin første boble, spørger Android brugeren, om de vil tillade alle bobler fra din applikation, eller blokere alle bobler. Hvis brugeren vælger at blokere alle dine appers bobler, vises de i stedet for standardunderretninger. Dine bobler vises også som standardmeddelelser, når enheden er låst, eller altid-på-skærm er aktiv. For at give en god brugeroplevelse skal du sikre dig, at alle dine bobler vises og fungerer korrekt som regelmæssige meddelelser.

For at oprette en boble har du brug for en aktivitet, der definerer den udvidede bobls opførsel og et layout, der definerer dens brugergrænseflade. For en trin-for-trin-guide til, hvordan du opretter din første boblemeddelelse, skal du tjekke Udforskning af Android Q: Tilføjelse af boblemeddelelser til din app.

Forøgelse af tilgængelighed med systemdækkende gestural navigation

Brugere med fingerfærdighedsproblemer kan have det lettere at interagere med deres enhed ved hjælp af bevægelser. I Android Q har brugere mulighed for at aktivere gestusnavigation på hele deres enhed, hvilket vil have indflydelse hver applikation installeret på den enhed.

Selv hvis du ikke opdaterer din app til at målrette Android Q, er din applikation vilje blive påvirket af enhedens navigationsindstillinger, så du skal sikre dig, at din app er kompatibel med Android Qs gestusnavigation.

I gestusnavigeringstilstand skal din app bruge hele skærmen, så det første trin er at fortælle Android-systemet, at din applikation understøtter kant-til-kant-visning. For at layoute din applikations fuldskærm kan du bruge SYSTEM_UI_FLAG_LAYOUT_STABLE og SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION-flagene, for eksempel:

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

Du bliver også nødt til at implementere support til en gennemsigtig systemlinje ved at føje følgende til dit tema:

Når det er tid til at teste din app, skal du kontrollere, at Android Q's systembevægelser ikke udløser nogen af ​​din apps kontroller, f.eks. Knapper eller menuer. Især bruger Android Q et svejse indad til Tilbage-handlingen og et opad svejse til Hjem og Quick switch, som kan forstyrre alle UI-elementer, der findes i disse områder.

Hvis du under test opdager, at det at skubbe fra bunden af ​​skærmen, eller at skubbe indad udløser din app's kontroller, kan du angive, hvilke regioner der er indstillet til at modtage berøringsinput. For at blokere bestemte områder skal du videregive en liste til Android Q's View.setSystemGestureExclusionRects () API, for eksempel:

Liste exclusionRects; offentligt ugyldigt onLayout (boolesk ændret canvas, int venstre, int top, int højre, int bund) {setSystemGestureExclusionRects (exclusionRects); } public void onDraw (Canvas canvas) {setSystemGestureExclusionRects (exclusionRects); }

Hvis din app bruger nogen tilpassede bevægelser, skal du også kontrollere, at de ikke er i konflikt med systemets navigationsbevægelser.

Optagelse af lyd fra tredjeparts applikationer

Android Q introducerer en AudioPlaybackCapture API, som gør det muligt for din app at fange lyd fra andre applikationer - perfekt, hvis du opretter en skærmoptagelsesapp!

For at fange lydafspilning skal du anmode om RECORD_AUDIO tilladelse og derefter:

  • Opbyg en AudioPlaybackCaptureConfiguration-forekomst ved hjælp af AudioPlaybackCaptureConfiguration.Builder.build ().
  • Konfigurer og opret AudioRecord-forekomsten ved at kalde setAudioPlaybackCaptureConfig og derefter overføre konfigurationen til AudioRecord-objektet.

For eksempel:

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

Denne nye API betyder, at apps fra tredjepart som standard vil kunne optage alle af din applikations lyd. For nogle apps kan dette være et privatlivsproblem eller muligvis endda udsætte din app for krænkelse af ophavsretten. Hvis det er nødvendigt, kan du forhindre tredjeparter i at fange din apps lyd ved at tilføje android: allowAudioPlaybackCapture = "falsk" til dit manifest.

Selv med dette flag på plads vil systemapps stadig være i stand til at fange din apps lydafspilning, da tilgængelighedsfunktioner som billedtekst afhænger af lydoptagelse.

For at give en tilgængelig oplevelse anbefales det, at du altid tillader systemkomponenter at fange din apps lyd, men du kan blokere systemapps ved hjælp af ALLOW_CAPTURE_BY_NONE-konstanten, hvis nødvendigt.

Forbedret biometrisk godkendelse

Android Q foretager et antal justeringer til Android's BiometricPrompt-godkendelse.

1. Kontroller for biometrisk kapacitet

Før du påkalder BiometricPrompt, kan du nu kontrollere, om enheden understøtter biometrisk autentificering ved hjælp af den nye canAuthenticate () -metode.

2. Strømlinede biometriske godkendelsesdialogbokse

Android Q foretager en subtil ændring af BiometricPrompt's godkendelsesdialogbokse.

Android tillader brugere at autentificere deres identifikation ved hjælp af en række implicitte “håndfri” biometriske tilstande, såsom ansigt eller iris-godkendelse. Selv hvis brugeren med succes verificerer deres identifikation ved hjælp af en implicit modalitet, gør de det stadig nødt til at trykke på dialogboksen Bekræft-knap for at afslutte godkendelsesprocessen.

I mange implicitte biometriske tilstande er denne Bekræftelse-handling unødvendig, så i Android Q kan du anmode om, at systemet fjerner bekræftelsesknappen fra din biometriske godkendelsesdialog.

Denne lille ændring kan have en positiv indflydelse på brugeroplevelsen, da det er lettere at kontrollere din identitet ved at se på din enhed end at se på din enhed, vente på, at den genkender dit ansigt, og derefter tappe på knappen Bekræft.

I Android Q kan du anmode om, at systemet fjerner bekræftelsesknappen ved at videresende falsk til metoden setConfirmationRequired (). Bemærk, at systemet muligvis kan vælge at ignorere din anmodning i visse scenarier, for eksempel hvis brugeren har deaktiveret implicit godkendelse i deres enheds indstillinger.

3. Alternative godkendelsesmetoder

Til tider er en bruger muligvis ikke i stand til at autentificere ved hjælp af biometrisk input. I disse scenarier kan du tillade dem at autentificere deres identifikation ved hjælp af deres enheds PIN-kode, mønster eller adgangskode ved hjælp af den nye setDeviceCredentialAllowed () -metode.

Når denne tilbagefald er aktiveret, bliver brugeren oprindeligt bedt om at autentificere ved hjælp af biometri, men har derefter muligheden for at autentificere ved hjælp af en pinkode, mønster eller adgangskode.

Kør den integrerede DEX-kode direkte fra din APK

I Android Q er det muligt at køre indlejret DEX-kode direkte fra din APK-fil, hvilket kan hjælpe med at forhindre angribere i at manipulere med din apps lokalt kompilerede kode.

Du kan aktivere denne nye sikkerhedsfunktion ved at føje følgende til dit manifestelement:

android: useEmbeddedDex = "true”

Du kan derefter oprette en APK, der indeholder ukomprimeret DEX-kode ved at tilføje følgende til din Gradle build-fil:

aaptOptions {noCompress dex}

Nye tilladelser til aktivitetsgenkendelse

Android Q introducerer en ny com.google.android.gms.permission.ACTIVITY_RECOGNITION runtime-tilladelse til applikationer, der har brug for at registrere brugerens trinantal eller kategorisere deres fysiske aktivitet, f.eks. Løb eller cykling.

Android's API til aktivitetsgenkendelse giver ikke længere resultater, medmindre din applikation har denne nye ACTIVITY_RECOGNITION tilladelse. Bemærk, at hvis din app bruger data fra indbyggede sensorer som gyroskop eller accelerometer, behøver du ikke at anmode om tilladelsen ACTIVITY_RECOGNITION.

Restriktioner for aktivitet starter

For at hjælpe med at minimere afbrydelser lægger Android Q nye begrænsninger for, hvornår din applikation kan starte en aktivitet. Du finder en komplet liste over alle de betingelser, der giver mulighed for aktivitetsstart, over på de officielle Android-dokumenter.

Overvågning af systemadvarsel fjernet fra Android Go

Hvis din app afvikles på en enhed, der kører Android Q og Android Go, er den ikke i stand til at få adgang til SYSTEM_ALERT_WINDOW-tilladelsen. Denne ændring er implementeret for at undgå de mærkbare ydeevne, der kan opstå, når Android Go-enheder forsøger at tegne overlayvinduet SYSTEM_ALERT_WINDOW.

Sig farvel til Android Beam

Android Q markerer slutningen af ​​Android Beam, da denne datadelingsfunktion nu officielt er udskrevet.

Hold dine brugere sikre: Nøgleafdelingsændringer

Android Q introducerer en række ændringer til beskyttelse af personlige oplysninger, der giver brugerne større kontrol over deres data og deres enheds følsomme funktioner.

Desværre kan disse ændringer påvirke din apps opførsel og kan endda ødelægge din app. Når du tester din ansøgning mod Android Q, skal du være særlig opmærksom på følgende ændringer i privatlivets fred:

1. Scoped-opbevaring: Android's nye eksterne oplagringsmodel

Android Q sætter nye begrænsninger for, hvordan applikationer får adgang til ekstern lagerplads.

Hvis din app er målrettet mod Android Q som standard, har den en "filtreret visning" i enhedens eksterne lager (tidligere omtalt som en "sandkassevisning"), som kun giver adgang til et app-specifikt bibliotek.

Med scoped-opbevaring kan din applikation få adgang til dette app-specifikke bibliotek og alt dets indhold, uden at skulle erklære eventuelle lagringstilladelser.Din app kan dog kun få adgang til filer, der er oprettet af andre applikationer, hvis den har fået tilladelse til READ_EXTERNAL_STORAGE, og fil (er) er placeret i enten Fotos (MediaStore.Images), Videoer (MediaStore.Video) eller Musik (MediaStore.Audio). Hvis din app kræver adgang til en fil, der ikke opfylder disse kriterier, skal du bruge Storage Access Framework.

På dette tidspunkt var det muligt at fravælge scoped-opbevaring ved at tilføje android: requestLegacyExternalStorage = ”sandt” til dit projekts manifest, men ifølge de officielle Android-dokumenter skal scoped-lager til sidst kræves af alle applikationer, så det anbefales at opdaterer du din app så hurtigt som muligt.

2. Bestem, hvornår en app kan få adgang til din placering

Android Q giver brugerne mere kontrol over, hvornår en applikation kan få adgang til deres placering.

Når din app kræver placeringsoplysninger, viser Android Q en dialog der spørger, om brugeren vil dele disse oplysninger:

  • Når din app kører i forgrunden kun.
  • Hele tiden (dvs. når din app er i forgrunden og baggrunden).

Hvis brugeren giver din app hele tiden adgang, opretter Android Q regelmæssige underretninger for at minde brugeren om, at din app når som helst kan få adgang til deres placering.

For at implementere disse ændringer introducerer Android Q en ny ACCESS_BACKGROUND_LOCATION tilladelse.

Hvis din app kræver adgang til placeringsoplysninger, mens de er i baggrunden, skal du anmode om denne nye tilladelse sammen med den eksisterende ACCESS_COARSE_LOCATION eller ACCESS_FINE_LOCATION-tilladelse. For eksempel:

3. Nye begrænsninger for ikke-nulstillelige systemidentifikatorer

Hvis du har brug for adgang til ikke-nulstillelige systemidentifikatorer, såsom IMEI og serienummer, skal du nu anmode om tilladelsen READ_PRIVILEGED_PHONE_STATE.

Hvor det er muligt anbefales det, at du bruger alternative metoder til sporing af brugeren. Hvis du f.eks. Ville registrere brugeranalyse, kan du oprette et Android-annoncerings-id i stedet for at anmode om adgang til ikke-nulstillelige enhedsidentifikatorer.

Sørg for, at du er klar til Android Q: Test din app

Den bedste måde at sikre, at din applikation giver en god brugeroplevelse på Android Q, er at teste den på en enhed, der kører Android Q.

Mens vi venter på den officielle udgivelse, er der tre måder at teste din app mod Android Q-udviklereksempler: tilmeld din enhed i Android Beta-programmet, manuelt flash et Android Q-systembillede på din enhed eller brug en Android Virtual Enhed (AVD).

1. Installer Android Q beta på en fysisk enhed

Hvis du ejer en kompatibel enhed (fuld liste findes her), kan du få Android Q-opdateringer ved at tilmelde dig Android Beta-programmet. På dette tidspunkt understøttes alle Google Pixel-telefoner af 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 ejer en Pixel, er Android Q beta også tilgængelig på udvalgte enheder fra en håndfuld producenter, herunder Asus, Huawei, LG, Xiaomi og mere. For den fulde liste over understøttede enheder, se listen her.

Når du er tilmeldt, anslår Google, at du vil modtage mellem tre og seks opdateringer i løbet af programmet.

Før du tilmelder dig Beta-programmet, er der flere ulemper, du skal være opmærksom på. Pre-release-versioner af Android kan indeholde fejl og fejl, der kan forhindre din enhed i at fungere normalt, og der er ingen officiel support tilgængelig, hvis du støder på vanskeligheder. Brugere, der kører pre-release-versioner af Android, modtager heller ikke separate månedlige sikkerhedsopdateringer, hvilket kan efterlade din enhed sårbar overfor angreb og udnyttelse.

Endelig, selvom du til enhver tid kan fravælge programmet og vende tilbage til en stabil version af Android, slettes alle de lokalt gemte data på din enhed, når du vender tilbage til den stabile udgivelse. Bemærk, at hvis du forbliver tilmeldt indtil afslutningen af ​​beta-programmet, så skal du gradueres og modtage den endelige, offentlige version af Android Q uden mister nogen af ​​dine data.

Hvis du ønsker at begynde at modtage Android Q-opdateringer, skal du gå til Android Beta-webstedet for at få flere oplysninger.

2. Blink manuelt et Android Q-systembillede

Hvis du ikke kan lide ideen om at modtage Android Q-opdateringer i luften, kan du downloade og manuelt blinke et Android Q-systembillede til din Pixel-enhed.

Google har offentliggjort systembillederne til alle kompatible Pixel-enheder sammen med instruktioner til, hvordan man flasher et systembillede. Denne manuelle tilgang kan være nyttig, hvis du har brug for at teste mod en bestemt frigivelse af Android Q, eller hvis du vil starte test straks i stedet for at tilmelde dig Beta-programmet og potentielt vente op til 24 timer på at modtage din første opdatering.

3. Brug Android-emulatoren

Hvis du ikke ønsker de risici, der er forbundet med installation af beta-software på en fysisk smartphone eller tablet, eller hvis du ikke ejer en kompatibel enhed, kan du i stedet bruge en AVD.

Følg disse trin for at downloade det nyeste eksempelbillede af Android Q:

  • Start Android Studio.
  • Vælg Værktøjer> SDK Manager på værktøjslinjen til Android Studio.
  • Sørg for, at fanen SDK-platforme er valgt.
  • Vælg Vis pakkeoplysninger.
  • Vælg Google Play Intel x86 Atom System Image.

  • Klik på OK.
  • Opret en AVD vha. Dette systembillede.

Hvordan tester jeg min app mod Android Q?

Når du har en fysisk enhed eller AVD, der kører Android Q, skal du placere din app gennem de samme testprocesser og procedurer, som du bruger, når du forbereder nogen frigøre. Under test bør du også være særlig opmærksom på Android Q's ændringer i privatlivets fred, da disse har potentialet til at bryde din app.

Når du har verificeret, at din ansøgning giver en god brugeroplevelse på Android Q, skal du offentliggøre din Android Q-kompatible app til Google Play så hurtigt som muligt. Ved at frigive din app tidligt kan du samle feedback, før størstedelen af ​​din brugerbase flytter til Android Q.

Alternativt kan du bruge Google Play-testspor til at skubbe din APK til en udvalgt gruppe af testere og derefter udføre en iscenesat udrulning til produktion, når du er tilfreds med deres feedback.

Vi håber, at denne artikel hjalp dig med at få din app klar til Android Q! Hvilken Android Q-funktion er du mest begejstret for?

Motorola tager endnu en tur i in Mod-kompatible erie med Moto Z4. om navnet tydeligt indikerer, er dette fjerde generation af Z-enheden, og med det trækker Motorola tilbage og kifter gear lidt. n...

Nattiltand er blevet et af de vigtigte værktøjer på martphone i dag, hvilket gør det muligt for mobilkameraer at få meget bedre reultater under dårlige lyforhold. Maer af...

Webstedvalg