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

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
应用实时监控服务-应用监控,每月50GB免费额度
简介: 本文主要是一次产品需求讨论之后的功能论证,公司正式的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订阅方式,并结合应用实时监控服务提供的自定义集成能力,使得您能够以简便的配置方式实现上述多渠道同步通知的功能。
相关文章
|
4月前
|
存储 弹性计算 缓存
阿里云服务器ECS经济型、通用算力、计算型、通用和内存型选购指南及使用场景分析
本文详细解析阿里云ECS服务器的经济型、通用算力型、计算型、通用型和内存型实例的区别及适用场景,涵盖性能特点、配置比例与实际应用,助你根据业务需求精准选型,提升资源利用率并降低成本。
294 3
|
5月前
|
存储 缓存 网络协议
阿里云内存型实例规格性能、价格、适用场景与选型指南参考
阿里云服务器ECS(Elastic Compute Service)提供了多样化的内存型实例规格族,专为需要高性能内存资源的应用场景设计。从最新的r8a系列到经过优化的re6p系列,阿里云内存型实例旨在提供稳定、高效且安全的计算环境。这些实例不仅具备强大的计算性能与内存配比,还通过支持ESSD云盘和高效网络协议,显著提升了存储I/O能力和网络带宽,适用于大数据分析、高性能数据库、内存密集型应用等多种场景。本文将详细解析阿里云ECS中的多个内存型实例规格族,包括它们的核心特点、适用场景、实例规格及具体指标数据,为用户在选型时提供参考。
阿里云内存型实例规格性能、价格、适用场景与选型指南参考
|
23天前
|
机器学习/深度学习 运维 数据挖掘
运维告警不是“玄学”:聊聊怎么用机器学习优化事件关联分析
运维告警不是“玄学”:聊聊怎么用机器学习优化事件关联分析
72 3
|
3月前
|
存储 人工智能 自然语言处理
AI代理内存消耗过大?9种优化策略对比分析
在AI代理系统中,多代理协作虽能提升整体准确性,但真正决定性能的关键因素之一是**内存管理**。随着对话深度和长度的增加,内存消耗呈指数级增长,主要源于历史上下文、工具调用记录、数据库查询结果等组件的持续积累。本文深入探讨了从基础到高级的九种内存优化技术,涵盖顺序存储、滑动窗口、摘要型内存、基于检索的系统、内存增强变换器、分层优化、图形化记忆网络、压缩整合策略以及类操作系统内存管理。通过统一框架下的代码实现与性能评估,分析了每种技术的适用场景与局限性,为构建高效、可扩展的AI代理系统提供了系统性的优化路径和技术参考。
158 4
AI代理内存消耗过大?9种优化策略对比分析
|
5月前
|
存储 分布式计算 安全
阿里云服务器内存型实例怎么选?r7/r8y/r8i实例性能、适用场景与选择参考
在选择阿里云服务器时,针对内存密集型应用和数据库应用,内存型实例因其高内存配比和优化的性能表现,成为了众多用户的热门选择。在目前阿里云的活动中,内存型实例主要有内存型r7、内存型r8y和内存型r8i实例可选。为了帮助大家更好地了解这三款实例的区别,本文将详细对比它们的实例规格、CPU、内存、计算、存储、网络等方面的性能,并附上活动价格对比,以便用户能够全面了解它们之间的不同,以供选择和参考。
|
4月前
|
存储 缓存 数据挖掘
阿里云服务器实例选购指南:经济型、通用算力型、计算型、通用型、内存型性能与适用场景解析
当我们在通过阿里云的活动页面挑选云服务器时,相同配置的云服务器通常会有多种不同的实例供我们选择,并且它们之间的价格差异较为明显。这是因为不同实例规格所采用的处理器存在差异,其底层架构也各不相同,比如常见的X86计算架构和Arm计算架构。正因如此,不同实例的云服务器在性能表现以及适用场景方面都各有特点。为了帮助大家在众多实例中做出更合适的选择,本文将针对阿里云服务器的经济型、通用算力型、计算型、通用型和内存型实例,介绍它们的性能特性以及对应的使用场景,以供大家参考和选择。
|
6月前
|
弹性计算 固态存储 ice
阿里云服务器ECS内存型2核16G、4核32G和8核64G配置实例、费用和性能参数表
本文整理了2025年阿里云服务器租赁价格表,涵盖2核16G、4核32G和8核64G配置收费标准。CPU内存比为1:8,提供多种实例规格如ECS内存型r8i、通用算力型u1等。价格由CPU内存、公网带宽及系统盘组成,支持优惠折扣(年付6.7折起)。文中详细列出各配置参考价格、公网带宽与系统盘收费,并对比不同实例规格性能,如Intel Xeon和AMD EPYC处理器系列,帮助用户选择高性价比方案。具体价格以阿里云官网为准。
781 4
|
7月前
|
运维 监控 前端开发
Zabbix告警分析新革命:DeepSeek四大创新场景助力智能运维
面对日益复杂的IT环境,高效分析监控数据并快速响应成为运维的关键挑战。本文深入探讨了DeepSeek与Zabbix结合的创新应用,包括一键式智能告警分析、Zabbix文档知识库助手及钉钉告警增强功能。通过部署指南和实用脚本,展示了如何提升故障排查效率,为运维工程师提供高效解决方案。
630 5
|
7月前
|
Java 编译器 Go
go的内存逃逸分析
内存逃逸分析是Go编译器在编译期间根据变量的类型和作用域,确定变量分配在堆上还是栈上的过程。如果变量需要分配在堆上,则称作内存逃逸。Go语言有自动内存管理(GC),开发者无需手动释放内存,但编译器需准确分配内存以优化性能。常见的内存逃逸场景包括返回局部变量的指针、使用`interface{}`动态类型、栈空间不足和闭包等。内存逃逸会影响性能,因为操作堆比栈慢,且增加GC压力。合理使用内存逃逸分析工具(如`-gcflags=-m`)有助于编写高效代码。
134 2
|
12月前
|
移动开发 监控 Android开发
Android & iOS 使用 ARMS 用户体验监控(RUM)的最佳实践
本文主要介绍了 ARMS 用户体验监控的基本功能特性,并介绍了在几种常见场景下的最佳实践。
843 105

热门文章

最新文章