Falcon Pro
我最近在我的Nexus 4上安装了Falcon Pro,一个新的Twitter客户端。我真的很喜欢使用这个应用程序,但我在使用它时注意到了某些地方存在一些问题,看起来滚动主时间轴并没有得到非常稳定的帧率。我深钻了一下我每天工作所用工具和技术中的一些,我能很快地找到一些Falcon Pro 并不如它本可以表现得那么好的原因。
我在这篇文章里的目的是告诉你如何追踪和修复应用程序中的性能问题,即使你没有它的源代码。所有你需要的只是一份最新的Android 4.2 SDK –新的ADT bundle使设置变得简易。我极力推荐你下载这个应用程序来亲自应用这里描述的技术。对你来说不幸的是Falcon Pro是款付费应用,因此我将给您提供你可以下载的各种文件的链接来跟随我的分析。 关于性能
Android 4.1把重点放在Butter项目的性能上,它带来了新的性能分析工具,如systrace。Android 4.2不提供象systrace那么显著的工具,只是提供了对你的工具箱的一些有益补充。在本文的后面你会发现这些新工具中的一个。
性能分析往往是一个复杂的任务,需要大量的经验和对某些工具、硬件、API的深入的知识等等。经验使我能只用几分钟就进行在这里展示的分析——你可以在我十二月一日的Twitter stream上看到它“实时”发生。你可能要多试几次才会感觉这种工作很容易。 证实我的怀疑
关于性能操作,牢记最重要的一件事就是始终用测试去验证你的行为。即使Falcon Pro 在Nexus4上运行帧率下降看起来很明显,我还是需要确认一下。因此,我将应用安装到一部提供不同于Nexus性能概况并且比Nexus4更强大的Nexus7上。Nexus 7提供了一个有趣的更有优势的性能分析工具,我们以后再谈。
在Nexus 7安装应用程序并没有什么区别,我仍能看到帧率下降。应用甚至显得稍差。为了描述这个问题,我决定用4.1以后引入的“GPU呈现模式分析”工具。你可以在应用设置下的“开发者选项”中找到它。
当选项打开后, 系统会保持跟踪每个窗口绘制最后128帧所耗费的时间。使用这个工具你必须首先结束掉应用– android将来的版本将摆脱这个限制。
在运行应用,主时间轴开始滚动时候,我在终端执行了如下命令: $ adb shell dumpsys gfxinfo com.jv.falcon.pro |