Matrix代码零侵入自动埋点

这篇具有很好参考价值的文章主要介绍了Matrix代码零侵入自动埋点。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Matrix代码零侵入自动埋点

本文链接:https://blog.csdn.net/feather_wch/article/details/131693055

包含内容:
应用启动流程与卡顿监控的关系
卡顿监控原理分析与缺陷
微信是如何实现卡顿监控的
无侵入埋点技术实践

抛出问题

遇到卡顿问题怎么办?

  • 用工具进行分析
  1. CPU Profile
  2. Systrace
  3. layoutinspect

性能优化和framework原理学习区别

  • fm变动少
  • 性能问题可能原因千奇百怪,需要丰富实践经验

** 用户使用App很卡,怎么解决?**

  • 线上监控
  • 线下复现

1、Bugly是什么?友盟?

  1. 异常监控平台(Crash、exception)

卡顿监控

2、卡顿监控?

  1. 目的:在用户卡顿时,直到当前在执行什么代码,帮助分析解决卡顿问题

如何判断程序是否发生卡顿?

如何堆栈采集?

卡顿判定

3、基于Looper卡顿判定原理

  1. Andorid事物基于Looper处理消息,处理消息耗时,必然导致卡顿
  2. 设置Printer-setMessageLogging(xxx),第一次回调logging.println记录开始时间并startDump,第二次回调记录结束时间并stopDump,可以估算MSG执行时间
  3. 【Matrix方案】Looper卡顿监控、 Choreographer做帧率监控
  4. 【BlockCanary】Looper卡顿监控
  5. 【360 Argus Apm】Choreographer

4、BlockCanary卡顿监控缺陷

  1. 没办法判断到底是哪个方法出现的问题,粒度太大不精准

5、如何优化Looper卡顿监控

  1. 给每个业务代码,字节码插桩

6、Matrix使用

  1. matrix中日志变成了数字和时间,需要mapping文件进行还原。减少数据量

7、Matrix每个业务方法增加入口和出口方法,是如何实现时间统计的?

  1. 字节码茶庄加入I、O方法,时间每次查询性能太差。
  2. 有HandlerThread时间总线去获取5ms更新一次
    时间总线

扩展知识

App启动流程

  1. Launcher进程->SystemServer进程->(LocalSocket)fork进程->App进程<—>SystemServer(AMS/ATMS)
  2. startActivity->startProcessLocked->fork->attachApplication->bindApplication->schduleLauchActivity
  3. ApplicationThread和ActivityThread

fork和多线程

  1. 系统不能使用Binder
  2. 发散 => KOOM线上内存监控,Leakcanary Dump消耗性能,暂停所有线程
  3. 采用fork出子进程并且dump,因为内存信息完全一样,所以可以用于分析。
  4. 实战时:出现子进程不能正常执行了 -> Java天生是多线程的,有守护线程,fork和多线程
  5. dump源码中会suspendAllThread,但是子进程中线程只是对象并没有运行会出错。
  6. fork前suspendAllThread,再fork,fork出的子进程中线程本身已经是suspend状态,所以调用suspendAll方法不会出现问题。
  7. 主进程在fork后立马恢复线程即可,可以做自己的事情
  8. fork => 来源于 安卓6.0前保活技术,就采用的fork技术

Relinker

  1. 现场部署了Apk,但是需要更新so,设备问题,就网络配好so,下载并且加载???

腾讯小视频直播在Android端采用了LocalSocket文章来源地址https://www.toymoban.com/news/detail-553500.html

  1. IPC通信方案:Binder、LocalSocket、MMKV、SharedMemory、Pipe
  2. 模拟音视频传输,每16ms发送一次序列化后数据对象,大小为3K/4M/10M 三档位
  3. 时间范围:发送前时间戳,收到并反序列化成对象的时间戳,之间差值为传输延迟
  4. LocalSocket在三种数据档位,是最好的。远低于10ms。
  5. Binder(XIPCInvoker)和MMKV:10M数据延迟太大了

