第三媒体软件中心软件网络资讯互联网资讯 → 移动应用性能那么差 透视宝Smart SDK怎么破解?! TTL

移动应用性能那么差 透视宝Smart SDK怎么破解?!

上传:山地枯木     来源:信息存储服务     日期:2016-01-08

[摘要]  
   透视宝是云智慧的新一代应用性能管理(APM)平台,面向业务提供全栈性能监控、分析与管理的云端解决方案。对于移动应用的性能问题,透视宝是通过嵌入SDK来实现真实用户体验跟踪的,支持Native、H5以及混合开发模式的应用监控,帮助开发人员实时发现与定位应用崩溃、加载缓慢等各种故障与性能问题
 
[正文]    

   透视宝是云智慧的新一代应用性能管理(APM)平台,面向业务提供全栈性能监控、分析与管理的云端解决方案。对于移动应用的性能问题,透视宝是通过嵌入SDK来实现真实用户体验跟踪的,支持Native、H5以及混合开发模式的应用监控,帮助开发人员实时发现与定位应用崩溃、加载缓慢等各种故障与性能问题。

移动应用性能那么差 透视宝Smart SDK怎么破解?!


  透视宝在移动端嵌入的SDK被称为Smart SDK,它是如何实现对不同移动应用用户行为与体验数据智能采集的呢,又有哪些实际应用呢,云智慧高级开发攻城狮Alvin将为您逐一解读。

  Smart SDK能干嘛?

  总结一句话就是Smart SDK能够解决开发者的痛点,给业务人员出决策参考意见。移动开发者的痛点就是各种Bug:卡顿、闪退、页面加载慢、网络连接超时,网络被劫持;而业务人员的正确决策需要关注真实用户的体验。把这些需求归结为技术实现,主要有3部分:网络监控、事务监控、Crash信息收集。

移动应用性能那么差 透视宝Smart SDK怎么破解?!


  详细功能图如下图所示:

移动应用性能那么差 透视宝Smart SDK怎么破解?!

  Smart SDK功能图

  针对HTTP的网络数据收集主要分为以下指标:请求时间、网络吞吐量和网络错误,劫持分析等。

  l 请求时间是指一个http请求从发起请求到接收到服务端的响应,这期间所经历的时间。这个指标可以跟踪后台接口的响应是否正常,网络环境是否正常。

  l 网络吞吐量是指单位时间内某一个url请求的次数。这个指标可以跟踪后台接口是否能够响应大规模的请求。因为单位时间内某个接口的响应次数是100和10000,不管是技术层面还是业务层面,都会做出不同的响应。某个接口有大规模的请求,技术上就要做压力评估,业务上则应该加大跟踪和投入了。

  l 网络错误主要是跟踪url请求过程中的错误,分为http本身的错误和因网络状况出现的错误。

  针对Socket的网络数据收集,主要包括Socket建立连接的耗时、DNS解析耗时、连接异常、数据读写异常的。

  事务监控里面的用户行为监控,能够将所有的性能数据串起来,就可以满足开发者和业务人员的需求,也就是我们常说的基于业务的性能监控。事务监控可以分为很多类,有用户的操作,页面的加载,图片的渲染,线程操作,数据解析等。

  l 用户操作主要是监控APP里的点击事件;

  l 页面加载要监控页面加载周期的各个接口,除了用户的操作外,APP的所有业务逻辑都是在页面的生命周期函数中做的;

  l 图片加载也是影响APP性能的罪魁祸首之一,美工切的一张简单的图,在APP里渲染、显示出来,会消耗不少的资源,因此将它作为一个性能消耗点来监控;

  l 线程操作是导致主线程卡顿的主因;

  l 数据解析虽然可以在子线程里做,但都是同步的,会导致页面加载变慢。

  APP崩溃一直是移动开发者最大的痛点,所以收集崩溃日志,快速定位问题根源,是最好的解决办法。

  而用户信息收集可以将APP的性能数据和真实用户对应起来,在发现APP性能问题后,第一时间与真实用户建立联系,沟通解决。

  上面这些就是Smart SDK所能实现的功能。

  Smart SDK实现原理

  下面先以iOS应用为例说一下透视宝Smart SDK是如何实现应用性能监控的。iOS平台的原生开发语言是Objective-C,具有动态运行时的特点,Cocoa框架提供了很多动态运行时接口可以对OC接口进行hook,也就是方法拦截。

  通过方法拦截,就可以获取到方法的参数值,方法执行开始、结束的时间戳。。。方法执行的性能数据就出来。

