开源 _ 新一代Android 性能监控框架Rabbit

这篇具有很好参考价值的文章主要介绍了开源 _ 新一代Android 性能监控框架Rabbit。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

应用启动耗时统计

在对应用主页进行配置后,rabbit可以统计出如下图所示的冷启动耗时:

页面渲染与网络请求耗时统计

与网络请求耗时结合后,rabbit可以统计出一个页面的完全渲染耗时。这里的完全渲染耗时是指:从页面create到页面拿到请求结果并刷新页面所用的时间。核心思想参考自:Android自动化页面测速在美团的实践,最终统计的页面耗时如下图所示:

慢函数检测

基于编译时代码插桩, rabbit可以准确的统计每一个函数的耗时,并筛选出慢函数

慢函数定义为: 在主线程消耗时间超过一定阈值的函数(rabbit也支持配置检测其他线程的慢函数)。

rabbit支持分包检测慢函数:

支持查看每一个包下的慢函数列表以及每一个慢函数的堆栈:

代码扫描

通过提供给rabbit一份代码扫描列表,rabbit可以在编译时扫描出这些代码调用的位置。默认会扫描一些阻塞代码, 比如下面这种:

SharePreferences$Editor.commit()

最终扫描结果会展示如下:

点击右上角导出按钮可以把扫描结果以json的形式导出到SD卡中。

网络日志监控

rabbit可以记录网络请求日志并方便的查看返回的json数据:

卡顿日志监控

rabbit通过Choreographer来检测主线程的运行情况,并异步采集主线程堆栈来还原卡顿现场。

对于下面代码:

Thread.sleep(2000)

rabbit会获得如下的卡顿采集结果:

FPS分析

rabbit会在主线程looper运行时计算主线程FPS并实时的显示出来:

rabbit支持分页面分析FPS:

内存分析

功能类似于FPS分析,rabbit支持实时显示内存使用情况并分页面分析内存占用情况:

分页面内存统计:

异常捕获

通过设置Thread.setDefaultUncaughtExceptionHandler,rabbit可以捕获java层异常并展示出来:

内存泄漏捕获

rabbit集成了leakcanary 2.0

apk包分析

rabbit提供了一个可执行的jar包, 它可以准确的分析出apk中的大图、重复文件、apk包大小与内容组成。核心思路参考自Matrix APK包分析。

运行方式为:

java -jar apk-analyzer.jar apk-analyzer-config.json

apk-analyzer-config.json用来配置待分析的apk路径以及mapping文件位置等信息:

{
“apkPath”:“xxxx/app-Release.apk”,
“methodGroup”:[{
“name”:“xxx”,
“package”:“com.xxx.xx”
}],
“classMappingFilePath”:“xxx/xxx.txt”,
“maxImageSizeKB”:30
}

最终分析结果会输出到一个json文件中:

apk-analyzer-result.json

{
“AppInfo”: {
“versionCode”: “1004000”,
“versionName”: “1.4.0”,
“appSize”: “21.51 MB”
},
“BigImageRes”: [
{
“name”: “assets/flutter_assets/images/icons/xxLogo.png”,
“size”: “76.73 KB”
}


],
“ApkCompose”: [
{
“type”: “so”,
“totalSizeStr”: “8.05 MB”
},
{
“type”: “dex”,
“totalSizeStr”: “6.54 MB”
}


],
“DuplicatedFile”: [
{
“files”: [
“res/drawable-xxhdpi-v4/bg_home_water_ripple.webp”,
“res/drawable-xxhdpi-v4/bg_keyboard_shadow_line.webp”
],
“fileSize”: “”,
“md5Value”: “d41d8cd98f00b204e9800998ecf8427e”
}

],
“MethodCount”: {
“total-count”: 127732,
“com.xxx.xx”: 14800,
“other-pkg”: 112932
}
}

上报APK分析结果

需要在apk-analyzer-config.json中配置上报路径:

{
“apkPath”:“xxxx/app-Release.apk”,

“uploadPath”:“xxxxxx/upload”
}

上报的数据格式与rabbit的基本上报数据格式保证一致:

数据上报

rabbit目前支持上报大部分检测数据。通过一些简单的配置就可以把检测数据上报到后台。rabbit数据上报的基本格式如下:

