基调听云App Android SDK支持Android 2.3以上的系统,同时支持Ant、 Eclipse、Maven和Gradle(Android Studio)四种编译模式;iOS SDK支持iOS 6.0以上系统。并且支持CocoaPods。
不一定。Key串主要用来区别数据,App不同版本使用同一Key,这些版本的数据和报表将混在一起。通常我们建议按Android和iOS平台建立不同的App Key,以便于更准确分析问题。
基调听云SDK安装包,压缩包尺寸为300K左右,解压后加入开发环境约1M。编译后会使App增加大约100K左右体积。
所有基于HTTP和HTTPS的协议。
登录基调听云App后,可以随时下载最新版本的SDK包,根据最新的安装文档进行升级安装。不升级SDK,不会影响原有数据的采集和报表,只是无法使用系统新功能。
只要在首页“App列表”中删除目标App,就不会再采集数据。你也可以按照“卸载文档”的说明,在App指定文件中移除基调听云App的代码,实现完全卸载。
应用的会话长度:应用启动或被切换到前台开始,到退出应用或者切换到后台定义为应用一次会话,其在前台被运行的时间称为“会话长度”,同时会统计该次会话所产生的网络流量。
HTTP请求目标URL/IP
HTTP状态码
首包时间(仅限iOS平台):从发出一次请求开始到收第一个响应字节为止,包含DNS和建连时间
响应时间:从发出一次请求开始到所有响应内容接收完成为止
响应内容字节数:排除响应头内容和字节数
响应头:仅在该次请求响应错误时记录,包含响应头字节数和头内容
网络故障的系统错误代码(失败的HTTP请求)
设备名称、制造商名称、操作系统名称和版本
设备的唯一识别码
iOS和Android的运行机制决定了应用层无法直接访问网络设备,因此从应用内部无法获取到网络层性能指标。
查看方式:基调听云 SDK 部署文档有两种查看方式,登录基调听云系统:
https://report.tingyun.com/mobile/overview
(1) 点击“概览”—>点击“新建 APP”—>“输入 APP 名称”—>点击“保存”即可查看部署文档 。
(2) 点击“概览”—>“App 列表”—>“操作”—>点击“修改设置” 。
在“App 名称”下方点击“查看安装步骤”即可查看部署文档。
(3) 点击基调听云系统首页右上角“帮助”图标。
(1) 打开 App 工程根目录下的“AndroidManifest.xml”文件。
(2) Manifest.xml 文件中可能会有多个 activity,在<intent-‐filter>标签中有且唯一存在 android:name=”android.intent.action.MAIN”的 activity 为 Main Activity
对于在 Main Activity 初始化之前发生的网络请求,嵌码时需要在 Application 中的
onCreate 方法中嵌入代码。
adb 命令查看 log 日志方式验证嵌码是否成功
a)命令:adb logcat –v time –s NBSAgent:V
b)成功嵌码后 log 如下所示:
NBSAgent start
:
NBSAgent enabled NBSAgent V1.1.3 connect success
:
(1)基调听云报表方式验证嵌码是否成功:
a)运行已嵌码的 APP:
b)进行常规操作(必需有网络请求):
c)等待十分钟后登录基调听云系统:
http://lens.networkbench.com/overview
d)在 APP 列表中选择被监测的 APP 名称,查看有无数据
e)有数据则说明嵌码成功
登录基调听云系统看不到数据主要有如下几种可能:
(1) 基调听云 SDK 嵌码失败
(2) 所监测 APP 没有进行网络访问(HTTP 请求和 HTTPS请求)
(3) 网络延迟或其他网络故障
目前基调听云 SDK 嵌码支持 Ant 和 Eclipse 两种编译方式,请选择适合您的编译方式。部署详情请参阅部署文档。
注:嵌码 apk 只适用于一种编译方式,不能同时使用两种编译方式进行打包
例如:使用 ant 编译完成后再用 eclipse 运行嵌码程序
结果:运行 Eclipse 生成的 apk,可以看见 “connect success!”但报表上无数据,嵌码失败
错误报告:
Buildfile: build.xml does not exist!
Build failed
检查步骤:
(1) 确认 APP 程序根目录下的“build.xml”文件是否存在
(2) 如果存在“build.xml”文件,请重命名后再生成新的文件
(3) 若无“build.xml”文件,可用命令生成“build.xml”文件
错误报告:
NBSAgent: NBSAgent start
NBSAgent: com.networkbench.agent.impl.NBSAppAgent not enabled
检查步骤:
确定“nbs.newlens.agent.jar”包是否已经成功导入到“libs”目录,如没有“libs”目录可新建一个,若已经成功导入,“clean”后重试
错误报告(编译通过):
-post-build: release:
BUILD SUCCESSFUL
Total time: 9 seconds
错误报告(嵌码失败):
NBSAgent: NBSAgent start
NBSAgent: com.networkbench.agent.impl.NBSAppAgent not enabled
检查步骤:
ANT_OPTS 环境变量是否生效
(1) Mac OS, Linux 环境下:
Export ANT_OPTS=“-javaagent:/path/to/nbs-android-agent-latest/li b/class.rewrite.jar”
(2) Windows 环境下:
SET ANT_OPTS=“-javaagent:\path\to\nbs-android-agent-latest\li b\class.rewrite.jar”
注意:
请勿将该环境变量(ANT_OPTS)永久设置到用户或系统环境变量里,否则会影响其他不需要进行嵌码的 Android 项目。建议在单次编译的命令行状态下临时设置该环境变量,或单独在需要嵌码项目的批处理编译脚本中设置该环境变量。
错误报告:
-compile:
[javac]Compiling 107 source files to
D:*Project\android-lib\bin\classes
[javac]
D:*Project\android-lib\src\com*\lottery\lib\utils\Util.
java:1: 非法字符:\65279
[javac] ?package com.jd.lottery.lib.utils;
[javac] ^
[javac] 1 错误
解决方法:修改编码格式即可。
检查步骤:
(1)进入“/sdk/tools/ant”
(2) 打开“build.xml”文件,找到<javac>
标签
(3) 修改 encoding 属性为修改编码格式,如:encoding=“UTF-‐8”
修改完毕后保存,重新编译 App 。
解决方法:
(1) 多重继承的 App 应用,必须要在嵌码应用的根目录下先执行 android 命令生成 build.xml 文件,然后再使用 ant 命令编译
(2) 嵌入 SDK 代码的工程必须是应用,不能是 lib 工程
错误报告:
解决方法:
根据错误提示检查当前目录下是否存在 build.xml 文件
如果存在多 lib 工程,需要在每个 lib 工程下生成 build.xml
(1) 编写一个 nbs-‐build.cmd 的批处理文件
(2) 把 set ANT_OPTS 和 ant 命令放到这个文件里
(3) 确保 ANT_OPTS 的路径要和发布机器上的路径相同
(4) 提交 build.xml 也需放入相同目录
登陆基调听云系统:
http://lens.networkbench.com/overview
APP 名称列表->选择配置 APP ->“设置” ->“APP 设置”
(1)URL 过滤项配置
a)白名单设置该配置项可以设置白名单过滤
如:当前配置信息为/www.baidu.com/,请求访问 URL 为:www.baidu.com 和
www.qq.com 因为设置白名单,系统只会采集符合配置信息的 URL,所以采集信息为: www.baidu.com
b)黑名单设置该配置项可以设置黑名单过滤
如:当前配置信息为/www.baidu.com/,请求访问 URL 为:www.baidu.com 和
www.qq.com 因为设置黑名单,系统不会采集符合配置信息的 URL,所以采集信息为: www.qq.com
(2)HTTP 错误过滤选项配置 打开 HTTP 错误过滤
a) URL 过滤条件
配置条件为:/baidu/ (URL 过滤需与错误响应代码同时配置)
b)错误响应代码配置
配置条件为:401,402,403,901 则只会过滤包含/baidu/的 URL 所报的错误若包含过滤信息的 URL 报错为:401 和 902,则只会收集 902 的错误,不会收集 401 的错误
c)设置完成后添加新规则
d)删除 HTTP 错误过滤选项
基调听云系统可以通过设置采集位置信息来反映地域用户 App 应用的使用情况,并通过中国地图的形式展现在报表上位置开关:
withLocationServiceEnabled(true/false)
收集位置信息:
NewLens.withApplicationToken(“AppID”).withLocationService
Enabled(true).start(this.getApplication());
由于 App 崩溃与应用性能问题有着非常密切的关系,我们强烈建议您在使用基调的基调听云 SDK 时采集 App 的崩溃日志(SDK 缺省打开了采集 App 崩溃日志的选项),以便在基调基调听云的统一平台中为 App 研发和运维人员提供更全面的性能监控数据分析。
如果您的 App 希望使用其他第三方的 SDK 来采集 App 崩溃日志,您也可以选择在基调基调听云 SDK 中禁用采集崩溃日志的功能。
(1) 基调听云 iOS SDK 如何关闭崩溃日志的采集
如果希望在基调听云 iOS 版监测探针中禁用崩溃日志的采集,请在初始化基调监测探针之前调用[NBSAppAgent setCrashCollectFlg:NO]方法
[NBSAppAgent setCrashCollectFlg:NO];
[NBSAppAgent startWithAppID:@“YOUR_APP_ID”];
(2) 基调听云 Android SDK 如何关闭崩溃日志的采集
如果希望在使用基调听云 Android 版监测探针时禁用崩溃日志的采集,请在初始化基调监测探针时调用withCrashReportEnabled(false)方法
Crash 开关:
withCrashReportEnabled(true/false)
关闭 Crash 开关(默认开启):
NewLens.withApplicationToken("AppID”).withCrashReportEnab led(false).start(this.getApplication());
当您的 App 的所有用户都使用基调基调听云来进行性能数据采集时(称为全样本的数据采集),我们的系统可以精确地计算出您的 App 的真实活跃用户数(或称为活跃设备数)。
基调网络始终关注用户数据的安全,我们从法律和技术上保证不会将包括活跃用户数(活跃设备数)、性能数据等在内的所有用户数据泄露给任何第三方。
如果您不希望基调基调听云系统在监测性能数据的时候采集您的 App 的真实活跃用户数(活跃设备数),您可以通过采样的方式来启动基调的 App 监测探针(称为采样的数据采集),当您的 App 用户量足够大的时候,采样的数据采集并不会影响性能数据的准确性,只是基调听云系统在这种情况下将无法提供真实的活跃设备数的统计数据。
(1) 基调听云 iOS SDK 如何进行采样监测
如果希望在基调听云 iOS 版本的监测探针中进行采样监测,请使用 NBSAppAgent startWithAppID: rateOfLaunch:方法来初始化监测探针。例如:
[NBSAppAgent startWithAppID:@“YOUR_APP_ID” rateOfLaunch:0.5];
这样将只会有 50%的几率会启动基调听云监测探针,即采样 50%的用户(设备),并且
rateOfLaunch 参数的值不会被传送到基调基调听云系统中。rateOfLaunch 参数的取值范围为(0, 1)。
(2) 基调听云 Android SDK 如何进行采样监测
如果希望在基调听云 Android 版本的监测探针中进行采样检测,请在初始化基调监测探针时调用 withSampleRatio()方法
Agent 启动频率开关:
withSampleRatio(int ratio)
设置 Agent 启动频率(缺省值为 100):
NewLens.withApplicationToken("AppID”).withSampleRatio(50).start(this.getApplication());
这样将只会有 50%的几率会启动基调听云监测探针,即采样 50%的用户(设备),并且方法 withSampleRatio()的参数不会被传送到基调基调听云系统中。该方法参数的取值范围为(0,100)。
错误报告:
(1)解决方法:
a)右击“Eclipse.exe”文件,选择属性
b)点击“快捷方式”→“目标”
c) 在“目标”后面添加“-consoleLog”
d)确定后启动“Eclipse.exe”弹出 Log 窗口
查看运行 Log 日志
(2)检查步骤:
a) 查看 JAVA_HOME 的环境变量是否设置正确,插件需要查找
JAVA_HOME\lib\tools.jar
b)查看 eclipse installation details:help –> About Eclipse –> Installation Details 检查Eclipse 的版本是否是最新版本
c) 进入目录 eclipse\configuration\org.eclipse.osgi\bundles 找到目录名称最大的文件夹,点击进入查看是否有无以下目录
d)查看“ECLIPSE_HOME\eclipse\ eclipse.ini ”文件的内容,并检查 JDK 路径是否有空格
在-vmargs 的上一行增加-vm 参数
如:-vm D:\Java\jdk1.6.0_13\bin\javaw
支持的协议类库有URLConnection、Android HttpClient、Apache HttpClient、Volley、OkHttp1.0、OkHttp2.0。
应用交互性能数据:交互性能数据分成七大类
网络交互性能数据:支持的协议类库有URLConnection、Android HttpClient、Apache HttpClient、Volley、OkHttp1.0、OkHttp2.0。可以采集到DNS时间、TCP时间、SSL时间、首包时间、响应时间、吞吐率、网络错误、HTTP错误等信息。
能捕获。
短连接。
提供了关闭HTTP网络模块采集、用户交互模块采集、崩溃模块采集、Web View模块采集的功能。
关闭方式:App控制台-》概览-》App设置-》修改设置-》启用/禁用模块。