错误日志埋点 方案分析"/>
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错误日志埋点 方案分析
发布评论