搜档网
当前位置:搜档网 › APIUserGuide4Android

APIUserGuide4Android

GT API UserGuide For Android

目录

前言 (3)

合入GT (3)

添加SDK jar包 (3)

GT初始化 (4)

输入参数 (5)

相关API (5)

举例说明 (6)

注册输入参数 (6)

使用输入参数 (7)

建议 (7)

输出参数 (8)

相关API (8)

举例说明 (8)

注册输出参数 (8)

使用输出参数 (10)

profiler功能 (10)

相关API (10)

举例说明 (10)

打开profiler功能 (11)

使用profiler功能——线程内统计 (11)

使用profiler功能——应用内跨线程统计 (12)

打印日志 (13)

相关API (13)

举例说明 (13)

前言

本说明书针对GT Demo for Android工程讲解如何使用GT SDK。

GT Demo的功能就是从网上下载10张图片并显示,通过GT可以实时查看下载的带宽、单张速度、CPU、MEM等指标,还能通过GT修改下载线程数、超时时间等等。该Demo 主要是为了演示GT是如何脱机调试一个APP的。

说明:GT Demo for Android工程中使用GT SDK的地方可以通过搜索GT Usage查找。合入GT

使用GT在被测应用中插桩这一高级功能需要在被测工程中合入GT SDK,合入GT SDK 分三步,首先要在手机中安装GT.apk,然后将SDK jar包添加到工程中;最后是在合适的位置插入GT初始化的代码(demo工程、SDK jar包、GT.apk请到GT官网下载) 。

添加SDK jar包

拷贝SDK jar包到工程中的libs目录中,如下图:

此时,demo工程就包括了GT的API:

GT初始化

在合适的位置插入GT初始化的代码:

GT SDK的初始化需要在被测工程中调用GT.connect(Context, AbsGTParaLoader)方法建立被测应用与GT的联系(见用户手册)。调用GT.connect方法的合适位置通常是被测应用Application的onCreate()或闪屏Activity的onCreate(),不过在demo中为了方便演示,是通过点击一个按钮触发调用该方法。

具体调用代码在demo中的位置在类MainActivity中(可搜索GT.connect关键字找到代码具体位置),大体结构如下:

完成测试后,需要在被测工程中调用GT.disconnect(Context)方法断开被测应用与GT 的联系(见用户手册)。调用GT. disconnect方法的合适位置通常是被测应用退出的方法中。在本demo中,是通过点击一个按钮触发调用该方法。

具体调用代码在demo中的位置在类MainActivity中:

输入参数

相关API

输入参数相关API如下(API的具体说明详见API指引):

API 说明

InParaManager. register注册一个输入型参数InParaManager. defaultInParasInAC 定义默认显示在悬浮窗的入参InParaManager. defaultInParasInDisableArea 设置所有/部分GT定义的入参不

生效

GT. setInPara 设置输入参数值

GT. getInPara 获取输入参数值

下面以Demo为例说明。

举例说明

使用输入参数有两个步骤,如下。

1.在GT SDK初始化后注册所需的输入参数。

注册输入参数的API是InParaManager.register方法。

2.在需要使用输入参数的代码逻辑上获取输入参数。

获取输入参数的API是一组重载方法,都叫GT.getInPara,可以返回所有基本类型和字符串的输入参数值。

注册输入参数

在GT.connect方法中进行输入参数的注册:

(可选)注册的同时可以选择最多3个APP启动时默认在GT悬浮窗显示的输入型参数:

使用输入参数

在Demo工程中下载网络图片时使用并发线程数,并发线程数取GT上注册的值:(详情请在Eclipse中搜索“并发线程数”变量的使用场景):

建议

一个小技巧,GT.getInPara方法的第二个参数默认值,大部分情况下建议使用业务逻辑中的原值,这样当输入参数设置失效时,默认值取原值就不会改变原有代码业务逻辑。如上面例子即是如此。

输出参数

相关API

API 说明

OutParaManager. register注册一个输出型参数OutParaManager. defaultOutParasInAC 定义默认显示在悬浮窗的输出

