使用友盟APP性能监测工具U-APM产品新增增量和活跃量,以及页面点击量、停留时间等监测,等等重要的是,监控应用程序异常的能力。于是开始对第三方工具进行一些研究,经过比较,我选择了用友盟。话不多说,介绍一下我的整合过程。整体流程图正文如下:第一步:集成准备友盟应用性能监控平台U-APM入口:https://at.umtrack.com/HHDSrm如果没有帐号,可以先注册。注册后登录后,直接点击进入后台。进入后台后,点击立即创建,填写应用的相关信息,点击注册应用。这里的AppKey很重要。集成的时候会用到,然后点击继续集成。下面可以做Happy来整合。第二步:开始整合。积分分为自动积分和手动积分两种模式。我们先来看一下整个集成的流程图。自动集成(推荐)通过在AndroidStudio项目build.gradle配置脚本中添加maven在线依赖,导入最新版本的组件化统计SDK。Maven依赖配置在项目build.gradle配置脚本的buildscript和allprojects部分添加[Youmeng+]SDK新建maven仓库地址。maven{url'https://repo1.maven.org/maven2/'}在项目app对应的build.gradle配置脚本的dependencies部分添加统计SDK库和其他库依赖:dependencies{implementationfileTree(include:['*.jar'],dir:'libs')//根据宿主App是否使用相关服务,按需导入以下SDK。//友盟统计SDK实现'com.umeng.umsdk:common:9.4.2'//需要实现'com.umeng.umsdk:asms:1.4.1'//需要实现'com.umeng.umsdk:apm:1.4.2'//错误分析升级为独立SDK,请集成查看crash数据,需要实现'com.umeng.umsdk:abtest:1.0.0'//使用U-App中的ABTest能力,可选}注意:在AndroidStudio3.1及以上的开发环境中,指定引用最新版本依赖的“latest.integration”可能会导致下载库超时。在这种情况下,您需要指定具体的版本号。清单文件中的权限配置permission.READ_PHONE_STATE"/>如果应用使用了代码混淆,请添加如下配置,避免【友盟+】SDK被误混淆导致SDK失败使用-keepclasscom.umeng.*{;}-keepclassmembersclass*{public(org.json.JSONObject);}-keepclassmembersenum*{publicstatic**[]values();publicstatic**valueOf(java.lang.String);}方法调用调用了Applicaiton.onCreate函数中的预初始化函数UMConfigure.preInit(),正式初始化函数UMConfigure.init可以按需调用(可以在之后立即调用)预初始化函数,或者放在后台线程延迟调用,但是必须调用ed不能省略),但要保证app在第一次冷启动时,在用户读取《隐私政策》并获得用户授权后调用官方初始化函数UMConfigure.init()。如果用户不同意《隐私政策》授权,则不能调用UMConfigure.init()初始化函数。//SDK预初始化函数不会采集设备信息,也不会向友盟后台上报数据。//preInit预初始化功能耗时极少,不会影响App第一次冷启动的用户体验publicstaticvoidpreInit(Contextcontext,Stringappkey,Stringchannel)/**注意:即使你配置了AndroidManifest.xml中的appkey和channel值,还需要在App代码中调用初始化接口(如果需要使用AndroidManifest.xml中配置的appkey和channel值,请在UMConfigure中设置appkey和channel参数.init调用为空)。*/UMConfigure.init(Contextcontext,Stringappkey,Stringchannel,intdeviceType,StringpushSecret);Codeexample手动集成(不推荐)手动集成没有用到,这里就不介绍了,有需要的朋友可以点击打开https://developer.umeng.com/d...进行学习和使用。至此,数据统计和异常情况监控的sdk集成就完成了。但是,对于平时生产反馈的异常问题,我们花了很长时间调试解决,浪费了本来应该开心快乐的大好时光。所以我们想对app的异常情况做进一步的分析和反馈。别着急,幽梦也替我们想好了。友盟为我们预留了崩溃回调方法。当发生崩溃时,可以在该回调方法中返回字符串类型的业务自定义数据,该数据将写入崩溃文件并上传到服务器显示。注意:crash回调返回的字符串类型数据长度限制为256个字符。接口示例UMCrash.registerUMCrashCallback(newUMCrashCallback(){@OverridepublicStringonCallback(){return"崩溃时注册自定义内容字符串";}});上传后可以在错误详情-自定义字段查看回调信息。您还可以自定义异常界面。如果发现错误,需要手动上传到【友盟+】服务器。可以调用以下两个方法:方法一:publicstaticvoidUMCrash.generateCustomLog(Throwablee,Stringtype)方法一示例:try{//抛出异常的代码}catch(Exceptione){UMCrash.generateCustomLog(e,"UmengException");}方法二:publicstaticvoidUMCrash.generateCustomLog(Stringe,Stringtype)方法二示例:Stringe="Customexceptioncode";UMCrash.generateCustomLog(e,"UmengException");使用自定义错误,查看时请在错误列表页面选择【自定义异常】。好了,开始运行项目,看看友盟后台有没有数据。如果有用户数据,说明集成成功,可以庆祝了。由于目前还没有异常情况的数据,只能给大家截个样式图,不过效果是一样的。整个集成过程比较简单。目前友盟的功能还是比较强大的,包括应用的各种数据统计,异常日志的反馈,推送,分享等,以后会慢慢学习研究,加入项目,把应用做的监控和功能更加丰富。摘要:U-APM是友盟+推出的一款应用稳定性监测、性能监测和云真机测试平台。通过轻量级集成接入,您可以拥有实时、可靠、全面的应用崩溃、ANR、自定义异常等捕获能力,以及卡顿、启动分析等性能能力。支持多场景、多渠道的智能告警监控,帮助开发者高效恢复异常、停滞的用户访问路径、业务站点,缩短故障排查时间。这个功能是我最喜欢的。我建议大家可以尝试使用U-APM的功能,不管是统计的整合,还是推送分享的整合。你会发现不同的用法和方便。对产品的建议是:产品本身比较成熟,暂时没有发现可以改进的地方。个人简介:我叫王泰达,就职于中邮信息技术(北京)有限公司,全栈工程师。现在我专注于Java。喜欢分享知识和工作中遇到的问题。我受到启发来帮助人们避免陷阱。节省时间,专注于更有趣的事情。