Mörkt tema, Thermal API och Bubbles: Gör din app redo för Android 10

Författare: Louise Ward
Skapelsedatum: 6 Februari 2021
Uppdatera Datum: 2 Juli 2024
Anonim
Mörkt tema, Thermal API och Bubbles: Gör din app redo för Android 10 - Appar
Mörkt tema, Thermal API och Bubbles: Gör din app redo för Android 10 - Appar

Innehåll


Den senaste, största, ännu ej namngivna versionen av Android introducerar funktioner och API: er som du kan använda för att designa nya upplevelser för dina användare - plus några beteendeförändringar som du måste se upp för.

Även om du inte uppdaterar din app till Android Q ännu, kommer några av dessa ändringar att påverka varje applikation som är installerad på Android Q, även om din app inte uttryckligen riktar sig till den här versionen av Android.

Vissa av dessa ändringar kommer att påverka varje applikation som installeras på Android Q.

Oavsett om du är intresserad av att experimentera med de senaste funktionerna, eller om du bara vill se till att din app inte bryter det ögonblick som den är installerad på Android Q, är det nu den perfekta tiden att börja förbereda för Android Q: s överhängande release.


Läs också:Android Q: Allt utvecklare behöver veta

I den här artikeln täcker jag alla steg du behöver göra för att göra din app redo för Android Q - från helt nya funktioner till mindre säkerhetsjusteringar som har potential att bryta hela applikationen.

Undvik strypning av CPU och GPU: Övervaka enhetens temperatur

Överhettning kan allvarligt skada din smartphone eller surfplatta. Som en skyddande åtgärd kommer Android att strypa din enhets CPU och GPU när den upptäcker att temperaturen närmar sig farliga nivåer.

Även om detta beteende hjälper till att skydda enhetens hårdvara, kan det också ha en märkbar inverkan på applikationsprestanda, särskilt om din app använder högupplöst grafik, tunga beräkningar eller utför pågående nätverksaktivitet.

Medan denna avmattning åläggs av systemet kommer din typiska smartphone- eller surfplattaanvändare att skylla din ansökan för varje minskning av prestanda. I värsta fall kan användaren bestämma att din ansökan är buggy eller trasig, eventuellt även avinstallera din app och lämna en negativ Google Play-granskning under processen.


I värsta fall kan användaren bestämma att din applikation är buggy eller trasig.

Android Q introducerar ett nytt termiskt API som kan hjälpa dig att undvika denna CPU och GPU-strypning. Du kan använda denna API: s metod addThermalStatusListener () för att skapa en lyssnare för termiska statusändringar och sedan justera appens beteende när enhetens temperatur börjar stiga. Detta kan hjälpa till att minska risken för att systemet använder sig av CPU eller GPU-strypning. Till exempel kan du minska belastningen som din applikation sätter på överhettningssystemet genom att sänka din upplösning eller bildhastighet, eller genom att inaktivera resursintensiva funktioner som nätverksanslutning.

Observera att Android Qs Thermal API kräver ett nytt HAL-lager i lager, som i skrivande stund endast var tillgängligt på Pixel-enheter.

Minska ögonen och öka synligheten med mörkt tema

På Android Q kan användare aktivera ett systembrett Mörkt tema som är utformat för att minska ögonsträngen, förbättra synligheten under svagt ljus och minska strömförbrukningen på enheter med OLED-skärmar.

Mörkt tema är ett UI med svagt ljus som använder mörka ytor för bakgrunden och ljusa förgrundsfärger för element som text och ikonografi.

Användare kan aktivera detta systemomfattande mörka tema när som helst via en ny snabbinställningsbricka eller genom att starta enhetens inställningsprogram och navigera till Visa> Tema. Om du byter till batterisparläge aktiveras även Dark Theme automatiskt på Pixel-enheter.

Dark Theme används över hela enheten, så för att ge en konsekvent användarupplevelse måste du se till att din applikation stöder Dark Theme helt.

För att lägga till stöd för Dark Theme, se till att du använder den senaste versionen av Material Android-biblioteket och sedan uppdatera din app för att ärva från Theme.MaterialComponents.DayNight, till exempel:

Du måste då skapa en res / Values-Night / Theme.xml-fil och ärva från Theme.MaterialComponents:

För att ge en bra användarupplevelse kan du behöva ändra appens beteende när mörkt tema är aktiverat, till exempel att ersätta eller ta bort grafik som avger en betydande mängd ljus.

Du kan kontrollera om Mörkt tema är aktiverat med följande kodstycke:

