在Android上,有一种方法可以找到GPU过度绘制,以衡量您的应用在GPU上的效果。
从Kitkat开始,有新的方法:
“显示透支区域”显示每幅图画的糟糕程度(从无,蓝色,绿色,黄色到红色)。
第二个(“显示Deutoranomaly的区域”)是相同的,但对于有色盲的人。
我找不到关于最后一个“show overdraw counter”的任何文档。
我已经尝试启用它,并且对于屏幕上的某些地方,我看到一个计数器在某些情况下会更改其数量。与其他选择相比,它也会使设备放慢速度。
另外,我在my own app上运行了它,即使listView表现得非常好,因为Admob它显示了一个非常高的红色值(大约5-6)。我不知道为什么会这样,因为它只是一个listView和一个在linearLayout中的adView ......
这个计数器是什么意思?
为什么Admob会如此增加?这是件坏事吗?我该怎么办呢?
删除Admob会将值减少到合适的值(大约1-2,取决于所使用的主题),或者至少是我所假设的。
对于每个窗口都有一个计数器,告诉你多少次 你已经绘制了屏幕和颜色,告诉你你是否已经完成它 好(绿色=好,红色=坏)。这个数字有一个“。”因为它是 平均数。
但我仍然不明白为什么Admob Adview让它变得如此糟糕
我明白了。所以问题似乎与硬件加速有关 - 如果你 关闭AdView上的硬件加速,这不会发生:
adView.setLayerType(View.LAYER_TYPE_SOFTWARE,null);
它有效,但我不明白这怎么可能是件好事。我的意思是,现在CPU负责视图,对吧?