在Android项目开发工程中,功能开发只是其中的一部分,更多的时候是优化,优化除了个人的良好习惯,往往还需要借助第三方工具。本文罗列Android优化过程中的一些常用工具借助这些工具,可以很方便的帮助我们进行性能的分析,进而进行产品的优化。Android应用优化主要从页面优化,内存优化,电量优化,GPU优化和网络优化等方面着手,涉及的知识也比较广泛,下面是优化的一些常见工具。
Android官方提供了很多的优化工具,很多工具已经自动集成到Android Studio的集成开发环境中,下面就这些工具做一个简单的介绍。
“严格模式”, 主要用来限制应用做一些不符合性能规范的事情. 一般用来检测主线程中的耗时操作和阻塞。开启StrictMode后, 如果线程中做一些诸如读写文件, 网络访问等操作, 将会在Log console输出一些警告, 警告信息包含Stack Trace来显示哪个地方出了问题。
使用及更多的介绍可以访问: https://developer.android.com/reference/android/os/StrictMode.html
使用也可以访问下面的地址: http://www.androidchina.net/4358.html
Systrace是一个收集和检测时间信息的工具, 它能显示CPU和时间被消耗在哪儿了, 每个进程和线程CPU时间片所做的事情,而且会指示哪个地方出了问题, 以及给出Fix建议。但是在Android Studio 3.0和更高版本中Systrace已经被弃用,将会提供类似的新的工具。
如果要启动独立的设备监视器应用程序,请在android-sdk/tools/目录的中找到monitor,点击即可启动。相关的内容可以查看下面的文章: https://blog.csdn.net/zhuxiaoping54532/article/details/77337054 当然也可以参考官方的介绍: https://developer.android.com/studio/profile/systrace.html https://developer.android.com/studio/profile/systrace-walkthru.html https://developer.android.com/studio/profile/systrace-commandline.html?hl=fy
Hierarchy Viewer提供了一个可视化的界面来观测布局的层级, 让我们可以优化布局层级, 删除多余的不必要的View层级, 提升布局速度。
在使用Hierarchy Viewer进行布局层次分析时,有必要说明下的是: 上图红框标出的三个点是关键分析数据. 左起依次代表View的Measure, Layout和Draw的性能. 另外颜色表示该View的该项时间指数, 分为: * 绿色, 表示该View的此项性能比该View Tree中超过50%的View都要快. * 黄色, 表示该View的此项性能比该View Tree中超过50%的View都要慢. * 红色, 表示该View的此项性能是View Tree中最慢的. 官方文档介绍: https://developer.android.com/studio/profile/hierarchy-viewer.html https://developer.android.com/studio/profile/hierarchy-viewer-walkthru.html https://developer.android.com/studio/profile/hierarchy-viewer-setup.html https://developer.android.com/studio/profile/optimize-ui.html#HierarchyViewer 需要注意的是,Hierarchy Viewer需要Root的机器才可以执行,可以使用第三方的开源的ViewServer来协助我们在未Root的机器上使用Hierarchy Viewer分析。 当然,也可以使用Layout Inspector来替换Hierarchy Viewer,相关的使用介绍可以访问下面的文章: https://blog.csdn.net/ziwang_/article/details/66970591
TraceView是一个图形化的工具,用来展示和分析方法的执行时间。TraceView的使用可以参考下面的文章:
https://blog.csdn.net/u011240877/article/details/54347396
内存使用检测器, 可以实时检测当前Application的内存使用和释放等信息, 并以图形化界面展示。可以结合heap viewer, allocation tracker来做内存分析,当然也可以导出hprof文件结合第三方的MAT工具分析泄露点。
Android Profiler是3.0版本的一个新功能,对之前的工具做了优化和总结,主要由cpu、内存和网络三大块组成。
CPU分析器可帮助您实时检查应用程序的CPU使用情况和线程活动,并记录方法跟踪,以便您可以优化和调试应用程序的代码。
打开步骤:
);
其中,
从下拉菜单中选择以下选项之一,以确定如何测量每个方法调用的时序信息:
关于这部分内容的详细使用方法,可以参考下面的教程: https://blog.csdn.net/niubitianping/article/details/72617864
除了官方提供的一些工具外,还有一些开源的检测手段。
Google出品, 通过Android系统的bugreport文件来做电量使用分析的工具。项目地址: https://github.com/google/battery-historian
Square出品了多个Android经典的开源方案,在优化代码方面,Square也提供了诸多的优化工具。如内存泄漏方面: https://github.com/square/leakcanary