int currentNightMode = config.uiMode & Configuration.UI_MODE_NIGHT_MASK; switch (currentNightMode) {// Dark Theme är för närvarande inte aktivt // case Configuration.UI_MODE_NIGHT_NO: break; // Dark Theme är aktiv // case Configuration.UI_MODE_NIGHT_YES: break; }

Din applikation kan sedan ändra sitt beteende, beroende på vilket tema som för närvarande är aktivt.

Inställningspanel API: Visar enhetsinställningar i din app

Om din app är riktad mot Android Q kan du inte längre ändra enhetens Wi-Fi-inställningar direkt. Istället måste du uppmana användaren att göra önskade ändringar med API: n för Inställningspanelen.

Du kan använda detta nya API för att visa innehåll från enhetens app för inställningar, som en inline-panel som glider över appens innehåll. Ur användarens perspektiv tillåter dessa kontroller i appen dem snabbt och enkelt att ändra sina enhets inställningar utan att behöva starta en separat app. För en applikationsutvecklare låter API på Inställningspanelen ändra Wi-Fi-status och andra viktiga enhetsinställningar, utan att uppmuntra användaren att navigera bort från din app.

I Android Q gör Google meddelanden om chatthuvudstil till en officiell del av Android-plattformen med introduktionen av Bubble API.

Designad som ett alternativ till SYSTEM_ALERT_WINDOW verkar bubblameddelanden att "flyta" ovanför annat applikationsinnehåll, i en stil som påminner om de flytande aviseringarna som Facebook Messenger använder för Android.

Bubble-meddelanden kan utökas för att avslöja ytterligare information eller anpassade åtgärder som gör det möjligt för användare att interagera med din app, utanför applikationens sammanhang.

När din app försöker skapa sin första bubbla kommer Android att fråga användaren om de vill tillåta alla bubblor från din applikation eller blockera alla bubblor. Om användaren väljer att blockera alla appens bubblor visas de istället som standardaviseringar. Dina bubblor kommer också att visas som standardmeddelanden när enheten är låst eller alltid visas på skärmen. För att ge en bra användarupplevelse måste du se till att alla dina bubblor visas och fungerar korrekt som vanliga meddelanden.

För att skapa en bubbla behöver du en aktivitet som definierar den expanderade bubblans beteende och en layout som definierar dess användargränssnitt. För en steg-för-steg-guide om hur du skapar din första bubblanmälan, kolla in Utforska Android Q: Lägga till bubblaviseringar i din app.

Öka tillgängligheten med systemomfattande gestationsnavigering

Användare med skicklighet kan ha lättare att interagera med sina enheter med gester. I Android Q har användare möjlighet att aktivera gestural navigation över hela enheten, vilket kommer att påverka varje applikation installerad på den enheten.

Även om du inte uppdaterar din app för att rikta in sig på Android Q, är din applikation kommer påverkas av enhetens navigationsinställningar, så du måste se till att din app är kompatibel med Android Q: s gestationsnavigering.

I gestusnavigeringsläge bör din app använda hela skärmen, så det första steget är att säga Android-systemet att din applikation stöder kant-till-kant-vy. Om du vill utforma din applikations helskärm kan du använda flaggorna SYSTEM_UI_FLAG_LAYOUT_STABLE och SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION, till exempel:

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

Du måste också implementera support för en transparent systemfält genom att lägga till följande till ditt tema:

När det är dags att testa din app, måste du kontrollera att Android Q: s systemgester inte utlöser någon av appens kontroller, till exempel knappar eller menyer. I synnerhet använder Android Q en inåt svep för Back-åtgärden och en uppåt för Home och Quick Switch, vilket kan störa alla UI-element som finns i dessa områden.

Om du under testet upptäcker att svepning från botten av skärmen, eller svepning inåt utlöser appens kontroller, kan du ange vilka regioner som är inställda för att få beröringsinmatning. För att blockera vissa områden, passera en lista till Android Q: s View.setSystemGestureExclusionRects () API, till exempel:

Lista exclusionRects; offentligt ogiltigt onLayout (booleska ändrade Canvas, int vänster, int top, int höger, int botten) {setSystemGestureExclusionRects (exclusionRects); } public void onDraw (Canvas canvas) {setSystemGestureExclusionRects (exclusionRects); }

Om din app använder några anpassade gester bör du också kontrollera att de inte strider mot systemets navigationsgest.

Fånga ljud från applikationer från tredje part

Android Q introducerar ett AudioPlaybackCapture API som gör det möjligt för din app att fånga ljud från andra applikationer - perfekt om du skapar en skärminspelningsapp!

För att spela in ljuduppspelning måste du begära RECORD_AUDIO-tillstånd och sedan:

  • Bygg en AudioPlaybackCaptureConfiguration-instans med AudioPlaybackCaptureConfiguration.Builder.build ().
  • Konfigurera och skapa AudioRecord-instansen genom att ringa setAudioPlaybackCaptureConfig och sedan överföra konfigurationen till AudioRecord-objektet.

Till exempel:

MediaProjection mediaProjection; AudioPlaybackCaptureConfiguration config = new AudioPlaybackCaptureConfiguration.Builder (mediaProjection) .addMatchingUsage (AudioAttribut.USAGE_MEDIA) .build (); AudioRecord-post = ny AudioRecord.Builder () .setAudioPlaybackCaptureConfig (config) .build ();

Detta nya API innebär att appar från tredje part som standard kan spela in Allt av din applikations ljud. För vissa appar kan detta vara ett integritetsproblem eller till och med göra din app risk för intrång i upphovsrätten. Vid behov kan du förhindra att tredje part fångar appens ljud genom att lägga till android: allowAudioPlaybackCapture = ”falskt” i ditt manifest.

Även med denna flagga på plats kommer systemappar fortfarande att kunna fånga appens ljuduppspelning, eftersom tillgänglighetsfunktioner som bildtexter beror på ljudinspelning.

För att ge en tillgänglig upplevelse rekommenderas att du alltid tillåter systemkomponenter att fånga appens ljud, men du kan blockera systemappar med hjälp av ALLOW_CAPTURE_BY_NONE-konstanten, om det behövs.

Förbättrad biometrisk autentisering

Android Q gör ett antal justeringar för Android: s BiometricPrompt-autentisering.

1. Kontrollera om det är biometriskt

Innan du anropar BiometricPrompt kan du nu kontrollera om enheten stöder biometrisk autentisering med den nya metoden canAuthenticate ().

2. Strömlinjeformade biometriska autentiseringsdialogrutor

Android Q gör en subtil förändring av BiometricPrompts autentiseringsdialogrutor.

Android tillåter användare att autentisera sin identifiering med hjälp av ett antal implicita "handsfree" biometriska metoder, såsom ansikte eller iris autentisering. Även om användaren verifierar sin identifiering med hjälp av en implicit modalitet, kommer de dock att göra det fortfarande måste trycka på dialogrutan Bekräfta-knappen för att slutföra autentiseringsprocessen.

För många implicita biometriska metoder är denna bekräftande åtgärd onödig, så i Android Q kan du begära att systemet tar bort bekräftelseknappen från din biometriska autentiseringsdialogruta.

Denna lilla förändring kan ha en positiv inverkan på användarupplevelsen, eftersom det är lättare att kontrollera din identitet genom att titta på din enhet än att titta på din enhet, vänta på att den ska känna igen ditt ansikte och sedan trycka på Bekräfta-knappen.

I Android Q kan du begära att systemet tar bort bekräftelseknappen genom att skicka falskt till metoden setConfirmationRequired (). Observera att systemet kan välja att ignorera din begäran i vissa scenarier, till exempel om användaren har inaktiverat implicit autentisering i enhetens inställningar.

3. Alternativa autentiseringsmetoder

Ibland kan en användare inte kunna autentisera med biometrisk ingång. I dessa scenarier kan du tillåta dem att autentisera sin identitet med hjälp av enhetens PIN-kod, mönster eller lösenord med den nya metoden setDeviceCredentialAllowed ().

När denna återgång har aktiverats kommer användaren initialt att uppmanas att autentisera med hjälp av biometri, men har då möjlighet att verifiera med hjälp av en PIN-kod, mönster eller lösenord.

Kör inbäddad DEX-kod direkt från din APK

I Android Q är det möjligt att köra inbäddad DEX-kod direkt från din APK-fil, vilket kan hjälpa förhindrande av attackerare att manipulera med din apps lokalt sammanställda kod.

Du kan aktivera den här nya säkerhetsfunktionen genom att lägga till följande i ditt manifestelement:

android: useEmbeddedDex = "true”

Du kan sedan bygga en APK som innehåller okomprimerad DEX-kod genom att lägga till följande i din Gradle build-fil:

aaptOptions {noCompress dex}

Nya behörigheter för aktivitetsigenkänning

Android Q introducerar ett nytt com.google.android.gms.permission.ACTIVITY_RECOGNITION körtidstillstånd för applikationer som behöver registrera användarens stegräkning eller kategorisera sin fysiska aktivitet, till exempel springa eller cykla.

Android: s API för aktivitetsigenkänning ger inte längre resultat om inte din applikation har det här nya ACTIVITY_RECOGNITION-tillståndet. Observera att om din app använder data från inbyggda sensorer som gyroskop eller accelerometer, behöver du inte begära tillståndet ACTIVITY_RECOGNITION.

Aktivitetsbegränsningar startar

För att hjälpa till att minimera avbrott lägger Android Q nya begränsningar när din applikation kan starta en aktivitet. Du hittar en komplett lista över alla villkor som möjliggör aktivitetsstart, över i de officiella Android-dokumenten.

Systemvarningsöverlagringar tas bort från Android Go

Om din app avslutas på en enhet som kör Android Q och Android Go kommer den inte att få åtkomst till SYSTEM_ALERT_WINDOW-behörigheten. Denna ändring har implementerats för att undvika de synliga prestandadropparna som kan uppstå när Android Go-enheter försöker rita överläggningsfönstret SYSTEM_ALERT_WINDOW.

Säg adjö till Android Beam

Android Q markerar slutet på Android Beam, eftersom denna datadelningsfunktion nu är officiellt avskriven.

Att hålla dina användare säkra: viktiga förändringar i sekretess

Android Q introducerar ett antal sekretessförändringar som ger användarna större kontroll över deras data och deras enhets känsliga funktioner.

Tyvärr kan dessa ändringar påverka din app beteende och kan till och med bryta din app helt. När du testar din ansökan mot Android Q bör du vara särskilt uppmärksam på följande sekretessförändringar:

1. Scoped-lagring: Android: s nya externa lagringsmodell

Android Q sätter nya begränsningar för hur applikationer får tillgång till extern lagring.

Som standard, om din app är inriktad på Android Q, kommer den att ha en "filtrerad vy" i enhetens externa lagring (tidigare känd som en "sandboxad vy"), som bara ger åtkomst till en appspecifik katalog.

Med scoped-lagring kan din applikation få åtkomst till den här appspecifika katalogen och allt dess innehåll, utan att behöva deklarera lagringsrättigheter.Din app kan dock bara komma åt filer som skapats av andra applikationer om det har beviljats ​​tillståndet READ_EXTERNAL_STORAGE och filerna finns i antingen Foton (MediaStore.Images), Videor (MediaStore.Video) eller Musik (MediaStore.Audio). Om din app kräver åtkomst till en fil som inte uppfyller dessa kriterier, måste du använda lagringsåtkomstramen.

I skrivande stund var det möjligt att välja bort scoped-lagring genom att lägga till android: requestLegacyExternalStorage = ”sant” till ditt projekts manifest, men enligt den officiella Android-dokumenten ska scoped-lagring så småningom krävas av alla applikationer, så det rekommenderas att uppdaterar du din app så snart som möjligt.

2. Bestäm när en app kan komma åt din plats

Android Q ger användare mer kontroll över när en applikation kan komma åt sin plats.

När din app kräver platsinformation, visar Android Q en dialogruta med frågan om användaren vill dela denna information:

  • När din app körs i förgrunden endast.
  • Hela tiden (dvs när din app är i förgrunden och bakgrunden).

Om användaren ger din app hela tiden åtkomst skapar Android Q regelbundna meddelanden för att påminna användaren om att din app kan komma åt sin plats när som helst.

För att implementera dessa ändringar introducerar Android Q ett nytt ACCESS_BACKGROUND_LOCATION-tillstånd.

Om din app kräver åtkomst till platsinformation medan den är i bakgrunden, måste du begära detta nya tillstånd, tillsammans med den befintliga ACCESS_COARSE_LOCATION eller ACCESS_FINE_LOCATION-behörigheten. Till exempel:

3. Nya begränsningar för icke-återställbara systemidentifierare

Om du behöver åtkomst till icke-återställbara systemidentifierare, till exempel IMEI och serienummer, måste du nu begära tillståndet READ_PRIVILEGED_PHONE_STATE.

När det är möjligt rekommenderas det att du använder alternativa metoder för att spåra användaren. Om du till exempel vill spela in användaranalys kan du skapa ett Android-annonserings-ID istället för att begära åtkomst till icke-återställbara enhetsidentifierare.

Se till att du är redo för Android Q: Testa din app

Det bästa sättet att säkerställa att din applikation ger en bra användarupplevelse på Android Q är att testa den på en enhet som kör Android Q.

Medan vi väntar på den officiella utgåvan finns det tre sätt att testa din app mot förhandsvisningarna för Android Q-utvecklare: registrera din enhet i Android Beta-programmet, manuellt blixtar en Android Q-systembild på din enhet eller använd en Android Virtual Enhet (AVD).

1. Installera Android Q-beta på en fysisk enhet

Om du äger en kompatibel enhet (hela listan finns här) kan du få uppdaterade Android Q-uppdateringar genom att registrera dig i Android Beta-programmet. I skrivande stund stöds alla Google Pixel-telefoner av Android Beta-programmet. Det inkluderar Google Pixel, Pixel XL, Pixel 2, Pixel 2 XL, Pixel 3, Pixel 3 XL, Pixel 3a och Pixel 3a XL.

Om du inte äger en Pixel är Android Q-beta också tillgänglig på utvalda enheter från en handfull tillverkare, inklusive Asus, Huawei, LG, Xiaomi och mer. För listan över enheter som stöds, kolla listan här.

När du har registrerat dig uppskattar Google att du kommer att få mellan tre och sex uppdateringar under programmets gång.

Innan du registrerar dig i Beta-programmet finns det flera nackdelar du måste vara medveten om. Förversionsversioner av Android kan innehålla buggar och fel som kan förhindra din enhet från att fungera normalt, och det finns inget officiellt support tillgängligt om du stöter på svårigheter. Användare som kör versioner av Android för pre-release kommer inte heller att få separata månatliga säkerhetsuppdateringar, vilket kan göra att din enhet är sårbar för attacker och utnyttjande.

Äntligen, även om du kan välja bort programmet och återgå till en stabil version av Android när som helst, kommer alla lokalt sparade data på din enhet att raderas när du återgår till den stabila versionen. Observera att om du förblir registrerad tills beta-programmets slut, kommer du att examen och få den slutliga, offentliga versionen av Android Q utan förlorar någon av dina data.

Om du vill börja ta emot Android Q-uppdateringar i luften går du till Android Beta-webbplatsen för mer information.

2. Blixta en Android Q-systembild manuellt

Om du inte gillar tanken på att ta emot Android Q-uppdateringar i luften kan du ladda ner och manuellt blinka en Android Q-systembild till din Pixel-enhet.

Google har publicerat systembilderna för alla kompatibla Pixel-enheter, tillsammans med instruktioner för hur man blinkar en systembild. Det här manuella tillvägagångssättet kan vara användbart om du behöver testa mot en specifik version av Android Q, eller om du vill börja testa omedelbart snarare än att registrera dig i Beta-programmet och eventuellt vänta upp till 24 timmar för att få din första uppdatering.

3. Använd Android-emulatorn

Om du inte vill ha riskerna med att installera beta-programvara på en fysisk smartphone eller surfplatta eller om du inte äger en kompatibel enhet kan du istället använda en AVD.

Så här laddar du ner den senaste Android Q-förhandsvisningsbilden:

  • Starta Android Studio.
  • Välj Verktyg> SDK Manager i verktygsfältet Android Studio.
  • Se till att fliken SDK-plattformar är vald.
  • Välj Visa paketdetaljer.
  • Välj Google Play Intel x86 Atom System Image.

  • Klicka på OK.
  • Skapa en AVD med den här systembilden.

Hur testar jag min app mot Android Q?

När du har en fysisk enhet eller AVD som kör Android Q, bör du lägga din app genom samma testprocesser och procedurer som du använder när du förbereder några släpp. När du testar bör du också vara särskilt uppmärksam på Android Qs sekretessförändringar, eftersom dessa har potential att bryta din app.

När du har verifierat att din applikation ger en bra användarupplevelse på Android Q bör du publicera din Android Q-kompatibla app till Google Play så snart som möjligt. Genom att släppa din app tidigt kan du samla in feedback innan majoriteten av din användarbas flyttar till Android Q.

Alternativt kan du använda Google Play-testspår för att driva din APK till en utvald grupp testare och sedan utföra en iscensatt rollout till produktion när du är nöjd med deras feedback.

Vi hoppas att den här artikeln hjälpte dig att göra din app redo för Android Q! Vilken Android Q-funktion är du mest upphetsad med?

Tänk på detta cenario: Alla du känner har en iPhone. Du beöker grupptrycket och köper inte bara en ny iPhone, utan å måningom en MacBook. Problemet är att du ar...

Träning är en ganka tvetydig term i Pokémon Go. Fan av franchien liknar träning med att lå och få erfarenhet för att göra Pokemon tarkare. I Pokémon Go f&#...

Mest Läsning