Hur Google optimerade Android 4.4 med hjälp av nedbantad Nexus 4

Postat:
17:11 - 2013-11-27
Skribent:
| Lars A
Kommentarer:
56

En av de största nyheterna i KitKat som presenterades för en knapp månad sedan är att Android inte längre är ett lika resurskrävande system. Google har strömlinjeformat systemets komponenter för att reducera minnesanvändningen. Android 4.4 ska rentav fungera utmärkt på budgetmobiler med klenare hårdvara och så pass lite som 512MB arbetsminne.

Google har satsat på att göra Android snabbare ända sedan Jelly Bean som kom förra sommaren med sitt Project Butter. Ansträngningen att ge Android bättre flyt på modern hårdvara ökade dock systemkraven och Jelly Bean behöver kraftfullare komponenter än tidigare Androidversioner. Hur gick det till när företaget sänkte Androids minneskrav? Nya satsningen har det interna namnet Project Svelte (”slank/smärt” på engelska) och är som sagt del av KitKat. Androidingenjörschefen Dave Burke förklarar.

The goal of Project Svelte was basically to reduce the memory footprint to fit into 512 megs. The way we did it, by the way … was to take a Nexus 4 and adapt it to run at 512 megs.

We adapted the resolution to qHD that is 960-by-540 because that is kind of the sweet spot for entry level smartphones. We reduced it from four CPUs to two CPUs. We reduced the clock frequency and whatnot. And literally a bunch of us just used that as our default phone. It was painful and it was broken to start with.

För att testa att KitKat går att köra på enheter med klenare hårdvara anpassade de Nexus 4 så den bara kunde använda 512MB RAM. Ingenjörerna halverade antalet kärnor, sänkte klockfrekvensen och lät skärmen jobba i qHD-upplösning (540 x 960 pixlar). Alla ingenjörerna började använda den här nedbantade och fördummade varianten av Nexus 4.

Burke berättar att det var plågsamt att använda enheten då Android inledningsvis hade svårt att flyta på så klen hårdvara. Teamet hade fyra tydliga mål.

  • Att reducera hela systemets minnesanvändning.
  • Att reducera alla appars minnesvändning.
  • Att åtgärda hur appar reagerar och stängs ner i situationer med dåligt minne.
  • Att tillhandahålla bättre verktyg för utvecklare så de kan se hur minneshungriga deras appar är.

procstats-kitkat-1procstats-kitkat-2

Den sistnämnda punkten har inget ansikte utåt i Android för vanliga användare, men kan nås från utvecklarinställningarna i KitKat. Funktionen kallas ProcStats och visar hur mycket RAM-minne dina appar för tillfället använder. När ingenjörerna skapade ProcStats märkte de att några av Googles egna appar inte var minneseffektiva. De berörda apparna rensades upp och förbättrades efter upptäckten.

Kontentan är att KitKat flyter bättre och kräver mindre resurser samtidigt som det är den mest funktionsfyllda Androidversionen hittills.