移动应用性能那么差 透视宝Smart SDK怎么破解?!


  OC方法拦截原理图

  OC有一个很好用的语法,叫Category。通过Category,可以给原有的类(系统类,自己的类)添加一个新的接口,OC中叫selector(方法选择器),每一个方法,对应一个实现体(IMP),类似函数入口地址。

  通过Category新增一个SelectorN方法,使用动态运行时函数交换SelectorC与SelectorN的实现体,就实现了两个方法的交换。SelectorC与SelectorN除了名字不一样 ,其他的都一样(参数和返回值)。开发者在调用SelectorC时,就会调用到SelectorN。我们的目的就达到了。

  APP启动,在类文件加载进内存时,系统会调用每一个类的load类函数(Swift工程里的Swift类没有load函数,就调用initialize函数),方法交换就是在这里面做的。

  说完了iOS,再说说Android。Android的原生开发语言是Java,Java没有提供动态运行时的接口来hook方法,但提供了字节码改写的方法。

  先来看看经典的Android APP打包流程图。

移动应用性能那么差 透视宝Smart SDK怎么破解?!

Android APP打包流程图

  所有资源文件(xml,png之类)、源代码文件等都会经过java编译器编译成 .class的字节码文件。再与其他库文件一起,由Android sdk提供的dex工具,转换成Android平台的.dex文件,再通过apk打包工具打成apk包等等。

  这一打包流程图,翻译一下,就是下面这张图。

移动应用性能那么差 透视宝Smart SDK怎么破解?!


  我标出了关键部位,没有打马赛克,对,这就是Smart SDK,在.class 文件准备转换成.dex文件之前起的作用。

  通过代理,在dex工具的接口中,使用ASM框架,把进入dex里面所有的.class文件读出来,找到我们感兴趣的方法,改写(加些数据收集代码),再让打包流程继续,最终生成的apk包里,就有了我们的收集性能数据的代码。

  客户案例分析

  目前我们接触次数最多的是百程旅行网,他们使用SDK已经有3个月时间了。下图是他们最新版APP的性能情况,从数据上来看,他们的APP的性能真有待提高。

移动应用性能那么差 透视宝Smart SDK怎么破解?!


  崩溃率确实有点高,优秀的APP崩溃率是千分之一到千分之二,所以他们亟需我们的SDK定位崩溃根源。通过抓取的崩溃信息,可以给他们进行初步参考,因为上传到APP Store的APP产生的崩溃日志,需要对应的解码文件才能查看具体崩溃在哪个文件的哪一行代码上。

  这里发现他们另外一个问题是网络请求时间太长,在跟他们技术交流之后,初步判断网络请求时间长的有一部分原因,是因为线上数据混入了测试数据造成的结果。

  一个杭州的用户在6分钟内发起了5800多次请求,请求错误率高达98%以上。当时他们不相信那是真实的,其实我也不太相信。后来再次跟开发人员交流,问那个网络请求接口是否循环调用了,他回答是:请求接口在请求成功之前会一直循环调用,直到请求成功或是断网。就是因为杭州这个用户在一个时间点访问的api有问题,导致循环请求。

  还有一点,我们通过Smart SDK发现好些API报错是找不到主机,客户端的开发说是因为很多接口废弃了,但客户端还在调用,他们内部也明确说明要清理一遍废弃的api。

  目前,百程旅行网用Smart SDK已经找出了应用崩溃的根源,以及API慢、不可用的原因,每周会根据我们统计的数据做一次性能优化。

    (新闻稿 2016-01-08)


频道首页 】【 评论 】 【 打印 】 【 字体:
   上一篇:中国智造团勇闯CES争霸赛,亿航、人智机器人美国出彩
   下一篇:信息安全应有序而为 产业链闭环打击诈骗或将升级
导航:报价 | 大全 | 排行榜 | 产品大全 | 参量 | 订阅 
 Advertisement
 十大最受关注的新闻
