安卓性能案例研究后续(未完成)

安卓性能案例研究后续

两年前,我发布了一篇名为 Android性能案例 的文章来帮助Android开发者了解哪些工具和技术可以被用来定位,跟踪,和解决性能问题.

那一篇文章专注于 [Falcon Pro](“https://play.google.com/store/apps/details?id=com.jv.materialfalcon“) ,Vergès. Joaquim开发的Twitter客户端. Joaquim非常慷慨的让我在我的文章中使用它的应用作为分析案例,并且他迅速的解决了我发现的问题.
他的开发在那之后一切都很顺利,直到他开始猎鹰 Falcon Pro 3. 在他将要发布他的应用之前,
Joaquim联系了我,因为他需要我帮助解决一个影响滚动的性能问题(再一次强调,我没有阅读他的源码).

Joaquim 使用了所有正确的工具并且快速的排除了那些不会引起该问题的可能.
举例来说,他发现不是过度绘制的问题.他把问题缩小到了使用 ViewPager
上面.下面是他发过来的截图:


screenshots


Joaquim使用了显示在系统屏幕上的GPU指示图来检测帧数下降的发生.左边的截图显示了在没有 ViewPager 时的时间线滚动的情况,右边的截图显示了有 ViewPager的情况.问题的根源似乎很明显了.

我第一个想法是看看是否 ViewPager 错误的使用了硬件层.这个我们观察到的性能问题可能是因为每一帧list的滚动都会导致硬件层的刷新.然而系统的 硬件层更新调试工具 并没有透露一些线索.后来我又使用了HierarchyViewer来检测,最终我相信 ViewPager 是没有问题的.(I double checked with HierarchyViewer and I was satisfied that the ViewPager was behaving correctly (the contrary was unlikely anyway and would have been troublesome))

然后我使用了另外一个很强大但很少使用的工具 Tracer for OpenGL.我 上一篇 文章解释了该工具的细节使用方法.你现在需要知道的是这个工具收集了所有的UI空间发送给GPU的绘制命令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值