1个小时接入友盟+ U-APM:解决移动应用崩溃、性能、内存的云监控分析

简介: 本文主要是一次产品需求讨论之后的功能论证,公司正式的APP接入友盟+ U-APM还未上线。而本文也是花了一个小时尝试接入U-APM的一种实验,过程比较顺利,而产品部对于这种性能指标的监控方式也比较认可,毕竟一次接入之后就可以实现多种应用。而友盟+ U-APM的功能不止于此,后续对于U-APM的深入对接也不会止步。

背景和痛点

随着移动项目的不断递进,用户使用量的增加,复杂的机型、Android版本等等,让公司的移动应用开始频频出现投诉、不稳定等问题。

其实这些问题在早起也有出现过,不过都因为用户量少,出现问题都可以快速解决。但是产品上依然面临着如下问题:

1、公司的手机型号不全,一般的云真机很难模拟出来所有的场景。

2、公司自己研发的日志捕捉功能不全,一方面对于瞬间崩溃很难捕捉,另一方面则是捕捉的时候部分机型当时的内存、设备快照获取不对,导致开发不断的更新完善日志机制。

3、虽然也做了钉钉的群机器人告警业务,但是只能做简单的监控,无法起到预警作用,都是事后告警,这个时候往往用户端已经出现严重错误。

4、AndroidIOS需要各自研发一套,并且IOS的信息获取更加困难,导致我们IOS端功能也相对保守,很多新研发的功能都不敢在IOS上推广。

需求分析

面临这些问题,我们需要抽丝剥茧找到一个核心的解决方案。

1、公司永远不可能把所有手机购置一遍,云真机是主流,需要找到一个海量稳定机型的市场。

2、对于日志采集、性能监控找到第三方解决。把专业的问题交给专业的团队,公司的团队把核心能力应用在公司的业务开发。

3、需要能够做到:

javaSwiftANRNative都可以做崩溃分析。

②对于AndroidIOS能够设置指标进行卡顿分析。

③对于热启动、冷启动、首次启动可以做独立的分析,定点解决启动慢问题。

④对内存占用进行分析,特别是卡顿、崩溃时候的整体内存和本应用内存的分析。

⑤能够自定义监听一些日志,自定义推送到微信、钉钉等。

⑥这些数据最好不要只是原始数据,通过监控平台可以形成报表。

维度分析

1.png

2.jpg

3.jpg

老板首先看中的是成本,从成本上来说,自主研发是一个持续性投入的过程。未来可能还会有更多的研发投入,以及机型购置。

而从技术角度上来说,研发更倾向于不断打造完善公司自己的APM,不过在深入了解了友盟+APM之后觉得除了我们能够长期存储日志,其他真的不具备优势。而60天的日志分析记录,也足够使用了。

所以综合来看,我们开始决定使用友盟+APM监控系统以及友盟+的真机调试。

 

技术实现

1、注册友盟+会员

这点略过,大家自行注册,注册完成之后选择友盟+U-APM产品

4.jpg

2、新建应用

填写应用信息,并选择平台(平台支持Android+IOS,但是AndroidIOS平台需要独立添加应用)

5.jpg

3、集成U-APMSDK

Android StudioMaven 自动集成为例

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

引入SDK以及对应的版本:(使用时候注意最好用最新版)

dependencies {

  implementation 'com.umeng.umsdk:common:9.4.2'

  implementation 'com.umeng.umsdk:asms:1.4.1'

  implementation 'com.umeng.umsdk:apm:1.4.2'

}


6.jpg

4、配置必要的权限清单

建议把位置权限要加上去,U-APM会在SDK内集成了防作弊的位置判断,更加准确的获取位置信息。

7.jpg

5、初始化接入

接入的时候需要几个注意点:

AndroidManifest.xml需要配置appkeychannel,即便是在onCreate的时候设置了key

8.jpg


6、集成平台

就可以看到自己的应用了

9.jpg

分析

对于ANR有独立的分析页面

卡顿分析、启动分析、内存分析等等都可以精确到小时、天等维度。同时可以针对不同的版本、操作系统、设备等进行详细的统计。

10.jpg

云真机测试

应用可以一站式接入云真机,从华为、小米等一线品牌到魅族联想甚至诺基亚都有涵盖。Android版本也包含了最低的Android4.4和最高的Android11

直接上传安装包,就可以进行一键测试了。

11.jpg

总结和体验:

 

本文主要是一次产品需求讨论之后的功能论证,公司正式的APP接入友盟+ U-APM还未上线。而本文也是花了一个小时尝试接入U-APM的一种实验,过程比较顺利,而产品部对于这种性能指标的监控方式也比较认可,毕竟一次接入之后就可以实现多种应用。

友盟+ U-APM的功能不止于此,后续对于U-APM的深入对接也不会止步。

