图形是Android平台中的一个大主题,包含java/jni图形框架和2d/3d图形引擎(skia、OpenGL-ES、renderscript)。

本文档描述了飞思卡尔设备上的一般Android图形堆栈和UI特性。

1. Androidt图形堆栈

所有Android 3D应用和游戏都有如下图形堆栈:

68ba205724d4f4cdf8ed5ef9d86bdc9d.png

Android系统UI和所有应用程序UI遵循如下二维图形堆栈,硬件渲染将使用GPU HW OpenGL-ES 2.0加速二维UI,提高性能。

e46ca158729ab3608ba9259f6b6ac8c9.png

硬件加速可以在i.mx6上通过device/fsl/imx6/soc/imx6dq.mk设置关闭:

USE_OPENGL_RENDERER := false

然后重新编译frameworks/base/core/jni 替换 libandroid_runtime.so

Surfaceflinger 负责显示层的合成, 然后为显示设备对应framebuffer生成数据,图像显示层来自 2D/3D 应用.

9610f900e0d0617fe29f7b6069b9e0b3.png

Surfaceflinger中Hwcomposer是OpenGL-ES接口的替代模块,Hwcomposer用于合成供应商设备支持的特定界面。飞思卡尔 i.MX6设备使用GPU 2D合成大部分界面。使用GPU 2D代替GPU 3D可以降低系统功耗,典型的节电场景如:视频回放。

Hwcomposer使用GPU 2D,可以在运行游戏和基准测试时减轻GPU 3D负载,系统总体性能提高约20%。

528f5f702326f84e6c64b3d18c7571ba.png

2. 性能测量

显示FPS体现Android系统性能

如果是NFS启动,需要在init.freescale.rc 中设置 “setprop debug.sf.showfps 1” ,然后重启。

对于SD或EMMC启动方式,可以设置 “setprop debug.sf.showfps 1”,然后kill system_server来重置系统。

17f685773b577da3fceea1249fe0ab82.png

三维能力测量的图形基准

Quadrant

完整的测试基准包括CPU,内存,IO, 2D和3D

GLBenchmark

NenaMark2

An3DBench

AnTutu

3DMark

浏览器的标准

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