GT-非官方介绍
一.GT 介绍
是什么:GT(随身调)是 APP 的随身调测平台,它是直接运行在手机上的 “集成调测环境”
它能做什么:
可对 APP 进行快速的性能测试 (CPU、内存、流量、电量、帧率/流畅度等等)、开发日志的查看、Crash 日志查看、网络数据包的抓取、APP 内部参数的调试、真机代码耗时统计等
利用 GT 提供的基础 API 自行开发有特殊功能的 GT 插件
支持 android/ios
1.GT 客户端
主要是 GT 控制台,通过控制台,我们可以看到被测应用实时性能数据。总体来说,GT 客户端跟 SDK 需要配合使用,才能完成很多自定义操作,而且需要在被测应用中插桩。目前不太确定,是否有足够的 API 帮忙做任务调度跟初始化操作。
2.GT SDK
GT 需要控制台跟 SDK 一起使用才能发挥出最大效果,SDK 也可以脱机接入,不过需要在被测应用中插桩,主要分为三步:
在手机中安装 GT.apk
将 SDK jar 包添加到工程中
在合适的位 置插入 GT 初始化的代码
建立联系:在被测应用初始化阶段通过 GT.connect(Context, AbsGTParaLoader) 建立测试应用跟被测应用的联系
断开联系:完成测试后,需要在被测工程中调用 GT.disconnect(Context) 方法断开被测应用与 GT 的联系
3.GT Tools
GTTools 工具包是从 Android GT 源码中剥离并重构出来的可复用模块,在抽象过程中尽可能的考虑可扩展性。GTTools 工具包主要提供给基于 AndroidJUnit 的测试脚本用于性能指标的采集和数据监控。
这个的使用方法跟伽利略就很像了,同样是通过驱动测试脚本,来达到性能数据收集的目的。
4.GT 广播模式
本来广播不属于 GT 模块的一部分,之所以单独拿出来,是因为 GT 的广播模式可以无侵入式监控被测应用,也可以很方便接入到平台去扩展。但是目前还没办法确定,测试精确性问题,需要看源码。
二.使用方式
1.手动使用
单独使用 GT 客户端,可以完成一般的性能数据收集工作,可用于手动跟进一些问题。
2.内嵌方式使用
通过 GT 客户端跟 GT SDK 配合,在被测应用内部完成数据收集功能
通过在 AndroidJunit 测试工程中使用 GTTools,来完成数据收集功能,由于 GTTools 需要在 android 工程中引用,因此也没办法简单单独抽离,如果需要用于平台级别的任务调度,需要在 AndroidTest 工程中开发数据整理以及结果上传的模块
3.与平台集成使用
通过广播方式去启动测试任务:http://gt.qq.com/docs/a/UseGtWithBroadcast.txt
目前支持的测试包括 CPU/内存/PrivateDirty/NET 采集/FPS 采集/流畅度采集/耗电测试/内存填充/驱动抓包
三.GT 接入的优缺点
1.优点
完全开源
同时支持手动跟进性能问题以及自动接入方式支持
接入方式比较灵活:可以内嵌/可以以 androidTest 工程接入/可以通过平台方式接入
2.缺点
无法完全自动化:使用 profiler 前需要先手动开启 profiler 功能
应用内部插桩:需要熟悉被测应用的业务逻辑,难度相对较大。
测试准确性问题:处理方法综合来看比较简单粗暴,对整体的测试准确度存疑。
性能监控跨越到性能问题分析有一道天生的鸿沟
四.总结
如果想在 GT 做封装,可能使用广播模式驱动是比较合适的。