1  量大管饱价格亲民,学生适用U盘二选一
2  慧博科技《2024酒饮行业数字化研究报告》重磅发布,解锁行业转型升级新路径
3  这可能是微软手柄“青春版”!盖世小鸡微软授权天启手柄正式开售
4  受邀参加云栖大会,Soul App构建人与AI共存的社交网络
5  《抖音电商DOU Case年鉴2024》重磅发布,解锁CORE经营实战秘诀
6  好科普,让知识“飞入寻常百姓家”|《2024全国科普日百科知识数据报告》
7  上UC浏览器十一快乐供给站,轻松去班味,福利免费领
8  亚运一周年|杭州电竞如何重塑行业格局与未来趋势?
9  大容量存储卡护航,十一出游美拍存储无忧
10  WRCA世界纪录认证官马克西姆宣布德施曼GPTfinger技术获世界纪录认证
 十大热门驱动/软件下载
1  [手机驱动]手机usb万能
2  [热门常用软件]QQ2008正式版下载【腾讯QQ2008官方版Beta1】
3  [热门常用软件]E话通下载【E话通4.5 正式版】
4  [手机驱动]Samsung三星 手机USB驱动1.0版For Win98SE/ME/...
5  [手机驱动]Microsoft微软 ActiveSync同步软件4.5中文版Fo...
6  [摄像头驱动]万能摄像头 FOR Windows
7  [热门常用软件]皮皮播放器下载【PPFilm皮皮播放器 2.1.0....
8  [手机驱动]诺基亚 PC套件下载
9  [热门常用软件]面对面游戏下载【面对面视频游戏大厅】
10  [手机驱动]Microsoft微软 Windows Mobile Device Center ...
 十大最受关注的品牌
1  三星手机(SAMSUNG)
2  诺基亚手机(NOKIA)
3  华硕笔记本(ASUS)
4  摩托罗拉手机(MOTOROLA)
5  英特尔CPU(Intel)
6  华硕主板(ASUS)
7  LG手机(LG)
8  索爱手机(Sony Ericsson)
9  联想笔记本(lenovo)
10  宏碁笔记本(acer)
 十大热门常用软件下载
1  QQ2008正式版下载【腾讯QQ2008官方版Beta1】
2  E话通下载【E话通4.5 正式版】
3  皮皮播放器下载【PPFilm皮皮播放器 2.1.0.2版】
4  面对面游戏下载【面对面视频游戏大厅】
5  DVD解码器下载【NVIDIA DVD Decoder 1.02】
6  迅雷5下载【迅雷5.8.1.507官方版】
7  QQ2007 II正式版下载【腾讯QQ2007官方版本】
8  QQ2006正式版下载【腾讯QQ2006官方版本】
9  联众世界游戏大厅下载【联众世界2.7.0.8官方版】
10  MTV下载器【MTV下载精灵 8.31版】
11  pplive最新版下载【PPLive网络电视V1.9.35版】
12  迅雷(Thunder)下载【迅雷v5.7.12.493官方版】
13  腾讯QQ2008下载【腾讯QQ官方版2008极速贺岁版KB1】
14  Total Video Converter下载【Total Video Converter v3.1...
15  QQ拼音输入法下载【腾讯QQQQ拼音输入法V1.4.1版】
16  皮皮高清影视播放器下载【PIPIPlayer 2.7.0.3版】
17  eMule下载【电驴eMule官方v0.49a正式版】
18  极点五笔输入法下载【极点五笔6.1标准版】
19  QQ2009正式版下载【腾讯QQ2009 SP4官方版】
20  Vagaa哇嘎画时代版下载【哇嘎 2.6.5.10】
   >> 查看评论   
 
   >> 查看更多评论   [共有0条评论]
发表评论
        
        
   点评:
   姓名:  
            字数: 0
     
新闻精选
·商家,您有一张“双11大促战略图”等待查收
·自研多模态大模型,Soul App亮相2024 GITEX G
·德施曼智能锁发起科创基金,用创新“长板”打
·出门问问携领先数字人技术亮相 IAUP 三年大会
·聊会儿精神分析,人都变精神了|既是群聊,也
·亮相2024 GITEX海湾信息技术博览会 Soul App
  ·云天励飞获唯一特等奖,填补国产技术领域空白
·火力全开!抖音电商「双11流量掘金计划」重磅
·屹立智高点,2024奇瑞全球创新大会高峰论坛震
·百模论剑·首届全国“人工智能+”行业应
·Arm Tech Symposia 年度技术大会即将启幕,报
·平安产险:一家养殖户的翻身仗

相关文章

更多检索

其他

系列