irpas技术客

android卡顿分析的原因_普通网友_android 卡顿分析

未知 614

  android开发中卡顿问题一直是个比较棘手又重要的问题,严重影响了用户的体验感。解决卡顿的问题就要对APP进行优化了,而优化是一个任重而道远的过程,必须在意每一个环节,否则当你想要优化的时候,发现到处都是坑,已经不知道填补哪里了,所以我们必须一点一滴的做起。刚好前段时间,负责APP的性能调优工作,通过使用友盟+u-apm 应用性能监控平台 ,总结了遇到的一些卡顿问题以及分析。最终使得卡顿问题,明显优化,在低端手机上,效果尤为明显。接下来就为大家介绍下android使用不流畅、卡顿分析的原因有哪些。

  Android出现使用不流畅,卡顿及ANR,主要原因有三个

  1、CPU使用过高:

  这个要排除是我们自己的APP还是有别的优先级更高的进程在占用APP,如果是我们自己的app占用CPU过高,那就需要对代码进行研究定位,比如定位操作,长时间的进行位置搜索会持续占占有CPU,还有我们的常驻广播也是会占有CPU。

  2、系统内存使用过高:

  一个是系统本身内存就小,还有同时打开的应用过多,这些都会占用内存,但是最主要的可能还是我们的代码不够规范从而造成的内存浪费,内存泄漏引起的内存使用过高。比如我们的死循环,递归,对象和变量等没有及时的回收,非常驻广播没有解除注册,长生命周期的持有短生命周期的引用,比如activity中的内部类会持有一个activity的引用,等等这些都有可能造成内存泄漏,内存泄漏过多最终就会导致OOM。所以我们一般会对app的性能进行检测,系统自带的StrictMode,studio的profiler 还有三方LeakCanary都是可以来帮助我们进行性能优化的工具。

  StrictMode有两个检测策略:线程检测策略(ThreadPolicy)和虚拟机策略(VMPolicy)

  ThreadPolicy检测:自定义的耗时操作,磁盘读写,网络请求

  VMPolicy检测:activity泄漏,closeable对象未关闭,sqlite使用完了未释放,对象实例的个数

  3、UI阻塞:

  UI阻塞主要有两个方面:一是主线程的消息队列中消息过多,造成的UI界面的一些交互事件来不及处理,所以导致成被阻塞。

  二是代码执行耗时,可能是因为代码本身执行起来就很耗时,比如IO操作、网络请求,还有一个原因就是竞争锁,可能执行到这里,锁被其他线程给占用了,需要等待。还有一个可能是UI界面布局太过复杂。

  综上所述,Android出现使用不流畅,卡顿及ANR的原因就是以上的三点内容了,出现卡顿问题时,可使用友盟U-APM应用性能监控平台,对android卡顿分析进行完整的检测,以及优化APP的性能。通过轻量级的集成接入即可拥有实时、可靠、全面的应用崩溃、ANR、自定义异常等捕获能力,及卡顿、启动分析、内存分析、网络分析等性能监测能力,支持多场景、多通道智能告警监测,帮助开发者高效还原异常、卡顿用户的访问路径和业务现场,缩短故障排查时间。

  友盟+U-APM应用性能监控平台同时具有「云真机」 服务,提供了海量Android、iOS真机,通过资源集中管理,合理调度分配,为开发者提供发版前测试、发现线上问题后复现等场景使用,助力开发者平衡成本与需求,提升研发效率。助力开发者从研发测试质量验收到线上问题复现排查,保障应用品质,提升测试效率。在云真机测试期间自动采集崩溃信息,提供详尽的崩溃报告协助筛查,真正实现监控测试全流程深度打通。

  友盟+云真机搭载在U-APM应用性能监控平台上,U-APM提供了灵活地测试操作界面,支持ADB调试、WEB远程调试、扫码、抓包、虚拟定位等测试功能,并提供了测试报告供开发者后续查看。


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #Android #卡顿分析 #应用性能监控平台