首页 帮助中心 听云App Android平台-Eclipse

听云Android平台SDK安装-Eclipse部署方式

1 设置应用名称

  请为需要监测的App设置一个易于识别的应用名称,该App名称将出现在App列表和相关的报表中来代表对应的App。
  App名称可以使用字母数字和中文,最长32个字符。设置App名称时,尽量不要设置重复的App名称,以免给自己造成不必要的麻烦。
  您的App名称可以在设置选项中随时修改。

2 使用Eclipse构建

2.1 检查Eclipse版本号

注意:

使用新版地址前,请先卸载老版本。

听云App Eclipse Plugin 支持 Eclipse 3.8~4.4 版本,请于安装前确认您使用的Eclipse版本号

Mac OS下

点击进入“关于Eclipse”

Windows 下

点击进入“关于Eclipse”

1、打开 “关于Eclipse” 可查看当前版本号

2、如未见详细版本号可点击进人“Eclipse Plugin”查看

3、当前版本号为:4.4.2

2.2 安装TingYun Eclipse Plugin

1、在Eclipse集成开发环境中点击“Help”菜单,选择“Install New Software…”

2、点击Work with项右侧的“Add…”按钮来增加TingYun的插件资料库。

3、设置插件资料库的名称(例如:TingYun等等),设置资料库的URL地址。

Eclipse 4.4版本资料库URL地址为:

http://download.tingyun.com/tingyunapp/android_agent/eclipse_4.4

Eclipse 4.4以下版本资料库URL地址为:

http://download.tingyun.com/tingyunapp/android_agent/eclipse

4、在Work with选项中选中刚才添加的资料库,在下方列表中点击“Select All”选中所有的插件。点击“Next >”到下一步。

5、查看插件描述并点击“Next >”进入下一步。

6、查看许可协议,选择“I accept the terms of the license agreement”,点击“Finish>”完成操作。

7、选择信任插件的签名证书,点击“OK”。

8、点击“Yes”重启Eclipse来完成插件的安装。

2.3 引入Tingyun SDK

  Eclipse会自动添加“nbs.newlens.agent.jar”包到libs目录下,若没有libs目录请新建一个。

2.4 设置应用程序权限

  构建完成后,请在待监测的App工程的AndroidMainfest.xml文件中增加以下的权限

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.INTERNET" />

2.5 插入启动NBSAgent的代码

1、在嵌码项目工程的启动页面“MainActivity”中import NBSAppAgent类

import com.networkbench.agent.impl.NBSAppAgent;

2、在“MainActivity”中的onCreate()方法(如未找到该方法请新增onCreate())中初始化Android SDK

NBSAppAgent.setLicenseKey("AppKey").withLocationServiceEnabled(true).
start(this.getApplicationContext());
//Appkey请从官网获取

3、在“Application”中的onCreate()方法(如未找到该方法请新增onCreate())中初始化Android SDK(可选)

注意:

该配置仅仅只限于有多进程性能监控需求的应用。

NBSAppAgent.setLicenseKey("AppKey").withLocationServiceEnabled(true).
startInApplication(this.getApplicationContext());
//Appkey请从官网获取

4、若无需采集地理位置,请使用以下配置

NBSAppAgent.setLicenseKey("AppKey").start(this.getApplicationContext());
//Appkey请从官网获取

2.6 配置混淆

1、发布前请在proguard混淆配置文件中增加以下内容,以免tingyunSDK不可用

# ProGuard configurations for NetworkBench Lens
-keep class com.networkbench.** { *; }
-dontwarn com.networkbench.**
-keepattributes Exceptions, Signature,InnerClasses
# End NetworkBench Lens

2、若需要保留行号信息,请在proguard.cfg 中添加以下内容

-keepattributes SourceFile,LineNumberTable

2.7 Clean项目工程

  建议打包前先Clean项目工程,以确保听云App配置生效。

2.8 Eclipse打包编译

  使用“Export Signed Application Package…”进行编译即可。

2.9 运行apk

注意:

1、Eclipse 插件目前只支持JDK(1.5 - 1.8)运行环境(不支持只有JRE的运行环境)

2、Window 安装Eclipse插件时,请在没有空格和特殊字符的路径安装JDK

3、Eclipse 插件需要使用JAVA_HOME环境变量,请检查环境变量

打包编译后,在模拟器或Android设备上运行待监测的App,并进行适当的网络访问。

3 嵌码验证

1、数据收集服务器校验

2、嵌码完成后可通过“LogCat”查看听云SDK日志输出结果,用以进行数据收集服务器校验TAG为NBSAgent,标准日志输出结果如下所示:

