Googles Dianne Hackborn reder ut Androids hårdvaruacceleration

Postat:
16:54 - 2011-12-05
Skribent:
| Lars A
Kommentarer:
56

Googles Dianne Hackborn reder ut Androids hårdvaruacceleration

Dianne Hackborn arbetar för Google som androidingenjör och har mycket god inblick i plattformens stomme, inte minst för att hon har varit med och utvecklat den. Hackborn berättar att hon tröttnat på alla feluppfattningar om hur Androids grafikrendering fungerar och har därför skrivit ett mycket informativt och pedagogiskt inlägg på sin Google+-sida.

Här är en snabb genomgång av vad hon förklarar i sitt inlägg om Android och dess hårdvaruacceleration:

* Android har alltid använt någon form av hårdvaruacceleration. Även innan version 1.0 har alla fönster satts samman med hårdvara.

* Detta innebär att många av Androids animationer alltid varit hårdvaruaccelererade, som exempelvis menyer, neddragningen av notifikationsfältet, pop up-fönster och övergångar mellan aktiviteter.

* Innehållet i varje fönster har dock renderats av mjukvara fram till Android 3.0. Om man kikar på bilden till höger finns fyra fönster: statusfältet högst upp, bakgrundsbilden, launchern ovanpå bilden och menyn längst ner. Om något av fönstren uppdaterar sitt innehåll ritas det nya innehållet upp med hjälp av mjukvara, medan de andra fönstren förblir orörda. Återkompositionen av fönstren sker genom hårdvara.

* Rendering av innehåll inuti ett fönster kräver inte nödvändigtvis hårdvaruacceleration för att uppnå 60FPS. Det beror på pixeldensiteten och hur snabb processorn är. Nexus S med sin WVGA-skärm har exempelvis inga problem att uppnå rendering i 60FPS utan hjälp av hårdvaran.

* Full hårdvaruacceleration även inom fönster kom först i och med Android 3.0. Ice Cream Sandwich är inte mer hårdvaruaccelererat än Honeycomb. Skillnaden är att i Android 4.0 behöver inte appar som är designade för ICS uttryckligen säga att de ska vara hårdvaruaccelererade: det sker automatiskt.

* Hårdvaruacceleration är inte alltid att föredra, eftersom det på vissa enheter kräver förhållandevis mycket RAM-minne. På grund av detta stängde Google av hårdvaruacceleration i vissa delar av gränssnittet av Ice Cream Sandwich för Nexus S.

* Hårdvaruacceleration är inget magiskt sätt att få ett supersnabbt och lent gränssnitt. Det finns många fler saker man kan göra för att få flyt i interfacet, och det har Google gjort sedan Android 1.6.

* När Androids webbläsare tidigare inte kunde uppnå samma flyt som i iOS, berodde detta inte på avsaknad av hårdvaruacceleration.

De som vill veta mer om hur Android renderar grafik kan med fördel besöka Dianne Hackborns Google+-sida. Det är intressant läsning och det går att finna ytterligare kuriosa bland inläggets kommentarer.

Uppdatering: Som vi nämnde i vår genomgång av nyheterna i Ice Cream Sandwich beror många av de så kallade mikrofrysningarna på Javas ”Garbage Collection”, vilken förbättrats kraftigt i Android 4.0. Således har de små hacken vi ibland erfar på våra androidmobiler sällan något med bristen på hårdvaruacceleration att göra.

Tipstack till Sebastian!

Lägsta pris på Google Nexus S på Prisjakt just nu:
Lägsta pris på Google Galaxy Nexus på Prisjakt just nu: