本文章转载于搜狗测试
一、你不知道的:调试GPU过度绘制(Debug GPU overdraw)
(1)什么是Overdraw?
Overdraw就是过度绘制,是指在一帧的时间内(16.67ms)像素被绘制了多次,正确的绘制方式应该是一个像素每次只绘制一次,由于重叠布局导致一些像素会被多次绘制,每次绘制都会占用CPU,当绘制操作超时时,就会出现卡顿现象。
(2)如何开启工具?
Android系统为测试人员提供了一个简单的检测工具,如下图所示:
该功能会用几种不同的颜色绘制屏幕,来标识overdraw发生的位置以及程度如何,各种颜色的意义如下:
原色: 意味着没有overdraw。像素只画了一次。
蓝色: 意味着overdraw 1倍。像素绘制了两次。大片的蓝色还是可以接受的(若整个窗口是蓝色的,可以摆脱一层)。
绿色: 意味着overdraw 2倍。像素绘制了三次。中等大小的绿色区域是可以接受的但你应该尝试优化、减少它们。
浅红: 意味着overdraw 3倍。像素绘制了四次,小范围可以接受。
暗红: 意味着overdraw 4倍。像素绘制了五次或者更多。这是错误的,要修复它们。
(3)哪里用得到?
小编之前是测试新闻类型APP的,需要关注新闻列表滚动时的流畅度,用户需要重复滚动一个列表从而达到获取新闻的需求,之前不知道原因时都是提交这样的BUG:“某新闻频道列表出现卡顿”但是后来知道原因后就提交这样的BUG:“由于过度绘制原因导致某新闻频道列表出现卡顿”直接告诉开发原因在哪里,是不是成就感倍增呢,我们来看下实例图:
优化之前:
优化之后:
二、你不知道的:不保留活动(Don’t keep activities)
(1)什么是Activity?
Activity是为用户提供可视化界面并可以与用户交互的组件。
(2)如何开启?
当然也是在开发者选项中,如下图:
(3)哪里用的到?
小内存手机测试:当你从Activity A跳转到Activity B时,Activity A就会被立即销毁,这一般用来模拟设备内存不足时后台Activity被销毁的场景
兼容不同ROM:ROM版本繁多各大厂商在形成自己系统风格过程中,也会对Activity管理方式做改动,会销毁不使用的Activity,我们来看下实例图:
细心的同学会发现Activity B返回Activity A时,Activity A重新创建了,同时造成了UI显示异常。