0

Android 优化工具收集

在开发Android的过程中,我们会遇到各种问题,有时候为了满足某一个需求(或者快速的上线完成一个版本),
我们会使用各种框架,代码编写可能随意一些,造成一些冗余的代码,整个工程越跑越慢,APP越跑越慢,
当达到一定阶段的时候,就不得不需要我们进行工程的优化,今天就来说说优化过程中使用到的工具。

Android的应用性能的指标主要有:

  1. 布局复杂度:布局复杂会导致布局需要更长的时间,从而导致进入应用慢、页面切换慢;
  2. 耗电量:耗电量大会导致机器发热、缩短机器的有效使用时长;
  3. 内存:内存消耗大会导致频繁GC,GC时会暂停其它工作,导致页面卡顿;内存泄露会导致剩余可用内存越来越小;内存不足会导致应用异常;
  4. 网络:频繁的网络访问会导致耗电和影响应用的性能;网络交互数据大小会影响网络传输的效率;
  5. 程序执行效率:糟糕的代码会严重影响程序的运行效率,UI线程过多的任务会阻塞应用的正常运行,长时间持有某个对象会导致潜在的内存泄露,频繁的IO操作、网络操作而不用缓存会严重影响程序的运行效率。

工具

Memory Monitor:查看整个app所占用的内存,以及发生GC的时刻
Allocation Tracker:使用此工具来追踪内存的分配。
Heap Tool:查看当前内存快照,便于对比分析哪些对象有可能是泄漏了的。
Battery History Tool 电量审查工具(Android 5.0,不属于编译器的工具)
traceview 工具(计算每个方法占用CPU时间)
Networking Traffic Tool (android studio)网络请求发生的时间,每次请求的数据量等信息
Hierarchy viewer 层级显示工具(检测布局复杂度,各视图的布局耗时情况)
Lint 代码审查工具 给出代码优化建议
耗电量:Android开发者模式中的电量统计

leakcanary:square/leakcanary · GitHub,通过集成到程序中的方式,在程序运行时检测应用中存在的内存泄露,并在页面中显示,在应用中集成leancanry后,程序运行时会存在卡顿的情况,这个是正常的,因为leancanry就是通过gc操作来检测内存泄露的,gc会知道应用卡顿,说明文档:LeakCanary 中文使用说明、LeakCanary: 让内存泄露无所遁形。

GT:GT Home,GT是腾讯开发的一款APP的随身调测平台,利用GT,可以对CPU、内存、流量、点亮、帧率/流畅度进行测试,还可以查看开发日志、crash日志、抓取网络数据包、APP内部参数调试、真机代码耗时统计等等,需要说明的是,应用需要集成GT的sdk后,GT这个apk才能在应用运行时对各个性能进行检测。

iTest:iTest,业内首创的Android自动化性能监控工具,它能够记录特定应用的性能消耗情况,包括cpu、内存、流量、电量等信息,支持浮窗实时查看应用的具体信息,iTest不需要集成sdk到应用中,在itest中选中需要测试的应用即可进行测试;

Emmagee:Emmagee下载、NetEase/Emmagee · GitHub,网易开发的性能检测工具,Emmage和iTest一样,不需要在应用中集成sdk,能够对应用的常用性能指标进行检测,并以csv的格式保存方便查看应用的各项参数

APT:Tencent/apt | CODE,腾讯出的。

FPSService:百度一位开发者写的帧率测试工具,需要集成到应用中才可查看

AndroidGodEye:AndroidGodEye是一个可以在PC浏览器中实时监控Android数据指标(比如性能指标,但是不局限于性能)的工具,你可以通过wifi/usb连接手机和pc,通过pc浏览器实时监控手机性能。
系统分为三部分:
1. Core 核心部分,提供所有模块;
2. Debug Monitor部分,提供Debug阶段开发者面板;
3. Toolbox 快速接入工具集,给开发者提供各种便捷接入的工具。
AndroidGodEye提供了多种监控模块,比如cpu、内存、卡顿、内存泄漏等等,并且提供了Debug阶段的Monitor看板实时展示这 些数据。而且提供了api供开发者在release阶段进行数据上报。

慢慢一个个工具使用吧

参考引用

https://blog.csdn.net/u010255127/article/details/49135551
https://segmentfault.com/a/1190000012413613

天边的星星