首页 运维 安全 App崩溃的6个常见原因是什么

App崩溃的6个常见原因是什么

May 11, 2023 pm 11:25 PM
app

人们讨厌应用程序崩溃,尤其是是程序减速或卡死几秒钟这样的现象。根据Dimensional Research的一项调查,61%的用户希望程序在4秒内启动,而49%的用户希望在2秒内响应输入。 如果应用发生崩溃,冻结或报错等现象,53%的用户会将APP卸载。

无论您的对象是消费者还是企业,崩溃问题会令他们彻底失望。与一些移动开发人员进行了交谈,询问了他们遇到的最常见的崩溃问题有哪些,他们给出了常见的六种原因:

1.内存管理

我所问道的每个人都会谈到内存管理,大多数APP都会开启许多线程占用系统的内存。OpsClarity营销副总裁Sachin Agarwal表示,程序员在编写代码时好像在app中只有他们编写的应用一样,同时,他建议在编写程序时,要考虑使其称为为“应用生态系统中的好公民”。

内存问题并非对所有开发人员是一样的。Solstice Mobile业务开发副总裁Andrew Whiting说“在iOS中,您就可以利用Objective-C来处理大量内存问题,”。但是需要权衡利弊。“在Android上,你需要更深入的控制[内存],你可以让它完全按你想要的那样做,但这会增加复杂性。”

“在Java中遇到[运行]内存不足,我们发现通常它与加载大图像或处理位图等相关,”New Relic的高级软件工程经理Jonathan Karon表示。在移动SDK技术性能报告中并编制了常见的问题原因。“实际上有一些令人惊讶的数字看起来像Android上的链接器问题,无法找到类,或者有一个称为非分类链接的异常。” 另一方面,iOS应用程序经常受到NSInternalInconsistency异常的影响,这是因为当开发人员在一个地方更改数组或数据集合时,而其他东西正在读取那里的事物列表。

2.软件生命周期

迭代的应用程序开发过程及其版本频繁的发布,为最小化可行产品进入市场打开了大门,然后随着时间的推移改进它,现在这种做法非常流行。但由于对操作系统和第三方API的依赖性,使传统软件生命周期变的更为复杂。

“如果你看看最新Android更新的系统,应用程序崩溃的会很多,”Agarwal说。“操作系统本身不稳定或操作系统更新了,应用程序没有更新” 或者用户不下载新的版本,这些“你都无法控制,它说明了一个核心的开发过程。”

移动和云计算的发展增加了第三方服务及其相关API的使用,从而节省了时间并有助于将应用程序更快地推向市场,但他们有自己的一系列问题。

“许多库是都有共同的问题,”Whiting说。 “他们试图解决每个人的问题,而不是为任何人提供最佳解决方案。” 例如,给定的API可能对特定应用程序具有性能限制。

API也可能使用棘手的技术,比如iOS方法调整。当原始代码(如Apple的API)不可用时,开发人员在原始代码(如Apple的API)基础之上进行修改。“你可以称之为iOS应用程序开发的'黑暗艺术'之一,”在线旅行社Fareportal的移动主管Raman Bhatia说。“[但]如果您的应用程序代码以某种方式编写,则可能导致崩溃。”

API也可能引起其他问题。“API延迟,错误率,数据带宽, API的版本以及API请求的数量都可能由小问题印发大问题,”Agarwal说。然后是API本身,这就需要专门的工具来跟踪所有内容。

API也可能导致其他问题,如内存错误。 “如果你创造了其他的对象前已经从内存中移除的一个对象,会认为通常这是没有问题的,但需要注意的是你不知道后续创建的对象到底需不需要引用已经删除的对象”联合创始人和开发者Long Le说道“尤其是当你引入第三方框架时,就会出现问题。你永远无法确定他们正在清理什么以及他们正在创造什么。”

3.测试不充分

测试的需求是很明显的,但是需要获得足够的覆盖率,特别是对于大量的Android版本和设备,可能具有挑战性。虽然有模拟器,但在服务器上运行的软件性能限制可能会与真机不同。

