图形是Android平台中的一个大主题,包含java/jni图形框架和2d/3d图形引擎(skia、OpenGL-ES、renderscript)。
本文档描述了飞思卡尔设备上的一般Android图形堆栈和UI特性。
1. Androidt图形堆栈
所有Android 3D应用和游戏都有如下图形堆栈:
Android系统UI和所有应用程序UI遵循如下二维图形堆栈,硬件渲染将使用GPU HW OpenGL-ES 2.0加速二维UI,提高性能。
硬件加速可以在i.mx6上通过device/fsl/imx6/soc/imx6dq.mk设置关闭:
USE_OPENGL_RENDERER := false
然后重新编译frameworks/base/core/jni 替换 libandroid_runtime.so
Surfaceflinger 负责显示层的合成, 然后为显示设备对应framebuffer生成数据,图像显示层来自 2D/3D 应用.
Surfaceflinger中Hwcomposer是OpenGL-ES接口的替代模块,Hwcomposer用于合成供应商设备支持的特定界面。飞思卡尔 i.MX6设备使用GPU 2D合成大部分界面。使用GPU 2D代替GPU 3D可以降低系统功耗,典型的节电场景如:视频回放。
Hwcomposer使用GPU 2D,可以在运行游戏和基准测试时减轻GPU 3D负载,系统总体性能提高约20%。
2. 性能测量
显示FPS体现Android系统性能
如果是NFS启动,需要在init.freescale.rc 中设置 “setprop debug.sf.showfps 1” ,然后重启。
对于SD或EMMC启动方式,可以设置 “setprop debug.sf.showfps 1”,然后kill system_server来重置系统。
三维能力测量的图形基准
Quadrant
完整的测试基准包括CPU,内存,IO, 2D和3D
GLBenchmark
NenaMark2
An3DBench
AnTutu
3DMark
浏览器的标准