Innehållsförteckning:
Varje gång mjukvaran på våra telefoner får en stor uppdatering, hör vi hur den kommer att prestera bättre och använda mindre av vårt batteri. Det är ofta sant, men idéerna och hur de implementeras behöver massor av finjustering för att möta förväntningarna. Android 7.0 förbättrar två befintliga funktioner för att hjälpa dem att leva upp till deras fulla potential: Projekt Doze och Project Svelte.
Målen är enkla - hitta sätt att göra telefonen mindre ström hungrig när du inte använder den och bättre hantering av bakgrundsprocesser. All mjukvara är byggd med betoning på prestanda och effektivitet och ett operativsystem så mycket mer. Vi tittar på förändringarna och ser hur de kan påverka.
Projekt Svelte
Project Svelte anlände 2013 med lanseringen av Android 4.4 KitKat som ett sätt för operativsystemet att prestera bättre på lägre telefoner. På den fronten lyckades det, men vi förväntade oss större förändringar än vi fick. För en bra uppfattning om vad Sveltes ursprungliga avsikter var, leta inte längre än Android One. Målet var att skapa billig hårdvara som kör den senaste versionen av Android tillräckligt bra för att rekommendera.
Med Android 7.0 fortsätter projektet att minska prestandapåverkan genom att ha ett ännu bättre system för hantering av bakgrundsprocesser.
Ändringar av Svelte behandlar två specifika och viktiga frågor som tvingar appar att köra i bakgrunden
Android skiljer sig mycket från iOS. Varje utvecklare kan betala en mycket liten avgift och publicera en app i Google Play tillsammans med namn som Facebook eller Samsung. Förutsatt att appen inte har någon skadlig kod kommer den att gå live för alla att installera, och såvida den inte rapporteras för olämpligt innehåll eller åtgärder får den att stanna (även om Google säger att den gör en automatiserad kontroll av varje app innan du trycker på den live). Det är långt ifrån varje app som skickas genom en manuell godkännandeprocess, och det betyder att appar inte avvisas eftersom de inte följer bästa utvecklingspraxis. Beteendet hos några av de nuvarande API: erna hjälper inte, och även de bästa apparna kan vakna upp och använda resurser för ofta på grund av en felaktig process.
Förbättringar av Svelte i Android Nougat fixar två bländande problem:
- Appar kontrollerar om nätverket ändras med det som kallas en sändningsmottagare. När en förändring inträffar, vaknar varje app som lyssnar efter ändringen genom standardmetoden samtidigt och försöker bearbeta data om förändringen. Tänk på hur din telefon fungerar när den först startas och allt försöker hända på en gång, och du har en uppfattning om varför detta behöver någon slags förbättring. När appen är riktad mot Android 7.0 kan appar bara lyssna på nätverksförändringar via huvudtråden (vad som körs när appen är vaken och du använder den) så att de inte vaknar varje gång du byter nätverk. Detta kommer att använda mindre RAM och CPU-tid, vilket innebär att våra telefoner kommer att prestera bättre och använda mindre ström.
- I tidigare versioner av Android kunde appar lyssna på en liknande sändningsmottagare för att ta en bild eller video. När det hände vaknade varje applikation som lyssnade och försökte behandla uppgifterna på en gång. Som ovan är det inte särskilt bra på prestationsfronten. I Android 7.0 kan den nya bilden och de nya videosändningarna inte skickas. Det betyder att även om utvecklare inte uppdaterar befintliga appar kommer de aldrig att få höra att vakna när en bild eller video tas.
För att appar ska göra många av de saker vi vill att de ska göra måste de hålla sig vid liv. Bantning av sakerna de gör medan de tyst väntar på att bli aktiva igen genom att eliminera onödiga funktioner innebär att färre appar körs istället för att sova när de skickas till bakgrunden.
Project Doze
Så som saker fungerar nu, älskar du antingen Doze eller så ser du inte Doze göra något märkbart på din telefon. Det är på grund av hur det fungerar.
När Doze debuterade i Android 6.0 var syftet att skjuta upp CPU- och nätverksaktivitet medan telefonens skärm var avstängd, kopplad och rörlig. Om alla tre kriterierna inte uppfylldes, skulle Doze inte slå in och appar skulle fortsätta att fungera som normalt. Detta fungerade bra på kontoret och på skrivbordet, men så fort det gick in i fickan slutade Doze göra någonting och fördelarna upphörde.
En tvåstegssläckare låter din telefon använda mindre batteri medan du är igång och flyttar också
Beteendeförändringen i Android Nougat är enkel. Doze har nu två steg: det ena är när skärmen är av och telefonen kopplas ur, och den andra när telefonen också är rörlig.
När din telefon bara körs på batteriet och skärmen har varit avstängd under en viss tidsperiod kommer applikationer att stoppa direkt åtkomst till nätverket och aktiviteter som synkronisering och andra jobb skjuts upp tills en förutbestämd tid går. Sedan tillåter ett kort underhållsfönster dem att utföra normala bakgrundsfunktioner. Den här delen fungerar medan din telefon är i fickan eller utsätts för andra rörelser.
När telefonen också har varit stilla under en viss tid, är alla Doze-begränsningar - ytterligare saker som appar som vaknar i bakgrunden eller lyssnar på vad som kallas larm (inte den typ som väcker dig på morgonen, de som inte påverkas) eller letar efter den aktuella platsen - tillämpas ovanpå nätverket och uppskjutningar av jobb. Underhållsfönstret visas fortfarande regelbundet, men mellan dessa fönster lever din telefon knappt och gör inte så mycket förrän du tar upp den.
Vi vet hur bra Doze fungerar (när den inte har ändrats av personerna som byggde din telefon) medan telefonen är stilla. Nu får vi också se en fördel när vi också är på väg.
Kommer ändringarna av Svelte och Doze att fixa alla prestanda och batteriproblem? Svaret är naturligtvis nej. Men dessa förändringar är logiska steg som tar upp två mycket specifika saker som behövs adresseras. resultatet kommer att visa sig vara bättre än vad vi har nu, även om det inte kan lösa allt.