例如,应用程序的一个线程读取数据库,同时第二个线程尝试修改这一个数据库,“这是一个时间问题,” Couchbase移动首席架构师Wayne Carter说。“如果他们没有在同一时刻发生碰撞,那么这个问题就不会出现,可以用日志描述来掩盖。” 模拟器通常就不会和真机一样。

在不同的设备上运行不同的系统是个可行的方案,但是这种方法比模拟器消费高。这就需要在预算和需求之间权衡

测试应结合行业标准和用户期望的基准测试,以确保开发人员和用户可接受的内容。测试也应该持续进行。监控性能并查找用户反馈,然后尽快解决问题。

4.网络管理

随着应用程序越来越依赖网络,无论是数据还是第三方服务,网络管理已成为一个麻烦的源头。

发生崩溃的最主要原因是当你正要获取数据、提交了一些东西等待恢复而APP发生响应或者挂起。运营副总裁Pravin Vazirani说道,可能开发人员使Wi-Fi连接功能非常完善,但用户在不好的网络区域时就会发生问题

处理网络问题的一个好方法是告知用户连接中断,并在可能的情况下提供执行可能感兴趣的其他操作的机会。如果人们了解超出应用程序控制范围的临时状况的原因,他们更有可能保持冷静,不会对软件感到恼火。

5.错误状况和异常处理

由于移动开发的复杂性,一些错误是不可避免的,无论是意外的API更改,避免先前检测的内存问题,还是网络连接状况,甚至只是在传输大型文件(如图像或视频)时降低数据传输的速度

在这种情况下,最好的方法是给与良好的错误和异常处理方式。比如用户输入错误的数据、本应提供数值的内容而提供文字到文本框内等,这样,应用程序就不会被意外尝试而报错。

在任何这些情况下,正确编码的应用程序都会注意到意外情况,并且在通知用户错误的同时,可以优雅地终止进程或活动。如果你能保持沟通渠道畅通,就会有更好的机会留住用户。

6.代码太多了

最好的建议是保持应用程序简单。找到特定用途的插件,使用插件并编写必要的代码。企业移动开发公司Lextech Global Services的高级系统工程师Felipe Laso-Marsetti说:“最好和最无错误的代码是不是你自己编写的代码。”

以上是App崩溃的6个常见原因是什么的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

京东商城APP如何进行实名认证 京东商城APP如何进行实名认证 Mar 19, 2024 pm 02:31 PM

京东商城APP实名认证怎么弄?京东商城是很多朋友经常使用的一款网上购物平台,大家在购物之前,最好先进行实名认证,这样才能享受到完整的服务,获得更好的购物体验。下面带来京东商城实名认证方法,希望对网友们有所帮助。1、安装并打开京东商城,接着登录个人账号;2、然后点击页面下方【我的】,进入个人中心页面;3、之后再点击右上角的【设置】小图标,前往设置功能界面;4、选择【账号与安全】这一项,来到账户设置页面;5、最后再点击【实名认证】选项,前往填写实名信息;6、安装系统要求填写个人真实信息,完成实名认证

cocos2d-LUA逆向中如何解密app资源 cocos2d-LUA逆向中如何解密app资源 May 16, 2023 pm 07:11 PM

还是以大神apk为例,通过前面分析app解密lua脚本,我们能够解密大神apk的lua脚本,现在我们来解密其资源(配置文件和图片等)。我们以比较重要的配置文件为例,未解密之前:文件头部也有签名值:fuckyou!。看到这,我们首先就想到是不是也是用xxtea加密的,我们用上面的方法,先xxtea解密,再解压,发现依旧是乱码,在操作的过程中就出现了错误,显然,要否定我们刚才的猜想。我们继续按部就班的解密配置文件。稍微思考一下,文件头部是:fuckyou!如果想对文件进行解密,那么不可避免的需要处理

微软改进了 Windows 11 的 Smart App Control,但你可能无法使用它 微软改进了 Windows 11 的 Smart App Control,但你可能无法使用它 Apr 17, 2023 pm 04:40 PM

