跨平台应用开发进阶(三十八)uni-app前端监控方案:基调听云APP探究_uniapp sentry

专业技能

一般来说,面试官会根据你的简历内容去提问,但是技术基础还有需要自己去准备分类,形成自己的知识体系的。简单列一下我自己遇到的一些题

最近得空把之前遇到的面试题做了一个整理,包括我本人自己去面试遇到的,还有其他人员去面试遇到的,还有网上刷到的,我都统一的整理了一下,希望对大家有用。

其中包含HTML、CSS、JavaScript、服务端与网络、Vue、浏览器等等

由于文章篇幅有限,仅展示部分内容

一、前言

在前期博文《跨平台应用开发进阶(三十七)uni-app前端监控方案 Sentry 探究》中讲解了SentrySentry是一个开源实时错误监控项目,支持包括 web 前端、服务器端、移动端及其游戏端等多端配置。考虑到目前存量产品在用监控方案听云,故弃用Sentry,探究听云集成应用详情。

二、产品介绍

基调听云App 移动应用性能管理产品采用SDK方式实现对App的崩溃、卡顿、超时等性能问题进行采集,并能对真实用户体验数据进行量化分析,实现版本迭代过程中的用户体验优化。

基调听云APP 以集成SDK方式,通过在指定方法中嵌码去采集方法中的数据。可以通过报表服务器查询各种方法的数据和调用次数。

具有如下功能:

  1. 数据采集
    • HTTP/HTTPS协议数据收集
    • 崩溃/卡顿异常数据收集
    • 事件性能数据收集
    • 视图性能数据收集
    • 进程内存和CPU使用率
    • 用户体验分析数据收集
  2. 网络数据
    • 应用响应时间
    • DNS解析时间
    • TCP建连时间
    • SSL握手时间
    • 首包时间
    • 访问量

SDK也可以采集线程堆栈,数据库、自定义参数和HTTP请求参数。

  1. 用户体验分析-应用启动数据

    • 启动耗时
    • 启动次数
    • 启动期间的崩溃、事件性能数据
  2. 用户体验分析-用户操作数据

    • 操作耗时
    • 阻塞耗时
    • 操作次数
    • 操作期间的崩溃、事件性能数据
  3. 用户体验分析-页面加载数据

    • 页面交互耗时
    • 页面展现耗时
    • 页面加载期间的事件性能数据
2.1 工作原理
2.1.1 Android平台工作原理

基调听云SDK 通过虚拟机技术在应用打包编译过程中对应用采样点(HTTP标准协议和HTTPS标准协议)进行嵌码操作,该操作会在协议类库方法前后部署基调听云SDK探针,该过程不会影响用户代码逻辑。

每当App启动时,基调听云Agent开始工作。应用有网络请求时,通过之前部署的基调听云SDK探针以一定的采集频率来采集数据,并对采集的数据进行汇总后,上传到服务器(报表展现)。

应用退出到后台或用户关闭App时,基调听云Agent停止工作,以便减少不必要的流量消耗。

  • Android SDK性能消耗
    应用App嵌码后体积增量为370KB左右。
2.1.2 iOS平台工作原理

利用objective-cruntime特性,通过Method swizzle技术,可以实现在运行时替换 selector 对应的方法实现,达到给方法挂钩的目的。也就是说,嵌入基调听云的 SDK 后,在程序启动之初,基调听云的SDK会对相应的方法执行swizzle操作,从而在调用一个被swizzle过后的函数时,将会首先调用SDK相应的自定义函数,在SDK的函数中会执行一些数据采集的操作,然后SDK的函数会再回调原函数的实现,不会影响原程序逻辑。

  • iOS SDK体积增量
    三种指令架构增加 2.71M,具体表现为:
  • Armv7 增加 0.81M
  • Armv7s 增加0.81M
  • Arm64 增加0.99M

三、项目集成

集成听云至项目中,不同平台采用不同的集成方案(对于集成实施者不友好)。其中,android采用sdk集成方式实现,ios采用uni-app官方插件形式集成。

3.1 Android集成

参照集成文档《TingYun_SDK_Android_Gradle_2.15.6_3.0_uni-app》可完成集成操作。

有关Android本地组包操作,详参博文《跨平台应用开发进阶(九) :uni-app 实现Android原生APP-本地打包集成极光推送(JG-JPUSH)详细教程》。

APP启动后可在 logcat 处通过 NBSAgent 筛选出如下信息,即代表集成成功:

在这里插入图片描述

3.2 iOS集成

参照探针集成文档《iOS集成-基调听云App性能监控》,可完成探针集成

参照探针部署文档《iOS集成听云uni-app插件》,可完成探针部署

总结一下

面试前要精心做好准备,简历上写的知识点和原理都需要准备好,项目上多想想难点和亮点,这是面试时能和别人不一样的地方。

还有就是表现出自己的谦虚好学,以及对于未来持续进阶的规划,企业招人更偏爱稳定的人。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

万事开头难,但是程序员这一条路坚持几年后发展空间还是非常大的,一切重在坚持。

为了帮助大家更好更高效的准备面试,特别整理了《前端工程师面试手册》电子稿文件。

前端面试题汇总

JavaScript

性能

linux

前端资料汇总

前端工程师岗位缺口一直很大,符合岗位要求的人越来越少,所以学习前端的小伙伴要注意了,一定要把技能学到扎实,做有含金量的项目,这样在找工作的时候无论遇到什么情况,问题都不会大。

  • 29
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值