问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

卡卡卡,小萝莉告诉你开发iOS应用如何避免卡顿

发布网友 发布时间:2022-04-22 17:13

我来回答

1个回答

热心网友 时间:2023-09-27 10:46

iOS应用除了闪退问题外,卡顿问题也会对APP带来差评,甚至流失更多的用户。卡顿是什么呢?卡顿就是应用运行不流畅的现象,给用户的直观感受就是点击屏幕操作有停顿、响应缓慢、界面卡死等。轻微的卡顿问题会影响用户体验,严重的情况更会造成应用不可用。那么,针对iOS应用卡顿可以使用友盟+U-APM来解决卡顿的问题。

作为一名有态度、充满情怀的开发者,当然就是立马撸起袖子准备修复了。那么问题来了,我们要从哪下手呢?

俗话说“治病先治根”,那么就要了解到卡顿是怎样产生的了。

创建一个UI Button,当用户点击的时候,主线程会响应及处理点击事件,这里是执行handleButtonAction方法。handleButtonAction方法发起了一个网络请求下载图片。必然的,这是一个耗时的操作。

在iOS应用中,所有的UI操作及更新都是在主线程完成,并且主线程的runloop是逐个处理用户事件的(当然其他的runloop也一样),所以主线程必须等待上一次事件处理完成后才能继续响应下一次事件。

由于在主线程内发起耗时网络请求,主线程只能停止响应接下来的所有用户事件,等待网络请求结束。在等待的这个过程中,应用就停止响应了,也就是出现卡顿现象。

为了更好的理解主线程的runloop,我们来看看iOS应用的运行机制。

在 iOS 应用启动后,系统会自动创建主线程并开始运行它的 runloop,监听处理分发事件,当没有事件发生时进入休眠状态,有事件发生时系统会将接收到的事件放在一个队列里,然后唤醒 runloop 依次处理事件。

绝大部分用户感知到的卡顿就是由于主线程阻塞了,在处理某次事件消耗了过长的时间,导致主线程处于等待状态,无法及时响应用户的下一次输入事件。

由于iOS 上的 UIKit 只能在主线程进行处理,导致开发者在开发过程中不经意间在主线程做了一些消耗时间的工作,导致了应用卡顿。

根据上述内容我们了解到了是什么原因导致卡顿的,接下来就是如何避免卡顿的问题了,友盟+u-apm监控平台可帮助到大家!

避免卡顿的黄金法则就是不要让主线程干重活,例如网络请求,读写大文件,复杂的运算等一些耗费大量系统资源及时间的任务。

充分利用好 iOS 的多线程,如 NSThread、NSO peration Queue,GCD 等干脏活、累活,让主线程能及时迅速的响应用户事件。

主线程轻松了,应用就流畅了,用户也就会越来越多,用户的使用感爽了,就不用担心差评的问题了,五星评价也就越来越多喽~

那么我们根据上面的黄金法则修改下handle Button Action方法,用GCD 来进行网络请求。经过修改之后,现在主线程就不会发生阻塞了,迅速的执行完用户的点击事件后,然后等待响应用户的下一次事件。

除了在开发过程中开发者需要时刻牢记黄金法则,避免写出阻塞主线程的代码,我们还需要一套监测机制,来帮助我们及时的发现应用卡顿,第一时间定位并修复,给用户如丝般顺滑的操作体验。

应用发布后如果碰到用户反馈卡顿,我们又该如何去定位解决问题?

一个比较常见的场景:用户反馈应用卡顿,客服人员反馈给开发者,开发者要求用户提供更加详细的信息以定位问题,但是问题又来了,很多时候我们联系不上用户啊!怎么办?熬夜加班逐行检查代码,说多了都是泪。

那么,友盟+U-APM作为一款应用性能监控平台,这不就派到用场了嘛~不仅可以解决开发者对iOS卡顿问题的烦恼,还可以协助APP应用,让用户体验到APP的流畅性。友盟+U-APM同时提供云真机测试能力,助力开发者从研发测试质量验收到线上问题复现排查,保障应用品质,提升测试效率。在云真机测试期间自动采集崩溃信息,提供详尽的崩溃报告协助筛查,真正实现监控测试全流程深度打通。

U-APM应用性能监控平台,通过轻量级的集成接入即可拥有实时、可靠、全面的应用崩溃、ANR、自定义异常等捕获能力,及卡顿、启动分析、内存分析、网络分析等性能监测能力,支持多场景、多通道智能告警监测,帮助开发者高效还原异常、卡顿用户的访问路径和业务现场,缩短故障排查时间。这一块的功能是我比较喜欢的,建议各位开开者有以上这些烦恼时,都可以试试运用上U-APM的功能,你会发现不一样的使用和便捷。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
发摅解释 摅的组词有哪些 摅字能组哪些词 检测电脑配置的软件电脑硬件检测权威软件有哪几个 查看电脑参数的软件什么软件可以全面检测显示出电脑硬件参数数据_百度... 有没有可以查自己电脑配置的软件啊??? 芯片程序解密哪家好 ...文章怎么突然间阅读量开始大减,从几百掉到个位数。 百家号怎么才个位数播放量?个位数播放量怎么算? 保本收益投资合法吗 豆瓣评分又崩了,这次是因为什么呢? 梦见死去亲人给我讲话,还要掀我的被子? 什么茶具有收藏价值? 茶叶有哪些分类,那些茶叶可以收藏。 404 Not Found 普洱茶哪几个品牌的茶叶值得收藏? 梦见和死去的亲人睡在一张床上 什么茶叶可以长久收藏? 请问这种茶叶多少钱?有收藏价值吗? 做梦梦见死去的妈在我床上睡觉还说冷我给她衣服她说衣服 茶叶收藏怎么着最好? 哪些茶适合长年收藏 收藏哪种茶比较好? 有哪些茶叶具有收藏价值? 梦见死去的婆婆说话 哪些茶叶具有收藏价值 梦见去世越母跟我说给她盖好被子说她好冷? 普洱茶有收藏价值吗? 梦见去世的父亲说冷要盖被子 茶叶最好的保存方法是什么? 豆瓣变得好卡是为什么? 为啥我的电脑进入豆瓣就卡死不动了 众多网友说豆瓣平台也崩了,豆瓣平台是因为什么崩的? 为什么打开豆瓣电影网站很慢 豆瓣崩了一小时,热搜大半天,你知道是什么原因吗? 豆瓣服务器崩了,为何网友称这是一场炒作? 豆瓣网速慢,图片都打不开 男多女少打一字? 麻将室 男多女少打一成语 男多女少打光棍吧 现在社会男多女少,未来是不是有很多男性要打光棍? 培养孩子早期教育,应从哪些方面着手? 幼儿的早教很重要,孩子早教最好的方式有哪些? 早教培训内容 怎么样才能培养孩子(5岁)学习的兴趣? 中国现在真的男多女少? 孩子的兴趣有什么特点?父母应该怎样培养孩子的兴趣? 形容男生多女生少的词语 三岁的孩子,有哪些适合他们的兴趣班呢? 如何让孩子习惯早教学习?