APP错误日志埋点 方案分析

编程入门 行业动态 更新时间:2024-10-17 09:48:13

APP<a href=https://www.elefans.com/category/jswz/34/1771449.html style=错误日志埋点 方案分析"/>

APP错误日志埋点 方案分析

作为商业化开发,错误日志&&埋点在企业决策、项目维护上尤其重要,这里介绍怎样更快的为企业减负增效。

一、错误日志方案

错误日志的方案目前主流大致有

1.1、使用友盟、bugly方案

这种官方sdk都比较稳定,基本不收费,且集成相对简单,这里贴一下地址

bugly官网、友盟性能监控

1.2、公司自研

自己定义CrashHander,接口联调,按照一定策略上传到公司服务器,并封装成sdk

如果有完全企业内部自定义开发需求,参考这里

1.3、使用Sentry

Sentry统计是一整套系统,覆盖面包括各个终端。这个的服务端是收费的,但是可以使用他们的源码自己搭建就免费,目前我们公司使用这套,非常棒。

目前支持了React、Vue、android、iOS、React Native、Flutter等多个平台

集成相对简单

1.3.1、集成android

app Gradle中添加依赖

implementation 'io.sentry:sentry-android:6.0.0'

application节点下添加 (这个是内网地址,这样就不泄露信息了😄)

备注这里有个坑:这个注册也可以通过Sentry.init代码动态注册,但是可能会功能失败。

<meta-dataandroid:name="io.sentry.dsn"android:value="http://53968c8d69c54fd7a649ff4236bd049a@172.16.200.96:9000/10" />

这样就集成ok了,在onCreate中添加崩溃代码即可看到效果

findViewById<TextView>(R.id.textView1).setOnClickListener {throw NullPointerException("阿斯蒂芬")
}
1.3.2、集成RN
yarn add @sentry/react-native

会在package.json中生成

"@sentry/react-native": "^3.4.3",

添加初始化代码

备注这里有个坑:这个导包init千万要导入@sentry/react-native的包,导入@sentry/web就失效了

import { init } from '@sentry/react-native'// 初始化错误统计Sentry
init({dsn: 'http://53968c8d69c54fd7a649ff4236bd049a@172.16.200.96:9000/10',environment: Config.envType,debug: __DEV__,tracesSampleRate: 1.0,
})

到这里就完成了,然后随便抛个错误。

这个产品的优势是可以记录从React到js到java全流程的错误,非常之叼。而一般友盟、bugly只能从原生的角度记录错误,能不能记录js、dart等上层语言的错误,完全是记录原生模块顺带的,所以就不够友好。

此外RN的debug模式报红不属于崩溃,属于Facebook SDK内部维护的业务信息,因此这里不能记录。改到release模式下就可以抛出来被sentry捕获。

throw new Error('safadsfdsfafadsfadf')
// NativeModules.CommonModule.showPics('pics', 'defaultIndex')

测试纯原生报错,可以延迟等js加载完毕,再在主线程crash

// 测试主线程崩溃,统计错误
private void testCrash(){new Thread(() -> {try {sleep(10 * 1000);} catch (InterruptedException e) {e.printStackTrace();}runOnUiThread(new Runnable() {@Overridepublic void run() {throw new NullPointerException("重构jazg");}});}).start();
}

二、业务埋点方案

业务埋点的方案目前主流大致有

2.1、使用友盟

友盟基础方案不收费,高级方案收费

友盟移动统计

2.2、使用公司自研

这种需要较多的开发资源,特别是如果需要数据分析、决策啥的需要自己开发

如果有完全企业内部自定义开发需求,参考这里

2.3、神策分析

神策分析也是业内专业性最强的埋点服务,但是要收费。它的服务很周到,傻瓜式的接入,即使不会ios开发接入也非常简单。

优势:可以记录原生、JS每个按钮、每个控件的事件,以及每个控件的父控件,控制台的数据,可以说sdk的功能写的可以上天了

坑点:如果在官网没有找到生成项目key的入口,说明不是合作客户,需要交钱了

代码这里就不写了,主要是这个文档写的太好了,点进去链接按照步骤来即可

三、总结

如果公司要求不高的话建议搞个友盟算了,简单又方便。如果公司对这块比重看得比较重,则考虑使用神策分析+Sentry错误统计。

更多推荐

APP错误日志埋点 方案分析

本文发布于:2024-03-09 20:29:39,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1726044.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:错误   方案   日志   APP

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!