到了这里,关于Matrix代码零侵入自动埋点的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解决前端恶意代码侵入的一些思考

    安全,特别是软件代码安全,近年来被业内人士频繁提出,可见其受重视程度。而这些,起源与全球化的开源大生产。 开源软件运动如火如荼的进行了二十四五年(如果从1998年2月3日在硅谷的一次会议中首次提出“open source”一说开始算 - 当时互联网先驱Netscape刚刚宣布开放

    2023年04月08日
    浏览(37)
  • 一种简单的Android骨架屏实现方案----0侵入0成本

    所谓骨架屏,就是在页面进行耗时加载时,先展示的等待 UI, 以告知用户程序目前正在运行,稍等即可。 等待的UI大部分是 loading 转圈的弹窗,有的是自己风格的小动画。其实大同小异。而骨架屏无非也是一个等待的UI。基本是由各种灰色块组成,夹杂着一些代表特殊样式的其

    2024年02月14日
    浏览(35)
  • 使用Mybatis自定义插件实现不侵入业务的公共参数自动追加

    后台业务开发的过程中,往往会遇到这种场景:需要记录每条记录产生时间、修改时间、修改人及添加人,在查询时查询出来。 以往的做法通常是手动在每个业务逻辑里耦合上这么一块代码,也有更优雅一点的做法是写一个拦截器,然后在Mybatis拦截器中为实体对象中的公共

    2024年02月04日
    浏览(42)
  • Android中Matrix的简单使用

    Matrix 是一款微信研发并日常使用的应用性能接入框架,支持iOS, macOS和Android。 Matrix 通过接入各种性能监控方案,对性能监控项的异常数据进行采集和分析,输出相应的问题分析、定位与优化建议,从而帮助开发者开发出更高质量的应用。 ​ Matrix-android 当前监控范围包括:应

    2024年02月05日
    浏览(44)
  • 从零开始学数据结构和算法:腾讯Android开发面试记录,已开源_android 开发面试算法

    先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7 深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前! 因此收集整理了一份《2024年最新Android移动开发全套学习资

    2024年04月25日
    浏览(57)
  • Android 开发必备知识点及面试题汇总(Android+Java+算法+性能优化+四大组件……),腾讯安卓开发面试

    5.请介绍下 AsyncTask的内部实现,适用的场景是 AsyncTask 内部也是 Handler 机制来完成的,只不过 Android 提供了执行框架来提供线程池来 执行相应地任务,因为线程池的大小问题,所以 AsyncTask 只应该用来执行耗时时间较短的任务, 比如 HTTP 请求,大规模的下载和数据库的更改不

    2024年04月15日
    浏览(65)
  • Android Matrix (三)矩阵组合和应用变换

    在 Android 开发中, Matrix 类不仅提供了 mapPoints 方法来变换点坐标,还提供了多种其他用法,使其成为处理图像和视图变换的强大工具。以下是 Matrix 类的一些关键用法: 1. 变换方法 setTranslate(float dx, float dy) : 设置矩阵为平移矩阵。 setScale(float sx, float sy, float px, float py) : 设置

    2024年02月02日
    浏览(37)
  • Android开发名企真实面试经历

    作为一名Android开发,在各种初创公司工作了几年后,我觉得是时候开始去大公司探索机会了。 当前国内大厂人人都想挤进去, 在我综合考量之下,我选择了投外企 ,幸运的是,没过多长时间我就接到了某著名外企面试官的电话,先是问我有没有时间,需要进行一轮电话筛选

    2024年02月03日
    浏览(36)
  • Android 开发面试中,面试官最喜欢问那些问题?

    作者:小谢 “你遇到过哪些高质量的Android面试?” [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3Pc1xZw5-1691675604271)(//upload-images.jianshu.io/upload_images/24388310-aa3c732481d0749f.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200)] 这是我前几天在知乎上面看到一个热

    2024年02月13日
    浏览(38)
  • Android Studio xml文件代码自动提示失效/Android Studio 代码不自动提示/怎样设置才能不手动敲Android Studio 代码

    下图为我成功解决Android不自动提示代码之后的样子(这个过程耗时两天,把相关博客都看了一遍,尝试了各种各样的方法都没有解决。但是用这个方法的话几分钟就解决掉了) 我的电脑一直都是很奇怪的状态,因为用别的软件也总是会出现各种bug,但解决这个问题找到合适

    2024年02月03日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包