{
“device_info_str”: “{…}”,
“info_str”: “{…}”,
“time”: 1577775888933,
“type”: “fps_info”,

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
开源 _ 新一代Android 性能监控框架Rabbit,2024年程序员学习,开源,android
开源 _ 新一代Android 性能监控框架Rabbit,2024年程序员学习,开源,android
开源 _ 新一代Android 性能监控框架Rabbit,2024年程序员学习,开源,android
开源 _ 新一代Android 性能监控框架Rabbit,2024年程序员学习,开源,android
开源 _ 新一代Android 性能监控框架Rabbit,2024年程序员学习,开源,android
开源 _ 新一代Android 性能监控框架Rabbit,2024年程序员学习,开源,android
开源 _ 新一代Android 性能监控框架Rabbit,2024年程序员学习,开源,android

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
开源 _ 新一代Android 性能监控框架Rabbit,2024年程序员学习,开源,android

尾声

如果你想成为一个优秀的 Android 开发人员,请集中精力,对基础和重要的事情做深度研究。

对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。 整理的这些架构技术希望对Android开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。

这里,笔者分享一份从架构哲学的层面来剖析的视频及资料分享给大家梳理了多年的架构经验,筹备近6个月最新录制的,相信这份视频能给你带来不一样的启发、收获。开源 _ 新一代Android 性能监控框架Rabbit,2024年程序员学习,开源,android

PS:之前因为秋招收集的二十套一二线互联网公司Android面试真题 (含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

开源 _ 新一代Android 性能监控框架Rabbit,2024年程序员学习,开源,android

架构篇

《Jetpack全家桶打造全新Google标准架构模式》
开源 _ 新一代Android 性能监控框架Rabbit,2024年程序员学习,开源,android

(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

[外链图片转存中…(img-lzOiplzR-1712001551113)]

架构篇

《Jetpack全家桶打造全新Google标准架构模式》
[外链图片转存中…(img-Dx1VHuxi-1712001551113)]

本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录文章来源地址https://www.toymoban.com/news/detail-850280.html

到了这里,关于开源 _ 新一代Android 性能监控框架Rabbit的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • springcloud:新一代分布式定时任务框架——PowerJob

    之前我们讲解过主流的分布式定时任务框架xxl-job,随着技术的迭代更新,更多的定时任务框架也开始出现,今天我们来看一看新一代的定时任务框架 PowerJob PowerJob是基于java开发的企业级的分布式任务调度平台,与xxl-job一样,基于web页面实现任务调度配置与记录,使用简单,

    2024年02月02日
    浏览(57)
  • 百度安全七大开源项目构建新一代人工智能安全技术栈

    新技术、新业态催生了传统网络安全格局的深刻变革。伴随移动互联网,大数据、云计算、人工智能等新一代信息技术的快速发展,围绕网络和数据的服务与应用呈现爆发式增长,智能设备将无所不在,智能家居、无人车、物联网将渗透到人类社会的各个角落,丰富的应用场

    2024年02月22日
    浏览(56)
  • Teamlinker:基于人工智能的新一代团队协作开源解决方案

    企业用户团队协作解决方案 团队协作从未如此轻松 在上一家工作的时候,当时我们用的项目管理软件是 jira ,视频会议是 zoom ,日历是 office ,平时的沟通则是用的微信,在不同的平台间切换是一件让人疲惫不堪的事情,同时公司每年在这些产品的开销也很多,当时我就有想

    2024年02月03日
    浏览(62)
  • Openjob:更强大、更智能的新一代分布式任务调度框架

    Openjob 基于Akka架构的新一代分布式任务调度框架。支持多种定时任务、延时任务、工作流设计,采用无中心化架构,底层使用一致性分片算法,支持无限水平扩容。 Openjob 除了支持基本的任务调度,还提供延时任务、分布式计算以及工作流。 定时任务 普通定时任务, 支持

    2024年02月08日
    浏览(45)
  • Flink CDC 3.0 正式发布,详细解读新一代实时数据集成框架

    Flink CDC 是基于数据库日志 CDC(Change Data Capture)技术的实时数据集成框架,支持了全增量一体化、无锁读取、并行读取、表结构变更自动同步、分布式架构等高级特性。配合 Flink 优秀的管道能力和丰富的上下游生态,Flink CDC 可以高效实现海量数据的实时集成。Flink CDC 社区发

    2024年02月04日
    浏览(45)
  • Apache SeaTunnel:新一代高性能、分布式、海量数据集成工具从入门到实践

    Apache SeaTunnel 原名 Waterdrop,在 2021 年 10 月更名为 SeaTunnel 并申请加入 Apache孵化器。目前 Apache SeaTunnel 已发布 40+个版本,并在大量企业生产实践中使用,包括 J.P.Morgan、字节跳动、Stey、中国移动、富士康、腾讯云、国双、中科大数据研究院、360、Shoppe、Bilibili、新浪、搜狗、唯

    2024年02月03日
    浏览(55)
  • [1Panel]开源,现代化,新一代的 Linux 服务器运维管理面板

    本期测评试用一下1Panel这款面板。1Panel是国内飞致云旗下开源产品。整个界面简洁清爽,后端使用GO开发,前端使用VUE的Element-Plus作为UI框架,整个面板的管理都是基于docker的,想法很先进。官方还提供了视频的使用教程,本期为大家按照本专栏的基本内容进行多方面的测评。

    2024年02月07日
    浏览(80)
  • 新一代开源语音库CoQui TTS冲到了GitHub 20.5k Star

    Coqui TTS 项目介绍 Coqui 文本转语音(Text-to-Speech,TTS)是新一代基于深度学习的低资源零样本文本转语音模型,具有合成多种语言语音的能力。该模型能够利用共同学习技术,从各语言的训练资料集转换知识,来有效降低需要的训练资料量。 这个模型库现在已经在GitHub上开源

    2024年02月07日
    浏览(40)
  • 一周AIGC丨Meta 发布新一代开源大模型 Llama 2,大模型裁员潮不远了?

    人们把Meta发布免费可商用版本 Llama 2比作“安卓时刻”,OpenAI护城河似乎一下子荡然无存,整个大模型市场格局面临巨变。据媒体报道,在以往,中国大模型公司可以靠商业授权赚钱利润,随着Llama 2开始允许商用,中国大模型公司的这一优势现在也没有了。傅盛更是发出预警

    2024年02月11日
    浏览(37)
  • 抢先体验|乐鑫推出 ESP32-S3-BOX-3 新一代开源 AIoT 开发套件

    乐鑫科技 (688018.SH) 非常高兴地宣布其开发套件阵容的最新成员 ESP32-S3-BOX-3。这款完全开源的 AIoT 应用开发套件搭载乐鑫高性能 ESP32-S3 AI SoC, 旨在突破传统开发板,成为新一代开发工具的引领者。 【乐鑫新品抢先体验】ESP32-S3-BOX-3 新一代开源 AIoT 开发套件 ESP32-S3-BOX-3 拥有丰

    2024年02月11日
    浏览(39)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包