NBSAgent start
NBSAgent enabled
NBSAgent V “TingYun_Version”//TingYun_Version 为当前SDK的版本号
connect success

3、数据功能完整性校验

嵌码完成后可通过“LogCat”查看听云SDK日志输出结果,用以进行数据功能完整性校验TAG为TingYun,标准日志输出结果如下所示:

D/TingYun: Crash switch is true
D/TingYun: webView switch is true
D/TingYun: ANR monitor switch is true
D/TingYun: UserAction Switch  is true
D/TingYun: cdnSwitch Switch  is true

4 高级功能

4.1 用户自定义ID

1、功能说明

用户自定义ID为当前用户设置唯一标示码,在任意位置均可设置UserID。

2、相关接口

//UserID最多包含64个字符,支持中文、英文、数字、下划线,但不能包含空格或其他的转义字符
NBSAppAgent.setUserIdentifier("userIdentifier");

3、代码示例

public class MainActivity extends Activity {
    public void onCreate(BundlesavedInstanceState) {
        super.onCreate(savedInstanceState);
        String userIdentifier =getUserID();        NBSAppAgent.setLicenseKey("AppKey").withLocationServiceEnabled(true).
start(this.getApplicationContext());
        NBSAppAgent.setUserIdentifier(userIdentifier);
      }
}

4.2 面包屑

1、功能说明

面包屑能够更好的协助用户调查崩溃发生的原因,可以知晓用户发生崩溃之前的代码逻辑与崩溃轨迹结合使用能够更好的复现用户崩溃场景。

2、相关接口

//最多包含100个字符,支持中文、英文、数字、下划线 
NBSAppAgent.leaveBreadcrumb("keyPressed”);
NBSAppAgent.leaveBreadcrumb("loginDone");

3、代码示例

public MyActivity extends Activity {
         publicvoid onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);          
NBSAppAgent.setLicenseKey("AppKey").withLocationServiceEnabled(true).
start(this.getApplicationContext());
             NBSAppAgent.leaveBreadcrumb("login MyActivityonCreate");
         }
         publicvoid onResume() {
            super.onResume();
            NBSAppAgent.leaveBreadcrumb("login MyActivityonResume");
         }
         publicvoid logginPressed(View view) {
             NBSAppAgent.leaveBreadcrumb("login MyActivitylogginPressed");
             new LoginAsyncTask.execute();
         }
         publicvoid onStop() {
             super.onStop();
             NBSAppAgent.leaveBreadcrumb("login MyActivityonStop");
         }
}

4.3 自定义Event

1、功能说明

自定义事件用于统计App中的任意事件,开发者可以在SDK初始化后的任意位置添加自定义事件,并设置对应上传参数。如:真实用户操作时候点击某个功能按钮或触发了某个功能事件等。

2、相关接口

//EVENT_ID最多包含32个字符,支持中文、英文、数字、下划线,但不能包含空格或其他的转义字符
NBSAppAgent.onEvent(String EVENT_ID);

3、代码示例

@Override
public void onClick(View v) {
    …………
        NBSAppAgent.onEvent("添加购物车");
      …………
}

4.4 自定义Trace

注意:

由于自定义Trace是成对出现的,请勿跨方法、跨进程以及在异步加载和递归调用中使用该接口。

1、功能说明

  听云SDK默认采集系统类和方法的性能数据,无法采集开发者自定义类和方法的性能数据。使用“自定义Trace”接口就可以帮助开发者时刻了解所写代码的健壮性及其性能数据。如:开发者想要了解某个自定义方法的初始化耗时及性能消耗情况,就可以在该自定义方法前后添加“自定义Trace”接口即可。

2、相关接口

//Name 为当前方法所在方法名或自定义名称,支持中文、英文、数字、下划线,但不能包含空格或其他的转义字符
NBSAppAgent.beginTracer("String Name");
NBSAppAgent.endTracer("String Name");

3、代码示例

//用户可以在SDK初始化后的任意方法前后添加自定义Trace
public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.main);
      init();
     }
private void init() {
     //方法开始前添加beginTracer
     NBSAppAgent.beginTracer(“这是Init方法”); 
        try {
            ………
        } catch(NameNotFoundException e) {
           e.printStackTrace();
        }
     //方法结束后添加endTracer
     NBSAppAgent.endTracer(“这是Init方法”);
}

4.5 自定义Log

注意:

收集LogCat信息,需要使用READ_LOGS权限,请将下列代码添加到应用程序的AndroidManifest.xml文件中,默认收集50行,最多收集100行日志。

< uses-permissionandroid:name="android.permission.READ_LOGS" >

