关于ANDROID GRAPHICS的文章

来自Google的Android工程师Dianne Hackborn写的,原意是反驳一些关于android和ios的对比(主要是关于图形性能),后来也引起了很多的讨论。

[第一段]
某些Android图形的真实情况如何?

(编辑:有很多评论都将其视为Android的借口或对用户等无关紧要。我只是想澄清一下,我之所以写这篇文章只是为了解决我看到的许多错误信息作为真理发布在网络上。这绝不是找任何借口,它仅适用于那些已经对编写和阅读通常事实不正确的技术信息感兴趣的人。

我厌倦了看到如此多的错误信息,并且到处重复有关图形渲染在Android上的工作方式。这是一些事实:

•Android一直使用一些硬件加速绘图。从1.0之前的版本开始,使用硬件完成所有窗口的合成。

•这意味着您看到的许多动画始终都是硬件加速的:显示菜单,滑动通知栏,活动之间的过渡,显示和隐藏的弹出窗口和对话框等。

•Android过去确实使用软件来渲染每个窗口的内容。例如,在http://www.simplemobilereview.com/wp-content/uploads/2010/12/2-home-menu.png这样的UI中,有四个窗口:状态栏,墙纸,位于顶部的启动器壁纸和菜单。如果其中一个窗口更新了其内容(例如突出显示菜单项),则将使用(3.0之前的版本)软件绘制该窗口的新内容;否则,将使用该软件绘制该窗口的新内容。但是,其他所有窗口均未重绘,并且这些窗口的重新构成是在硬件中完成的。同样,窗口的任何移动(例如菜单的上下移动)都是硬件渲染。

•查看窗口内部的绘图,您不一定需要在硬件中执行此操作即可实现完整的60fps渲染。这在很大程度上取决于显示器中的像素数量和CPU的速度。例如,Nexus S可以毫无问题地对您在Android UI中看到的所有普通内容进行60fps渲染,例如在其800×480屏幕上滚动列表。但是,原始的Droid仍在努力获得类似的屏幕分辨率。

•Android 3.0中添加了窗口中的“完整”硬件加速绘图。Android 4.0中的实现不比3.0中的实现更全面。从3.0开始,如果您在应用中设置允许允许硬件加速绘图的标志,则到应用程序窗口的所有绘图都将由GPU完成。Android 4.0在这方面的主要变化是,现在明确针对4.0或更高版本的应用将默认启用加速功能,而不必在清单中放入android:handwareAccelerated =“ true”。(而且并非所有现有应用程序都启用此功能的原因是,某些类型的绘图操作无法在硬件中很好地支持,并且还会影响应用程序要求更新其UI的一部分时的行为。

•硬件加速绘图并非全部取胜。例如,在Nexus S和Galaxy Nexus等设备的PVR驱动程序上,仅在进程中开始使用OpenGL就会占用大约8MB的RAM。鉴于我们的过程开销约为2MB,这是非常巨大的。RAM可以避免其他事情,例如可以继续运行的后台进程的数量,有可能减慢诸如应用程序切换之类的工作。

•由于OpenGL的开销,很可能不希望将其用于绘图。例如,为了使Android 4.0在Nexus S上正常运行,我们正在做的一些工作涉及在部分UI中关闭硬件加速绘图,因此我们不会在系统进程中丢失8MB的RAM,而在手机中不会丢失8MB的RAM。进程,系统UI进程中还有另外8MB,等等。相信我

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值