推广 - 传媒 2021-11-24T11:21:00 +08:00

移动性能优化之友盟+ U-APM产品入门使用

前言:

最近公司做了一款新的APP,要求能够看到用户每天的新增量和活跃量,还有一些页面的点击量、停留时间等的监测,还有更重要的一点就是能够监测到app的异常情况。于是开始对第三方工具开始一番研究,对比之后我选择使用了友盟。废话不多说,开始介绍下我的集成过程。

这里有一个整体的流程图

正文:

第一步:集成准备

友盟的应用性能监控平台 U-APM的传送门。

如果没有账号可以先注册一下,注册完登录后,直接点击进入后台

进入后台后,点击立即创建,填写上应用的相关信息,点击注册应用即可

这里的AppKey很重要哦,集成的时候要用到的,然后点击继续集成,下面就可以愉快的集成了。

第二步:开始集成,集成分自动集成和手动集成两种模式

还是先来看下整个集成的流程图

自动集成(推荐)

通过在Android Studio工程build.gradle配置脚本中添加maven线上依赖,导入最新版本组件化统计SDK。

maven依赖配置

在工程build.gradle配置脚本中buildscript和allprojects段中添加【友盟+】SDK新maven仓库地址。

maven { url 'https://repo1.maven.org/maven2/' }

在工程App 对应build.gradle配置脚本dependencies段中添加统计SDK库和其它库依赖:

dependencies {

implementation fileTree(include:['*.jar'], dir:'libs')

// 下面各SDK根据宿主App是否使用相关业务按需引入。

// 友盟统计SDK

implementation  'com.umeng.umsdk:common:9.4.2'// 必选

implementation  'com.umeng.umsdk:asms:1.4.1'// 必选

implementation 'com.umeng.umsdk:apm:1.4.2' // 错误分析升级为独立SDK,看crash数据请一定集成,必选

implementation  'com.umeng.umsdk:abtest:1.0.0'//使用U-App中ABTest能力,可选

}

注意:在Android Studio3. 1 及以上版本开发环境下,指定引用最新版本依赖写法”latest.integration”可能导致下载库超时,此时需要指定具体版本号。

清单文件中的权限配置

如果应用使用了代码混淆,请添加如下配置,以避免【友盟+】SDK被错误混淆导致SDK不可用

-keep class com.umeng.** {*;}

-keepclassmembers class * {

public  (org.json.JSONObject);

}

-keepclassmembers enum * {

public static **[] values();

public static ** valueOf(java.lang.String);

}

方法调用

在Applicaiton.onCreate函数中调用预初始化函数UMConfigure.preInit(),正式初始化函数UMConfigure.init可以按需调用(可以在预初始化函数之后紧接着调用,也可以放到后台线程中延迟调用,但还是必须调用,不能遗漏),但确保App首次冷启动时,在用户阅读《隐私政策》并取得用户授权之后,才调用正式初始化函数UMConfigure.init(),如果用户不同意《隐私政策》授权,则不能调用UMConfigure.init()初始化函数。

// SDK预初始化函数不会采集设备信息,也不会向友盟后台上报数据。

// preInit预初始化函数耗时极少,不会影响App首次冷启动用户体验

public static void preInit(Context context, String appkey, String channel)

/**

* 注意: 即使您已经在AndroidManifest.xml中配置过appkey和channel值,也需要在App代码中调

* 用初始化接口(如需要使用AndroidManifest.xml中配置好的appkey和channel值,

* UMConfigure.init调用中appkey和channel参数请置为null)。

*/

UMConfigure.init(Context context, String appkey, String channel, int deviceType, String pushSecret);

代码示例

手动集成(不推荐)

手动集成没有使用,我这里就不做介绍了。

到这里已完成了对数据统计和异常情况监测的sdk集成。

但是呢,平时生产反馈的异常问题,我们哼哧哼哧调试好半天才搞定,浪费了本该逍遥快活的大好时间。所以我们就想对app异常情况做更进一步的分析反馈。不要着急,友盟也给我们想好了,友盟给我们预留了崩溃回调方法,当崩溃发生时,可以在该回调方法中返回string类型的业务自定义数据,该数据会写入到崩溃文件中并上传到服务器展示。注意:崩溃回调中返回string类型数据的长度限制为 256 个字符。

接口示例

UMCrash.registerUMCrashCallback(newUMCrashCallback(){

@Override

publicString onCallback(){

return"崩溃时register的自定义内容字符串";

}

});

上传后即可在错误详情-自定义字段中查看到回调信息

我们还可以自定义异常接口,如果捕获了错误,需要手动上传到【友盟+】服务器可以调用下面两种方法:

方法一:

public static void UMCrash.generateCustomLog(Throwable e,String type)

方法一示例:

try{

// 抛出异常的代码

}catch(Exception e){

UMCrash.generateCustomLog(e,"UmengException");

}

方法二:

public static void UMCrash.generateCustomLog(String e,String type)

方法二示例:

String e ="自定义异常代码";

UMCrash.generateCustomLog(e,"UmengException");

使用自定义错误,查看时请在错误列表页面选择【自定义异常】。

好了,开始运行项目,看下友盟后台是不是有数据了,如果有用户数据那说明集成成功,可以庆祝了。

由于异常情况的数据还没有,只能给大家截个样式图了,但效果都是一样的。

整个集成过程还是比较简单的,目前友盟的功能还是比较强大的,包括应用的各种数据统计、异常日志的反馈、推送、分享等,以后会慢慢学习研究,加入到项目里,使应用的监控和功能更加丰富。

总结:

U-APM 是友盟+推出的App稳定性监控、性能监控和云真机测试平台。通过轻量级的集成接入即可拥有实时、可靠、全面的应用崩溃、ANR、自定义异常等捕获能力,及卡顿、启动分析等性能能力,支持多场景、多通道智能告警监控,帮助开发者高效还原异常、卡顿用户的访问路径和业务现场,缩短故障排查时间。这一块的功能是我比较喜欢的,建议大家不管是统计的集成,还是推送、分享的集成,都可以试试运用上U-APM的功能,你会发现不一样的使用和便捷。

对产品的建议是:产品本身还是比较成熟的,暂时没有发现什么需要改进的地方。

个人简介:我叫王太达,就职于中邮信息科技(北京)有限公司,是一名全栈工程师,现在主攻Java方向,喜欢分享知识和工作中遇到的问题,励志帮助小伙们少踩坑,省下时间专研更有意思的事情。

相关话题

特别声明:以上内容(如有图片或视频亦包括在内)均为站长传媒平台用户上传并发布,文章为企业广告宣传内容,本平台仅提供信息存储服务,对本页面内容所引致的错误、不确或遗漏,概不负任何法律责任,相关信息仅供参考。任何单位或个人认为本页面内容可能涉嫌侵犯其知识产权或存在不实内容时,可及时向站长之家提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明(点击查看反馈联系地址)。本网站在收到上述法律文件后,将会依法依规核实信息,沟通删除相关内容或断开相关链接。

推荐关键词

24小时热搜

查看更多内容

大家正在看

友盟宣布被阿里巴巴收购