La veritat sobre l'acceleració de maquinari a Android

Acceleració de maquinari d

Quan es compara la plataforma Android relativament oberta amb un sistema estretament controlat com iOS, una de les primeres diferències que la gent nota és la suavitat superior de les aplicacions a iOS. Això té Android va lluitar amb des dels seus inicis, però molts dels supòsits fets sobre el sistema gràfic d’Android i la seva relació amb la suavitat de la interfície són incorrectes. L’enginyer de Google, Dianne Hackborn, va explicar els recorreguts de l’acceleració del maquinari d’Android en un article recent Publicació de Google+, i potser no seria la bala màgica que tothom esperava.

Al contrari del que sempre hem escoltat, Android ha tingut alguns acceleració de maquinari per dibuixar elements d’interfície d’usuari 2D des d’abans de l’1.0. Moltes de les animacions que veiem cada dia a Android han estat accelerades per maquinari tot el temps. Per exemple, es dibuixen menús, quadres de diàleg, lliscament cap avall a la barra de notificacions i transició entre activitats mitjançant la GPU.



Tota la 'composició de finestres' es fa mitjançant la representació de maquinari basada en GPU. Podem pensar en això com dibuixar qualsevol element nou a la pantalla. Quan es prem el botó de menú, la superposició resultant la gestiona la GPU. Si aquesta superposició canvia, com si es ressaltés o es premés un botó, aquest canvi es renderitzarà al programari i la majoria dels telèfons són més que capaços d'empènyer aquests píxels. Quan es canvia tota la finestra, és una tasca de la GPU.



Llavors, què està canviant Sandwich de gelat (ICS)? Segons Hackborn, el que veurem a Android 4.0 és l’acceleració de maquinari “completa”. Tots els elements de la interfície d’usuari de Windows i les aplicacions de tercers tindran accés a la GPU per representar-los. Android 3.0 tenia el mateix sistema, però ara els desenvolupadors podran orientar-se específicament Android 4.0 amb acceleració de maquinari. Google anima els desenvolupadors a actualitzar les aplicacions perquè siguin totalment compatibles amb aquest sistema afegint l’etiqueta d’acceleració de maquinari al manifest d’una aplicació.

És probable que això passi un temps perquè els desenvolupadors certifiquin les seves aplicacions a ICS, però Google ha inclòs un canvi a la configuració d’Android per forçar la representació del maquinari. Hackborn adverteix que, en aplicacions no provades, això pot trencar coses de manera subtil o fonamental. Aquest és només el primer problema possible amb l'acceleració de maquinari a Android.



Sandvitx de gelat AndroidEn representar totes les animacions i la interfície d’usuari d’una aplicació amb la GPU, el sistema obté un èxit en l’ús de la memòria. La càrrega dels controladors OpenGL per a cada procés suposa un ús de memòria d’aproximadament 2 MB i augmenta fins a 8 MB. En dispositius amb memòria RAM limitada, pot ser un problema real. Quan es mengi més memòria RAM, el sistema haurà de tancar necessàriament més tasques en segon pla per estalviar memòria. Com a resultat, és possible que alguns desenvolupadors no vulguin utilitzar la GPU per dibuixar.

L’objectiu de la representació de maquinari per a la interfície és aconseguir un funcionament més fluït, però si no es gestiona adequadament, els dispositius Android poden tenir un rendiment pitjor. Utilitzant l’exemple de Tegra 2, que pot representar tots els píxels d’una pantalla de 1280 × 800 2,5 vegades per segon a 60 FPS, el problema és clar. La GPU toca cada píxel una vegada per al fons, una vegada per a les icones i els widgets, una vegada més per a les etiquetes i, a continuació, hi ha animacions per tractar. No hi ha manera d’arribar a 60 FPS fent les coses de tal manera.

Android fa que l’acceleració del maquinari funcioni amb diversos trucs i els desenvolupadors haurien de prendre nota. En primer lloc, les finestres separades de la interfície es copien en superposicions unificades per obtenir un accés més eficient a la GPU. Android també representa el fons com un gran mapa de bits que no cal tornar a representar a mesura que l’usuari es desplaça.



Els desenvolupadors hauran de ser prudents en la manera de gestionar l’acceleració del maquinari. Simplement dibuixar-ho tot amb la GPU pot resultar en un mal rendiment en els telèfons existents. Per al futur, com més gran sigui la resolució d’un dispositiu, més velocitat de GPU relacionada tindrà amb la suavitat general i la proximitat a aquest llindar de 60 FPS. El factor limitant de la velocitat d’un dispositiu és sovint l’amplada de banda del bus de memòria de la GPU.

Copyright © Tots Els Drets Reservats | 2007es.com