微软于今年早些时候推出了Windows11安全功能SmartAppControl。当时,微软将其描述为“阻止不受信任或具有潜在危险的应用程序”的保护工具。当时该工具的独特之处在于它决定了它是否应该在Windows11设备上运行。SmartAppControl一开始以评估模式运行;正是在这种模式下,应用程序决定是否应该打开它。微软确实透露用户可以在Windows安全应用程序的应用和浏览器控制部分启用智能应用控制。仅根据Microsoft的说法,SmartAppC

如何在iPhone上查看和删除App Store购买历史记录 如何在iPhone上查看和删除App Store购买历史记录 Apr 13, 2023 pm 06:31 PM

AppStore是iOS相关应用程序的市场。在这里,您还可以找到免费应用程序和付费应用程序。应用程序可以是游戏应用程序、提高工作效率的应用程序、实用应用程序、社交媒体应用程序以及更多类别的应用程序。您可能已经从AppStore下载或购买了许多适用于iPhone的应用程序。现在您可能想知道如何查看在App Store中购买的应用程序的购买历史记录。有时,出于隐私原因,您可能需要从购买历史记录中隐藏某些购买。在本文中,我们将指导您查找购买历史记录以及如何根据需要从购买历史记录中删除/隐藏购买。第1部

注册香港AppleID的步骤及注意事项(畅享香港AppleStore的独特优势) 注册香港AppleID的步骤及注意事项(畅享香港AppleStore的独特优势) Sep 02, 2024 pm 03:47 PM

在全球范围内,Apple公司的产品和服务一直备受用户喜爱。注册一个香港AppleID将带给用户更多的便利和特权,让我们一起来了解一下注册香港AppleID的步骤以及需要注意的事项。如何注册香港AppleID在使用苹果设备时,很多应用和功能都需要使用AppleID进行登录。如果您想下载香港地区的应用或享受香港AppStore的优惠内容,那么注册一个香港AppleID就非常必要。本文将详细介绍如何注册香港AppleID的步骤以及需要注意的事项。步骤:选择语言与地区:在苹果设备上找到“设置”选项,进入

中国联通app怎么退订流量包 中国联通怎样退订流量包 中国联通app怎么退订流量包 中国联通怎样退订流量包 Mar 18, 2024 pm 10:10 PM

  中国联通app能够轻松的满足大家的使用,多样的功能,解决你们的需求,想要办理各种业务,都可以在这里轻松的搞定,有不需要的都可以在这里及时的退订掉,有效的避免后续的损失,很多人在使用手机时,有时感觉流量不够用,就购买了额外的流量包,但下个月又不想要要,就想要马上的退订掉,在这里小编为大家提供退订的方法,让需要的小伙伴们,都可以前来使用起来!  在中国联通app中,找到右下角的“我的”选项,点击它。  在我的界面里,滑动我的服务一栏,点击其中的“我已订购”选

多点app如何开发票 多点app如何开发票 Mar 14, 2024 am 10:00 AM

发票作为购物凭证,对于我们的日常生活和工作都至关重要。那么我们平时在使用多点app进行购物的时候,如何在多点app中轻松开具发票呢?下文中本站小编就将为大家带来详细的多点app开设发票详细操作步骤攻略,想要了解的用户们千万不容错过,快来跟着文本一起操作了解一下吧!在【发票中心】点击【多点超市/自由购】在已完成的订单页中选择需要开票的订单,点击下一步填写【发票信息】,【收件人信息】,确认无误后点击提交过个几分钟后,进入收件邮箱,打开邮件,点击电子发票下载地址最后,下载打印电子发票

如何利用深度链接方式后门化Facebook APP 如何利用深度链接方式后门化Facebook APP May 19, 2023 pm 02:49 PM

近期,作者发现了Facebook安卓APP应用的一个深度链接漏洞,利用该漏洞,可以把用户手机上安装的Facebook安卓APP应用转变成后门程序(Backdoor),实现后门化。另外,利用该漏洞还可以重打包FacebookAPP,并将其发送给特定目标受害者安装使用。下面就来看看作者对该漏洞的发现过程,以及如何通过Payload构造,最终将其转化为FacebookAPP实际生产环境中的安全隐患。漏洞发现通常做众测时,我会先认真了解目标系统的应用机制。在我的上一篇博客中,我已经分享了通过解析Face

See all articles