1、功能说明

  开发者可通过Android日志系统的LogCat,来收集和查看系统调试输出的信息,通过打印输出的Log信息来调查Bug发生时的应用程序信息,并通过听云SDK上传自定义Log日志。

2、控制开关

NBSAppAgent.setLicenseKey("AppKey").withLocationServiceEnabled(true).
enableLogging(true).start(this.getApplicationContext());

3、相关接口

NBSAppAgent.setLogging(int lineNumber);
NBSAppAgent.setLogging(String filter);
NBSAppAgent.setLogging(int lineNumber,String filter);

4、代码示例

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
     setContentView(R.layout.main);
      // Enablelogging
 NBSAppAgent.setLicenseKey("AppKey").withLocationServiceEnabled(true).
 enableLogging(true).start(this.getApplicationContext());
          // Log last 100messages
         NBSAppAgent.setLogging(100);
}

4.6 自定义附加信息

1、功能说明

  用户可以在初始化之后任意位置配置该接口,最多可添加10条附加信息,每条附加信息最大支持100个字节随崩溃上传。

2、相关接口

NBSAppAgent.setUserCrashMessage(String key,Stringvalue);

3、代码示例

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
     setContentView(R.layout.main);        		 NBSAppAgent.setLicenseKey("AppKey").withLocationServiceEnabled(true).
start(this.getApplicationContext());
      //初始化后的任意位置插入自定义附加信息
      NBSAppAgent.setUserCrashMessage(“张三”,“13700001234”);
}

5 设置本地配置文件

5.1 新建tingyun.properties配置文件

  在嵌码项目工程根目录下,新建tingyun.properties配置文件即可。

5.2 配置Crash反混淆(mapping)

  听云SDK提供了两种方式进行反混淆设置。

通过报表上传mapping文件

1、报表中选择“崩溃”模块,在“崩溃历史记录列表”打开“dSYM/Mapping文件管理”。

2、找到所需版本,并上传本地mapping文件即可。

通过tingyun.properties文件自动上传mapping文件

1、添加如下配置到tingyun.properties文件

authKey=听云API账号授权Key,由报表系统生成
appKey=听云AppKey
mapping_file_auto_upload=true

2、配置Authkey授权码

a.  登陆报表后选择“授权码”。

b.  复制当前授权码并添加到tingyun.properties即可。

3、配置AppKey

​ tingyun.properties配置文件中的AppKey相同,在“修改设置”中获取即可。

4、配置mapping_file_auto_upload控制开关

mapping_file_auto_upload=true

5、开启混淆器

  mapping_file_auto_upload控制开关只有在启用混淆器的时候才会生效,开启控制开关后,听云SDK会将本地目录下的mapping文件自动上传到听云服务器。若未开启混淆器则该配置项不生效。

5.3 配置OkHttp控制开关

注意:

听云SDK默认对OkHttp2.0系列版本进行嵌码。请选择对应版本进行配置,不可设置多个版本。

1、若当前App使用的是OkHttp2.0系列版本请忽略该设置

2、若当前App使用的是OkHttp3.0系列版本请添加如下配置到tingyun.properties配置文件中

okhttp3.0=true

3、若当前App使用的是OkHttp1.0系列版本请添加如下配置到tingyun.properties配置文件中

okhttp2.0=false

5.4 配置WebView控制开关

注意:

WebView(H5)页面的性能数据是通过JS回调方式采集的,请开启JS回调开关:WebView.setWebContentsDebuggingEnabled(**true**);

注:允许JS回调在Android4.0系统上会有一些系统级别的安全漏洞,如有较高安全需求,则可在Android5.0及其以上版本使用或忽略该配置。

1、请将如下配置添加到tingyun.properties配置文件中

webview=true

2、采集WebView数据需调用setWebViewClient方法,如嵌码App中未调用该方法,请添加如下内容

webview.setWebViewClient(new WebViewClient(){});

附录

支持协议类库

HttpURLConnection

AndroidHttpClient
 4.0

Apache HttpClient ( > 4.0)

Volley+OkHttpClient

OkHttp 2.0 ( > 2.1)

OkHttp 1.0

Retrofit (> 1.9)

WebView(原生)

支持操作系统

Android2.0版本~Android7.0版本

支持数据采集项

Android SDK通过在指定的方法中嵌码去采集下列方法中的数据。可以通过报表服务器查询各种方法的数据和调用次数。

应用响应时间

DNS解析时间

TCP建连时间

SSL握手时间

首包时间

访问量

Android SDK探针也可以采集线程堆栈,数据库、自定义参数和HTTP请求参数。