下一步会继续尝试:

例如,U-APM可以分别分级控制内存、卡顿、崩溃等开关和捕获级别,自定义Activity 预埋手动采集控制,等等。





作者:小七

CSDN账号:漠上刀栈


相关实践学习
通过轻量消息队列(原MNS)主题HTTP订阅+ARMS实现自定义数据多渠道告警
本场景将自定义告警信息同时分发至多个通知渠道的需求,例如短信、电子邮件及钉钉群组等。通过采用轻量消息队列(原 MNS)的主题模型的HTTP订阅方式,并结合应用实时监控服务提供的自定义集成能力,使得您能够以简便的配置方式实现上述多渠道同步通知的功能。
相关文章
|
9月前
|
存储 弹性计算 缓存
阿里云服务器ECS经济型、通用算力、计算型、通用和内存型选购指南及使用场景分析
本文详细解析阿里云ECS服务器的经济型、通用算力型、计算型、通用型和内存型实例的区别及适用场景,涵盖性能特点、配置比例与实际应用,助你根据业务需求精准选型,提升资源利用率并降低成本。
569 3
|
5月前
|
设计模式 缓存 Java
【JUC】(4)从JMM内存模型的角度来分析CAS并发性问题
本篇文章将从JMM内存模型的角度来分析CAS并发性问题; 内容包含:介绍JMM、CAS、balking犹豫模式、二次检查锁、指令重排问题
167 1
|
8月前
|
存储 人工智能 自然语言处理
AI代理内存消耗过大?9种优化策略对比分析
在AI代理系统中,多代理协作虽能提升整体准确性,但真正决定性能的关键因素之一是**内存管理**。随着对话深度和长度的增加,内存消耗呈指数级增长,主要源于历史上下文、工具调用记录、数据库查询结果等组件的持续积累。本文深入探讨了从基础到高级的九种内存优化技术,涵盖顺序存储、滑动窗口、摘要型内存、基于检索的系统、内存增强变换器、分层优化、图形化记忆网络、压缩整合策略以及类操作系统内存管理。通过统一框架下的代码实现与性能评估,分析了每种技术的适用场景与局限性,为构建高效、可扩展的AI代理系统提供了系统性的优化路径和技术参考。
536 4
AI代理内存消耗过大?9种优化策略对比分析
|
6月前
|
消息中间件 存储 关系型数据库
千亿消息“过眼云烟”?Kafka把硬盘当内存用的性能魔法,全靠这一手!
Apache Kafka 是由 LinkedIn 开发并捐赠给 Apache 基金会的分布式消息队列系统,具备高吞吐、可扩展和容错能力。其核心设计围绕主题、分区、分段和偏移量展开,通过顺序写入磁盘和 Page Cache 提升性能,广泛应用于大数据实时处理场景。
278 0
|
9月前
|
存储 缓存 分布式计算
高内存场景必读!阿里云r7/r9i/r8y/r8i实例架构、性能、价格多维度对比
阿里云针对高性能需求场景,一般会在活动中推出内存型r7、内存型r9i、内存型r8y和内存型r8i这几款内存型实例规格的云服务器。相比于活动内的经济型e和通用算力型u1等实例规格,这些内存型实例在性能上更为强劲,尤其适合对内存和计算能力有较高要求的应用场景。这些实例规格的云服务器在处理器与内存的配比上大多为1:8,但它们在处理器架构、存储性能、网络能力以及安全特性等方面各有千秋,因此适用场景也各不相同。本文将为大家详细介绍内存型r7、r9i、r8y、r8i实例的性能、适用场景的区别以及选择参考。
|
弹性计算 安全 数据库
【转】云服务器虚拟化内存优化指南:提升性能的7个关键策略
作为云计算服务核心组件,虚拟化内存管理直接影响业务系统性能表现。本文详解了内存优化方案与技术实践,助您降低30%资源浪费。
328 0
【转】云服务器虚拟化内存优化指南:提升性能的7个关键策略
|
8月前
|
存储 弹性计算 固态存储
阿里云服务器配置费用整理,支持一万人CPU内存、公网带宽和存储IO性能全解析
要支撑1万人在线流量,需选择阿里云企业级ECS服务器,如通用型g系列、高主频型hf系列或通用算力型u1实例,配置如16核64G及以上,搭配高带宽与SSD/ESSD云盘,费用约数千元每月。
1068 0
|
移动开发 监控 Android开发
Android & iOS 使用 ARMS 用户体验监控(RUM)的最佳实践
本文主要介绍了 ARMS 用户体验监控的基本功能特性,并介绍了在几种常见场景下的最佳实践。
1143 100
|
运维 监控 数据可视化
ARMS的微服务监控
【8月更文挑战第23天】
297 6