型参数

OutParaManager.defaultOutParasInDisableArea 设置所有/部分GT定义的入参

不生效

GT. setOutPara 设置输出参数值

GT. getOutPara 获取输出参数值

下面以Demo为例说明。

举例说明

使用输出参数有两个步骤,如下。

1.在GT初始化后注册所需的输出参数。

注册输出型参数的API是OutParaManager. register方法。

2.在需要的地方更改输出参数值。

更改输出参数的API是GT.setOutPara方法。

注册输出参数

Android版GT在GT.connect方法中进行输出参数的注册:

(可选)注册的同时可以选择最多3个APP启动时默认在GT悬浮窗显示的输出型参数:

使用输出参数

在Demo工程中确认是否下载完成判断代码逻辑里统计下载耗时,实际带宽:

profiler功能

相关API

API 说明

GT.startTimeInThread开始一次区分线程的耗时统计

GT.endTimeInThread 结束一次区分线程的耗时统计

GT.startTime 开始一次进程内部分区分线程的耗时

统计

GT.endTime 结束一次进程内部分区分线程的耗时

统计

GT.startTimeGlobal 开始一次可跨进程的耗时统计

GT.endTimeGlobal 结束一次可跨进程的耗时统计

下面以Demo为例说明。

举例说明

使用profiler进行耗时分析有两个步骤,如下。

1.在需要开始计时的代码逻辑设置开始计时。对应区分线程的是GT.

startTimeInThread,不区分线程的是GT.startTime,可跨进程的是GT.startTimeGlobal。

2.在需要结束计时的代码逻辑设置结束计时。对应区分线程的是GT.endTimeInThread,

不区分线程的是GT.endTime,可跨进程的是GT.endTimeGlobal。

这里开始和结束调用的接口需要对应,若开始计时使用跨进程的API,则结束计时也使用跨进程的API;若开始计时使用区分线程的API,则结束计时也需要使用区分线程的API。

打开profiler功能

目前使用profiler前需要先手动开启profiler功能(详见使用手册相关章节)。如果实际使用中需要在被测应用启动后立即打开profiler功能,而手动开启来不及,那么可以先行手动打开GT应用,之后手动打开profiler功能,然后再启动被测应用即可。

使用profiler功能——线程内统计

这里要统计单张图片的下载时间,在网络访问时记录开始时间,网络数据接收完成时记录结束时间,开始到结束之间即为单张图片的下载时间。另外Demo里下载图片使用线程池有并发的可能,因此调用GT.startTimeInThread和GT.endTimeInThread,用于区分线程。

线程开始是记录的开始时刻,下图中红色框中代码;网络访问数据接收结束是记录的结束时刻,下图中紫色框中代码:

注:

GT.startTimeInThread和GT.endTimeInThread要和上面例子一样成对使用,道理

很简单,时间要有个开始时刻和结束时刻才能计算。每次统计值都会在profiler界面显示,详情请参考用户手册。

GT.endTimeInThread的long型返回值是一次统计的时间间隔,单位是纳秒,即使在不启动profiler功能的情况,本返回值也是有效的,只是不会在GT控制台的profiler模块记录。该返回值在异常情况下会是-1。

使用profiler功能——应用内跨线程统计

Demo中图片下载完成后到UI展示的时间统计,其统计开始时刻是下载并解析图片生成bitmap完成后,但其结束时刻应是Android的UI线程中,这种跨线程的应该用全局统计,并且要区别不同的图片:

统计起点是下载线程的开始时刻:

其结束时刻在UI线程的Handler中:

打印日志

相关API

API 说明

GT. logD打印日志,DEBUG级别

GT.logI 打印日志,INFO级别

GT.logW 打印日志,WARNING级别

GT.logE 打印日志,ERROR级别

下面以Demo为例举例说明。

举例说明

打印日志功能类似logcat,有区分DEBUG,INFO,WARNING和ERROR四个级别,用户根据实际情况调用对应级别的接口。

具体例子在demo中随处可见,搜索“GT. Log”即可。

相关主题