Harmony Gradle本地部署
获取SDK
基调听云App SDK目录结构如下:
nbs-newlens-harmony-sdk
--> tingyun-harmony-version.har
将「tingyun-harmony-version.har」复制到嵌码项目工程的 libs 目录下。
添加SDK
获取基调听云AppKey。
初始化 SDK。
在 Application 的 onCreate() 方法初始化Android SDK。
//"Appkey" 请从基调听云平台获取 //"Host" 为基调听云平台「Redirect」服务器地址,无需添加协议头 NBSAppAgent.setLicenseKey("Appkey").setRedirectHost("Host").start(this);
SDK 默认以 HTTPS 上传数据,若是私有化部署且服务端只支持 HTTP,需设置 「setHttpEnabled(true)」。
NBSAppAgent.setLicenseKey("AppKey").setRedirectHost("Host").setHttpEnabled(true).start(this);
说明:鸿蒙默认只支持 HTTPS 请求,开启 HTTP 需修改 config.json 的 deviceConfig 配置。
"deviceConfig": { "default": { "directLaunch": false, "network": { "cleartextTraffic": true } } },
权限使用说明
基调听云 SDK 为了与服务端交互需要使用以下权限。
// 非敏感权限,允许使用网络 socket
{
"name": "ohos.permission.INTERNET"
},
// 非敏感权限,允许应用获取数据网络信息
{
"name": "ohos.permission.GET_NETWORK_INFO"
}
首次启动开启模块功能开关
出于兼容性考虑, 首次启动 SDK 仅在开启崩溃崩溃,可通过以下接口开启 SDK 的模块开关。
模块功能开关接口
说明:option开关说明请参见首次启动功能开关。
/*
SDK首次初始化由于尚未与基调听云平台交互,默认模块开关仅开启「崩溃模块」,可以通过本接口自定义首次启动开启的模块,详细模块开关说明参见《接口说明》文档。
@warning:调用该接口设置启动选项,SDK首次启动不受基调听云平台开关控制
*/
NBSAppAgent.setStartOption(int option);
- 代码示例
//在SDK初始化时调用,首次启动全部功能模块
NBSAppAgent.setLicenseKey("AppKey").setRedirectHost("Host").setStartOption(511).start(this);//首次初始化开启全部功能
获取用户标识
通过添加「用户标识」可在基调听云报表平台通过该标识检索到具体用户的性能问题。
- 相关接口
//userIdentifier 最多包含64个字符,支持中文、英文、数字、下划线,但不能包含空格或其他的转义字符
NBSAppAgent.setUserIdentifier(String userIdentifier);
- 代码示例
String userIdentifier = getUserID();
NBSAppAgent.setLicenseKey("AppKey").setRedirectHost("Host").start(this);
//用户标识可为邮箱、手机号等能够标识用户身份的信息,如:xxx@tingyun.com
NBSAppAgent.setUserIdentifier(userIdentifier);
网络数据
HttpURLConnection/HttpsURLConnection网络库。
相关接口
//connection 为 URLConnection 实例 NBSURLConnectionInstrument.openConnection(URLConnection connection)
代码示例
URL url = new URL("https://www.baidu.com"); // 替换成基调听云的网络嵌码接口 //URLConnection urlConnection = url.openConnection(); URLConnection urlConnection = NBSURLConnectionInstrument.openConnection(url.openConnection());
配置混淆
在 proguard 混淆配置文件中增加以下内容,以免基调听云 SDK 不可用。
# ProGuard configurationsfor NetworkBench Lens
-keep class com.networkbench.** { *; }
-dontwarn com.networkbench.**
-keepattributes Exceptions, Signature, InnerClasses
# End NetworkBench Lens
若需要保留行号信息,请在 proguard.cfg 中添加以下内容。
-keepattributes SourceFile,LineNumberTable
打包编译
gradle clean build
嵌码验证
嵌码完成后可通过 “LogCat” 查看基调听云App SDK 日志输出结果,用以进行数据收集服务器校验 TAG 为 NBSAgent,标准日志输出结果如下所示:
NBSAgent start
NBSAgent enabled
NBSAgent V “TingYun_Version” //TingYun_Version 为当前 SDK 的版本号
connect success
功能模块开关校验:
嵌码完成后可通过 “LogCat” 查看基调听云App SDK 日志输出结果,用以进行功能模块校验,过滤「TAG」为「NBSAgent」,标准日志输出结果如下所示:
Network Switch is true
UI Switch is true
Crash switch is true
webView switch is true
ANR monitor switch is true
UserAction Switch is true