异常数据相关接口

设置面包屑

研发人员可以在应用程序的任意位置调用「面包屑」接口进行埋点。当应用程序发生崩溃时,SDK 会按代码的触发顺序收集埋点信息并在崩溃轨迹中高亮显示,以协助研发人员在应用崩溃时了解代码调用逻辑。

  • 相关接口
/**
 * @param breadcrumb:自定义信息,最多包含100个字符,支持中文、英文、数字、下划线
 */
NBSAppAgent.leaveBreadcrumb(String breadcrumb);
  • 代码示例
public MyActivity extends Activity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        NBSAppAgent.setLicenseKey("AppKey")
        .start(this.getApplicationContext());
        NBSAppAgent.leaveBreadcrumb("login MyActivity onCreate");
    }

    public void onResume() {
        super.onResume();
        NBSAppAgent.leaveBreadcrumb("login MyActivity onResume");
    }

    public void logginPressed(View view) {
        NBSAppAgent.leaveBreadcrumb("login MyActivity logginPressed");
        new LoginAsyncTask.execute();
    }

    public void onStop() {
        super.onStop();
        NBSAppAgent.leaveBreadcrumb("login MyActivity onStop");
    }
}

自定义信息

在应用发生崩溃的时候,研发人员往往需要更多的信息以收集现场环境,可以通过调用「自定义信息」接口上传额外信息,协助分析崩溃问题,采集的自定义信息会在异常详情页「自定义信息」中展示。

  • 相关接口
/**
 * 最多可添加10条附加信息,随崩溃上传
 * param key key 值
 * param value value值,每条附加信息最大支持 100 个字节
 */
NBSAppAgent.setUserCrashMessage(String key,String value);
  • 代码示例
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    NBSAppAgent.setLicenseKey("AppKey")
    .start(this.getApplicationContext());

    NBSAppAgent.setUserCrashMessage("张三", "13700001234");//初始化后的任意位置插入自定义附加信息
}

自定义Log

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

  • 相关接口
/**
 * @param enable 设置为 true,崩溃时上传 LogCat 日志
 */
NBSAppAgent.enableLogging(boolean enable)
  • 代码示例
NBSAppAgent.setLicenseKey("AppKey").enableLogging(true).start(this.getApplicationContext());

自定义错误

使用「自定义错误」接口可以采集研发人员「try / catch 异常」和「业务错误」并在基调听云平台「异常分析」→「错误」中进行展示,可以帮助研发人员收集异常和错误。

  • 相关接口
/**
 * @param message 不可以传空,最大长度 1024 字节,超出截取前 1024 字节
 * @param exception 上传 exception 取到抛出时的堆栈,不传只取到调用接口的堆栈,多线程下只取调用接口的线程的堆栈,堆栈最大深度为100
 * @param metaData value值支持 Number, String, Array, Map 类型,最大 128k,超出设置metadata为:"metaData":{"error":"metaData的大小大于最大限制128K"}
 */
NBSAppAgent.reportError(String message, Exception e, Map<String, Object> metaData)
NBSAppAgent.reportError(String message, Map<String, Object> metaData);
  • 代码示例
try {
    //...业务代码
} catch (Exception e) {
    Map<String, Object> map = new HashMap<>();
    map.put("当前页面", "主页");
    NBSAppAgent.reportError("发生异常", e, map);
}               
try {
    //...业务代码
} catch (Exception e) {
    Map<String, Object> map = new HashMap<>();
    map.put("当前页面", "主页");
    NBSAppAgent.reportError("发生异常", map);
}

设置异常回调

使用「异常回调」接口后可以在发生卡顿或上传崩溃数据时获取SDK采集的异常数据「崩溃、卡顿数据」。 注:需要在崩溃上传或发生卡顿前调用「SDK连服务器成功后就会上传崩溃数据」。请勿在回调接口中执行耗时操作。请勿在回调接口中 Kill 掉进程。

  • 相关接口
/**
 * @param type 触发接口回调的异常类型,1为崩溃,2为卡顿,3为崩溃和卡顿
 * @param feedback DataTypeCallBack 回调接口实现类对象
 */ 
NBSAppAgent.setDataTypeCallBack(int type, TingyunAnomalousDataFeedBack feedback)
  • 代码示例
NBSAppAgent.setDataTypeCallBack(3, new com.networkbench.agent.impl.instrumentation.TingyunAnomalousDataFeedBack() {
      @Override
      public void dataTypeFeedBack(com.networkbench.agent.impl.data.AnomalousData anomalousData) {          
          Log.e("TingYun","异常线程为" + anomalousData.getThreadName()+ ",堆栈信息为" + anomalousData.getAllStacktrace());
      }
});
© 2007-2024 北京基调网络股份有限公司 all right reserved,powered by Gitbook本文档更新于: 2024-03-04 10:18

results matching ""

    No results matching ""