移动App用户体验监控(Smart SDK)常见问题说明
01: 什么是Smart SDK?
03:Smart SDK采集的数据是怎样发送的? 对带宽的影响是多少?
05:Smart SDK会对App应用的性能影响,包括发送数据流量,响应时间等?
09:Smart SDK 怎么判断是否集成成功? 如果失败,如何排查原因?
11:Smart SDK没有采集H5数据或是Socket数据?
12:Smart SDK支持游戏的Cocos 2dx框架吗?
Smart SDK是透视宝开发的嵌入到移动应用工程中的软件程序(探针),包括IOS版和Android版,用来跟踪真实用户行为和用户体验,发现与定位应用崩溃、加载缓慢等各种故障与性能问题。
Smart SDK嵌入到移动App工程后,Smart SDK负责将在移动端采集的各项数据指标传回透视宝云端,由云端进行数据的集中处理,用户通过浏览器或者移动端App访问透视宝应用性能管理平台,进行数据查看、分析及相应的管理操作。
03:Smart SDK采集的数据是怎样发送的? 对带宽的影响是多少?
Smart SDK采集的数据是经过压缩处理发送的,对带宽的影响,平均占App网络流量的1%~2%。对于本身网络流量大的APP来说,我们SDK发送的数据量相对就小一些;对于本身网络流量小的APP来说,我们SDK发送的数据量相对就大一些。
Smart SDK对HTML5完全支持,可以捕捉到用户在H5页面上的所有点击操作的信息,比如锚文本、URL以及URL的传输时间,Ajax请求以及错误、JS错误、页面加载响应时间分解图。
05:Smart SDK会对App应用的性能影响,包括发送数据流量,响应时间等?
Smart SDK的体积非常小,对移动端应用性能影响非常轻微,不会影响终端用户的体验。
Smart SDK是安全的,采集的数据都会经过加密处理。采集的数据对用户透明,SDK本身只负责收集数据、发送数据,不会做额外的操作。
同一App应用不同版本分以下两种情况来处理:
同一APP应用的不同系统版本,比如Android版和IOS版,建议分别按Android和IOS平台建立不同的App Key,以便于我们区分不同应用版本的数据,更准确地分析问题。
同一APP应用同一系统的不同版本,比如Android版V1.0和V1.2,直接使用同一APP Key即可,我们可以自动区分不同版本的数据。
重新编译并发布新的App后,3分钟左右即可看到该App的性能数据。
09:Smart SDK 怎么判断是否集成成功? 如果失败,如何排查原因?
Android SDK 在logcat中查找“CLOUDWISE SDK Started!”,如果找到,则集成成功。
如果失败,可参考以下内容排查问题原因:
1、查看build-tools版本,检查是否为Smart SDK支持的版本。
2、查看编译log日志文件。
IOS SDK
首先请检测Appkey是否正确,其次在启动SDK之前,先调用打印日志的代码,再启动SDK。打开APP有了操作之后,将APP退到后台,或是等待30S,就会有数据发送。
这时查看数据发送结果日志,如果打印“Request Complete Send ok”就表明数据发送成功。如果打印“Request Complete 发送失败”就表明数据发送失败,Web前端将不会看到数据。
Android SDK
首先检测Appkey是否正确,其次检测logcat日志,如果打印“[CLOUDWISE] Data is submitted successfully”,表明数据发送成功。
11:Smart SDK没有采集H5数据或是Socket数据?
针对IOS,检查是否开启了H5监控或是Socket监控。如果开启了Socket监控,仍然没有数据,很可能是目前Smart SDK不支持App使用的Socket框架。
12:Smart SDK支持游戏的Cocos 2dx框架吗?
目前,IOS SDK支持游戏Cocos2dx框架,但是只支持基于curl 库http网络请求监控。下一步会支持C++层的socket和webkit监控。
ISO平台屏幕刷新停顿,这种现象称之卡顿,产生原因主要是因为UIKIT本身的特性,所有的UI操作都在主线程执行(UI线程),如果主线程中包含大量的IO、计算、绘制等操作,就可能阻塞主线程刷新UI操作,产生卡顿。
透视宝通过监控主线程的执行时间,来判断是否产生卡顿,提示用户是否需要优化程序。
对于Android平台应用,如果应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框。ANR对于应用的影响并不亚于崩溃,一个流畅的合理的应用程序中不应该出现ANR。因此,在应用程序里对响应性能的设计很重要,一旦发生ANR就应该及时分析原因并修复问题,以免影响用户体验。
ANR一般有三种类型:
KeyDispatchTimeout(5 seconds):主要类型,按键或触摸事件在特定时间内无响应。
BroadcastTimeout(10 seconds):BroadcastReceiver在特定时间内无法处理完成。
ServiceTimeout(20 seconds):小概率类型,Service在特定的时间内无法处理完成。
目前,透视宝支持对ANR信息的抓取,通过对ANR的深入追踪和分析相关线程、Trace文件和信息,帮助您发现引起ANR的原因,通过优化应用程序的性能,减少并避免ANR,提升用户体验。
通过透视宝提供的信息分析ANR的类型、CPU的使用情况、调用堆栈等信息,从而确认导致ANR的原因并找到解决方法。例如:
如果CPU使用量接近100%,说明当前设备很忙,有可能是CPU饥饿导致了ANR。
如果CPU使用量很少,说明主线程被BLOCK了。
如果IOwait很高,说明ANR有可能是主线程在进行I/O操作造成的。
Webkit白屏是指Webkit在开始加载网页的过程中,页面没有内容,显示白色屏幕,这种现象称作Webkit白屏。
透视宝的Webkit白屏时间是通过domloading - navigationstart计算出来的,在H5的性能分解分析中展现。
App闪退现象是指App突然退出,主要原因是Java层或者Native层产生崩溃,导致App终止运行并退出。
目前,透视宝Android SDK支持Java层和Native层崩溃信息捕获;IOS SDK支持崩溃信息捕获,通过捕获的信息,能够定位导致崩溃异常的原因。
交互分析是通过监测最终用户与App进行交互时各App视图(俗称页面)消耗的时间,来帮助App开发人员了解App在与最终用户交互时的代码执行效率,为App代码优化和用户体验改善提供重要参考数据。
透视宝对交互分析支持的详细说明请参考《移动应用性能管理》文档中的内容。
支持,Webview性能分析是对H5页面性能的分析,包括页面加载性能分析和Ajax性能分析,详细说明请参考《移动应用性能管理》文档中的内容。