项目崩溃/停滞/ANR/OOM/启动缓慢
1.1项目背景

1.2遇到的挑战
1.3解决问题的步骤
1.4项目概述
2.产品体验内容:集成/访问/使用
2.1集成/接入/友谊联盟+应用性能监控平台U-APM
2.2集成/访问/使用经验的总结和分享
2.3对产品的建议/意见
1.该项目遇到了故障/堵塞/ANR/OOM/缓慢启动。
1.1项目背景
项目背景是公司开发项目,老板提出需求,产品经理策划需求并文档化,开发人员根据需求策划开发,项目开发人员;项目的组织结构:
:uniapp架构+U-APM监控统计+canvas海报B端管理系统:Vue+Axios+Elementui+ueditor135编辑器+
项目名称值得买商城,主要是综合B2C平台,包括内部商城管理系统和C端小程序app。该项目类似于JD.COM商城和天猫商城,可以浏览商品和下单,会员用户和明星用户可以参与各种活动。
电子商务模式:
1.1:B2B:企业对企业。比如阿里巴巴,慧聪,明万。
1.2:B2C:企业对用户。比如JD.COM。
1.3:C2C:用户对用户。比如淘宝。
1.4:B2B2C:企业对企业对用户。比如天猫。
1.5:O2O:线上到线下。比如外卖,美团,饿了么。
1.2遇到的挑战/问题
1.项目上线不好检查,比如代码异常或者控制台监控异常。
2.服务器队列界面有一个挂起的项目直接崩溃。
3.点击类似登录按钮的请求,频繁点击请求,多次点击请求。
4.页面组件的不一致导致很多地方的需求发生变化。
5.由于切换环境或项目距离配置,异常axios拦截失败。
1.3解决问题的步骤
1.项目开发初期引入的fundebug第三方插件,监测代码异常,但部分拦截异常无法捕捉{H5和小程序使用fundebug,APP使用友盟的U-APM访问并捕捉异常}。
先检查第三方捕获的异常区的偏差问题,通过开发者工具调试调试器检查异常的位置,检查是代码逻辑问题还是其他异常,依次检查解决。
1.4项目概述
遇到问题的时候,不要急躁,不要慌张。既然问题出现了,就按照问题出现的时间、方式、情况来检查。发现问题后,就想办法一步步解决。第一,反复把自己的思路说清楚。在实战中,你总会遇到奇怪的问题。用心去做就好。一些模块项目,如系统表格、表格、网站列表、标题栏等。应该打包集成为一个组件库进行统一管理,这样可以减少工作量和代码。
2.产品体验内容:集成/访问/使用
在这里,我们来谈谈友盟U-APM的综合接入和使用方法。这里首先说明一下为什么我个人在开发的时候会选择友盟的这个产品api在项目中使用。在解决问题的步骤中,我提到了在项目中,小程序使用的h5和一个第三方fundebug来捕获和捕捉异常,在app开发中使用U-APM来捕获和监控捕获错误和异常。{fundebug在捕捉异常和监控方面不如U-APM全面,只能监控普通异常。U-APM可以监控崩溃分析,自定义错误异常,启动分析,分析卡顿分析影响人数等}。唯一美中不足的是U-APM只支持Android和IOS。
2.1产品体验的内容:集成/访问/使用
2.1.1首先进入网站,登录并注册应用,获取下载SDK。
U-APM网站地址file/tupian/20220910/pp在Android Studio项目build.gradle配置脚本中添加maven online依赖,导入最新版本的组件统计SDK。

Maven依赖配置
在项目build.gradle配置脚本的buildscript和allprojects部分添加[Youmeng+] SDK的新maven仓库地址。
maven { URL ' https://dl . bin tray . com/um SDK/release ' }
build script { repositories { Google jcenter maven { URL ' https://dl . bin tray . com/um SDK/release ' } }依赖项{ class path ' com . Android . tools . build:gradle:3 . 4 . 0 '//注意:不要将应用程序依赖项放在此处;它们属于//独立模块build.gradle files } }所有项目{ repositories { Google jcenter maven { URL ' https://dl . bin tray . com/um SDK/release ' } } }
在工程App对应的build.gradle配置脚本的依赖关系部分添加统计SDK库和其他库依赖关系:
//以下SDK根据主机App是否使用相关服务按需介绍。
// OAID是目前国内市场主流的Android Q设备logo,可以根据需要选择。
//友盟统计SDK实现' com.naming.umsdk: common: 9.3.3 '
//版本号实现' com.naming.umsdk: asms: 1.1.4 '
// asms包依赖于实现' com.naming.umsdk: game: 9.2.0+g '
//游戏统计SDK依赖于实现' com.naming.umsdk: APM: 1.1.0 '
// U-APM包依赖关系
碰撞类型//ANR
如果你使用的是SDK 9 . 0 . 4或以上版本,并且集成了UMING-APM-VX.x.x.AAR插件,新版本的稳定性功能默认开启。
-保留类com.uc. * * { *}
如果开发者自己捕捉到错误,需要手动上传到【友盟+】服务器,可以调用以下两种方法:
@param {e}错误异常
@param{type}自定义错误类型
公共静态void UMCrash.generateCustomLog
一种方法的示例:
尝试{//引发异常的代码}
接住{
UMCrash.generateCustomLog}
方法二:
@param {e}错误异常
@param{type}自定义错误类型
公共静态void UMCrash.generateCustomLog
成功捕获并查看友盟+U-APM可视化工具:
详细的文件查看官把文件看得清清楚楚:https://developer.umeng.com/docs/193624/detail/194590
2.2集成/访问/使用经验的总结和分享
首先说一下市场现状:App性能低的原因有很多。除了设备的软硬件等外部因素外,大部分是由于开发人员对线路、系统功能、编程范式、数据结构等的误用造成的。即使是经验丰富的程序员,也很难避免开发过程中所有导致性能低下的“坑”。因此,解决性能问题的关键在于尽早发现、定位和捕获这些错误。随着App服务越来越多,各个系统越来越复杂,服务之间的调用、服务的依赖、服务的性能分析变得越来越困难,因此引入性能监控平台显得尤为重要。无法快速、准确、丰富地定位错误类型是衡量性能监控产品的关键因素。以友盟+的U-APM应用性能监控平台为例,无论是Java、原生崩溃、ANR、系统查杀等可以捕获异常的U-APM,生成一个内容完整、丰富、全面的日志。作为一个App开发者,我相信你一定遇到过类似的尴尬问题:故障总是客户告诉你的,什么时候发生的,你又无法确定。只能通过客户反馈来推回时间节点,然后从错误日志中得到相对完整的日志信息。比如友盟+的应用性能监控平台U-APM,可以到达邮件、钉钉、企业微信、飞书等渠道。后三者可以通过webhook直接将监控报警发送到群里,让群里的RD同学第一时间获得有效信息,及时更改异常修复。个人觉得挺好的。目前对于个人开发或者企业应用开发来说已经足够了。
2.3对产品的建议/意见
作为开发人员对U-APM的建议:

1.你可以有一个选择平台,通过登录一个账号直接看到对应数据的统计来切换ios/ Android。现在来回折腾有点麻烦。
2.目前监测统计错误只支持IOS和Android APP,小程序,H5和微信官方账号,目前不支持。
3.如果从异常监控有录屏功能就更好了,会直接检查录屏播放效果杆的~ ~ ~的。
原文链接:http://click.aliyun.com/m/1000306701/
本文为阿里云原创内容,未经允许不得转载。


