美文网首页Android技术知识
看大厂专业技术团队是如何把 APP 性能监控做到极致?

看大厂专业技术团队是如何把 APP 性能监控做到极致?

作者: 搬砖小老弟 | 来源:发表于2022-08-22 16:43 被阅读0次

在团队开发中最怕一件事是 APP 用户失流,而首先想到造成这类现象出现的原因就是性能问题,当用户在使用 APP 过程中遇到:卡顿、闪退、响应时间长、电量消耗快、发热严重等问题的时,就有可能选择选择卸载该 APP。而产品想要留住并得到更多的用户,就得避免此类情况的出现.

虽然说在产品上线前,开发们会反复进行测试,可能当时没有问题就上线了,但是上线后会不会出现问题,这就不得而知了。为了预防问题的出现,开发们会借助一些性能监控的组件 APM,来进行监控、采集性能数据,在遇到问题时好及时应对,并做好针对性的优化方案,来提高用户的体验。

性能监控组件 APM 比较常见的就有:腾讯Bugly、腾讯Matrix 、腾讯GT、网易Emmagee、听云APP等。其实它们的工作流程大致一样:

  1. 首先需要从用户实际使用的客户端(Android、IOS、Web等)采集数据
  2. 再将采集来的数据进行整理结构化并上报至服务器
  3. 当服务器收到数据后,就开始进行数据建模、数据存储、数据挖掘分析等操作,然后再将数据进行可视化操作,提供给用户(开发者)使用

APM工作流程图:

简单的理解 Android APM 框架,它其实就是 Android 平台上引用的一个SDK,只不过它主要用于性能采集相关。而我们需要做的就是将 APM 框架加装到APP 程序中,来进行的数据采集、上报等操作,而APM的核心就是数据采集。

在得到采集数据的方法后,**该如何进行量化操作呢?

**大家都知道在 APP上线后,可能出现问题的频率不止一条两条这么简单,如果采用手动埋点上报信息的话,工作量就会巨大无比、不灵活也不现实,这种方法也无法运用到所有场景中去;所以得探索自动化工作模式进行采集,这样不仅省时又省力。我们只需要在构建期间,通过修改字节码的方式来进行插桩操作,就可以实现自动化的方式进行采集数据了。

什么是字节码插桩?

字节码插桩就是在构建的过程中,通过修改已经编译完成的字节码文件,也就是class文件,来实现功能的添加。这样大家可能不是很好理解,我们可以先来看看 Android 打包流程图:

我们主要目的是字节码插桩,插桩肯定是对class文件进行操作,通过上图(app构建流程)可以看到,我们的关注流程应该在.class file -> dex 之间。

在这个之间我们可以通过插入自定义的 Transform 来遍历所有的 class 文件,然后通过字节码处理框架,例如 ASM 来完成对字节码文件的修改与回写。

ASM 可以说是目前对字节码修改效率最高的程序了,而且非常灵活,几乎可以做到任何修改字节码指令,或者直接生成字节码文件的能力。

不过,大家虽然都知道 AMS 功能强大效率高,是很多无痕埋点、APM 框架的首先,但是对 AMS 的使用不是很熟练、对其原理也不是很了解,那该怎么办呢?

为了帮助到大家更好的掌握 Framework 底层与性能优化相关知识点,这准备了 Android11.0最新Framework解析 与 性能优化知识点汇总和Android 性能监控框架 的学习文档,中间记录了 AMS、PMS、WMS、Hander、Binder、启动优化、内存优化、UI优化……等知识点,可谓是很全面了,↓↓↓

有需要的可以复制下方链接,传送直达!!!
https://qr21.cn/CaZQLo?BIZ=ECOMMERCE

内功心法不是一天两天就可以修炼出来的,而是需要每天的坚持,技术提升也是如此。所以最好的速成修炼方法就是每天学习一点,日积月累后就会发现自己进步的效果。

相关文章

网友评论

    本文标题:看大厂专业技术团队是如何把 APP 性能监控做到极致?

    本文链接:https://www.haomeiwen.com/subject/dmyigrtx.html