具有GPU硬件加速功能的Android图形用户界面

图形是Android平台的一大主题,包含java / jni图形框架和2D / 3D图形引擎(skia,OpenGL-ES,renderscript)。
本文档介绍飞思卡尔器件上的一般Android图形堆栈和UI功能。 


1. Android图形堆栈
  • 所有Android 3D应用和游戏都有以下图形堆栈:



  • Android系统用户界面和所有应用程序用户界面遵循如下的2D图形堆栈,硬件渲染将通过GPU硬件OpenGL-ES 2.0加速Android 2D UI,以提高整个UI性能。



硬件加速可以在设备/ fsl / imx6 / soc / imx6dq.mk中的i.mx6上禁用
USE_OPENGL_RENDERER:= false
然后重新构建frameworks / base / core / jni,并替换libandroid_runtime.so

  • Surfaceflinger负责所有表面层的组成,然后为显示设备生成帧缓冲区像素图。 这些图形表面层来自2D / 3D应用程序。


  • Hwcomposer是SurfaceFlinger和OpenGL-ES的替代模块。 Hwcomposer用于组合特定供应商设备支持的特定表面层。 飞思卡尔i.MX6器件使用GPU 2D来组合大多数表面层,并且可以使用GPU 2D而不是GPU 3D来减少系统功耗。 典型的省电情况是视频播放。
拥有GPU 2D的Hwcomposer可以在运行游戏和基准测试时卸载GPU 3D任务,它被证明可以提高整体系统性能约20%。


2.性能测量

  • 显示Android系统性能的FPS

对于NFS引导,您可以在init.freescale.rc(“setprop debug.sf.showfps 1”)中将“debug.sf.showfps”设置为1,然后重新引导系统。 对于SD或EMMC引导,您可以在控制台中发出命令“setprop debug.sf.showfps 1”,然后在顶部找到system_server线程并杀死它以重置系统。


  • 3D能力测量的图形基准

Quadrant

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

GLBenchmark

http://www.glbenchmark.com/

NenaMark2

https://market.android.com/details?id=se.nena.nenamark2

An3DBench

http://www.androidzoom.com/android_applications/tools/an3dbench_hnog.html

AnTutu

http://www.antutu.com/software.html

3DMark

http://www.futuremark.com/benchmarks/3dmark06/introduction/

  • 浏览器基准

http://www.webkit.org/perf/sunspider/sunspider.html

http://v8.googlecode.com/svn/data/benchmarks/current/run.html

http://www.craftymind.com/guimark2/

http://www.craftymind.com/factory/guimark/GUIMark_HTML4.html

http://themaninblue.com/writing/perspective/2010/03/22/


3. Android UI功能

  • 具有相同内容的双显示器

Android i.MX 6发行包中的默认图像支持此功能。 在此功能中,可以同时支持LVDS面板和HDMI输出。 它仅在HDMI电视机已连接到电路板时启用。

  • Overscan用于电视设备

有些电视机可能会错过显示过扫描区域的内容。 为了避免过扫描区域中的内容丢失,常用的工具是通过用可调整的黑色边框进行欠扫描,并让观看者调整黑色边框的宽度。 当通过HW OpenGL ES进行表面合成时,下扫描操作由surfaceflinger完成。 由于所有工作均由GPU硬件完成,因此不会影响性能。 可以在视觉模式下在显示设置中配置过扫描:


  • 32位颜色深度

可以通过在uboot中添加“bpp = 32”来支持32bpp UI,如下所示:

setenv bootargs'... video = mxcdi1fb:RGB666,XGA,bpp = 32 ...',也可以在显示设置中进行配置。

        启用32bpp帧缓冲区和应用程序表面缓冲区将分配给RGBA8888格式,而不是默认的RGB565格式,这意味着分配更多的系统内存。

        启用32bpp后,如果某些应用程序仍然没有更好的UI质量,请检查是否有硬代码请求RGB565格式表面(应请求RGBA8888格式以获得更好的质量)。

示例代码附带测试32bpp(左边是16bpp,右边是32bpp)


  • 显示可视化设置

显示设置是FSL Android版本中的附加功能,对于最终用户更改显示属性非常方便,主要针对以下功能:

双显示启用

显示颜色深度设置(16bpp,32bpp)

水平和垂直方向的过扫描调整


4.问题诊断
  • 应用兼容性

        某些Android应用程序可能无法在某些Android版本上正常运行。 它可能会导致应用程序兼容性,所以请在其他平台上检查应用

例如Neocore和Asphalt 5可以在Eclair,Froyo和姜饼上运行,但不能在Honeycomb上正确运行。 

  • GPU兼容性

        某些游戏用户界面可能无法正确显示在我们的Android版本上。 遇到这种问题时,客户可以使用我们的GPU不支持的OpenGL扩展来检查它是否是由游戏引起的。 他们可以下载另一个数据包(例如不包括扩展数据包)以进行检查。

  • 其他

         如果在运行应用程序一段时间后遇到UI异常显示,请加大GPU内存。 某些应用程序需要Wifi连接,因此请监视控制台日志以查看是否有任何错误报告。

原始附件已被移至: simple_draw_ics.tgz

原始附件已被移至: simple_draw.zip

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值