在看Falcon Pro之前,让我们看一下设置Show GPU overdraw选项的页面长什么样。
如果你记得每种颜色代表的含义,这些结果就很容易解释: - 没有颜色意味着没有透支。像素只画了一次。在这个例子中,你可以看到背景颜色没有变化。
- 蓝色 意味着透支1倍。像素绘制了两次。大片的蓝色还是可以接受的。 (如果整个窗口是蓝色的,你可以摆脱一层。)
- 绿色 意味着透支2倍。像素绘制了三次。中等大小的绿色区域是可以接受的但你也应该尝试优化,减少他们。
- 浅红 意味着透支3倍。像素绘制了四次。小范围内可以接受。
- 暗红 意味着透支4倍。像素绘制了五次或者更多。这是错误的,要修复他们。
基于此信息你可以看到设置是一个好的应用程序,不需要任何额外的工作。有一点红色在转换部分,但是并不需要过于纠结。 透明像素:仔细看看以前的截图。每个图标是蓝色的。你可以看到位图的透明像素加剧了透支。透明像素必须被GPU处理并且代价是昂贵的。Android使用层和9-pathches作为最优方案去避免绘制透明像素,所有你只用考虑位图就行。 透支和GPU: 在移动设备上有两种GPU架构。第一个使用了延迟渲染, 例如:ImaginationTech的SGX系列。 这种架构允许GPU检测和修复透支的具体情况 (如果你是混合透明或半透明的像素,它将不起作用)第二结构采用直接绘制,可以在NVIDIA的Tegra GPU的找到。这种体系结构不能优化你的透支,这就是为什么我喜欢在Nexus 7试验。两种架构都是各种所长,各有所短,但是具体的内容已经超出本文范围。只要知道两种方式都很好的运行。
现在让我们看一下 Falcon Pro…
截图中有大片的红色! 然而有趣的是列表的背景是绿色的。这表明该应用甚至在绘制正文之前,就有了一个2倍的过度绘制。这里我们看到的问题很可能跟多重全屏背景有关。要修复它通常比较容易。 删除附加层
为了减少透支,我们必须了解它是怎么来的。这是比层次视图、跟踪OpenGL更有用。层次视图是ADT(或者{敏感词})的一部分,并可以生成层次视图快照。特别是调试布局问题,很有帮助,对性能工作更是得心应手。
重要提示:层次视图只能工作在非安全设备上,比如工程机、平板或者模拟器。在某些设备上使用层次视图需要在你的应用上安装ViewServer(一个开源库)。
在ADT(或监视器)中打开 层次查看视图 ,然后选择 Windows 选项卡。斜体高亮的窗口是设备的前台窗口,也就是通常情况下你要查看的那个。点击它然后 点击工具条中的 Load 按钮 (它看起来像一个由蓝方框组成的的树形结构)。加载这棵树可能需要一会儿所以要有耐心。加载好后,可以看到类似下图的样子。
现在层次的视图已经展现在工具中,我们可以查看它就像浏览一个Photoshop文档那样。要进行查看可以点击工具条中的第二个按钮 – 该按钮的提示是“捕获窗口层次[…]”。Adobe Photoshop不是必须的,因为这里生成的文档也可以由诸如Pixelmator和GIMP之类的工具来打开。我生成的PSD 文件已经可以从网上下载。
|