乐趣区

关于vue.js:APP性能监测工具之友盟的-UAPM产品入门使用

APP 性能监测工具之友盟的 U-APM 产品入门应用

前言:

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

这里有一个整体的流程图

注释:

第一步:集成筹备

友盟的利用性能监控平台 U-APM 的传送门:https://at.umtrack.com/HHDSrm

如果没有账号能够先注册一下,注册完登录后,间接点击进入后盾

进入后盾后,点击立刻创立,填写上利用的相干信息,点击注册利用即可

这里的 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 Studio 3.1 及以上版本开发环境下,指定援用最新版本依赖写法”latest.integration”可能导致下载库超时,此时须要指定具体版本号。

清单文件中的权限配置

<uses-permission android:name=”android.permission.ACCESS_NETWORK_STATE”/>

<uses-permission android:name=”android.permission.ACCESS_WIFI_STATE”/>

<uses-permission android:name=”android.permission.READ_PHONE_STATE”/>

<uses-permission android:name=”android.permission.INTERNET”/>

如果利用应用了代码混同,请增加如下配置,以防止【友盟 +】SDK 被谬误混同导致 SDK 不可用

-keep class com.umeng.* {;}

-keepclassmembers class * {

public <init> (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);

代码示例


手动集成(不举荐)

手动集成没有应用,我这里就不做介绍了,有须要的小伙伴能够点开 https://developer.umeng.com/d… 进行学习应用。

到这里已实现了对数据统计和异常情况监测的 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 方向,喜爱分享常识和工作中遇到的问题,励志帮忙小伙们少踩坑,省下工夫专研更有意思的事件。

退出移动版