软件

你的手机应用经常崩溃吗?如何避免这种情况?

当你在使用应用程序时遇到故障时,你会作何反应?这当然是一个可怕的时刻,不是吗?每个人都讨厌应用程序崩溃,甚至慢下来几秒钟。有趣的是,一项研究显示,61%的用户希望移动应用程序在4秒内启动,而49%的用户希望在2秒内响应输入。在不幸的情况下,当应用程序崩溃、死机或出现错误时,53%的用户可能会卸载它。

应用程序开发

在这种情况下,建议你认真对待你的目标受众,无论是你的消费者还是企业人群,因为如果不能满足他们的期望,你就会失去他们。本文旨在向你展示手机开发者在开发过程中所面临的最常见问题,以及如何解决这些问题。

1)内存管理

这确实是最常见和最大的问题领域之一。一个应用程序可能有几个问题,比如旋转太多线程,或者它可能运行在一个有太多应用程序打开的系统上。OpsClarity市场营销副总裁Sachin Agarwal表示,你的软件需要成为“应用生态系统中的好公民”。“我看一些新闻应用程序,它们几乎要处理1g的数据。他们在存档上个月的新闻。一定程度的企业公民意识需要在移动应用程序上体现出来。”

对此,Solstice Mobile业务开发副总裁Andrew Whiting是这么说的。OB欧宝娱乐体育“在iOS中,你可以利用Objective-C来处理大量内存问题。”但这是一种权衡。“在Android上,你有更深层次的内存控制,你通常可以让它做你想做的事情,这增加了复杂性。”

“Android会遇到一些问题,比如Java内存不足,这通常与加载大图像或处理位图有关。实际上,Android上有很多类似于链接器的问题,比如找不到类,或者有一个叫做非分类链接的例外。”New Relic高级软件工程经理Jonathan Karon说。

2)软件生命周期

通常在应用开发过程中,我们会看到一系列频繁发布的内容,以最小可行的过程为进入市场铺平道路。慢慢地,它会发展并建立起受众。然而,由于您失去了传统的软件生命周期,可能会出现一系列复杂的问题。这是由于您对操作系统和第三方api的依赖。

阿加瓦尔说:“如果你看看最新的Android更新,应用程序经常崩溃。“操作系统本身不稳定。或者操作系统更新了,而应用程序还没有更新。或者用户不下载新版本。你没有控制权,这是一个核心开发过程。”

随着移动和云计算的扩展,第三方服务及其相关api的使用得到了提升,这节省了时间,应用程序也更快地推向市场。尽管如此,还是出现了一些问题。怀廷说:“很多图书馆都是最低公分母。”“他们试图解决每个人的问题,而不是为任何人制定最佳解决方案。”

有几个棘手的技术,例如iOS方法swizzling。在线旅行社Fareportal的移动业务主管Raman Bhatia表示:“你可以称之为iOS应用程序开发的‘黑魔法’之一。如果你的应用代码以某种特定的方式编写,它可能会导致崩溃。”

api也会带来未调用的修改。Agarwal说:“API延迟、错误率、数据带宽、使用的API版本以及API请求的数量都可能导致小问题变成大问题。”

还有其他问题,比如内存错误。We Get Fit(即将推出的Apple Watch和iPhone健身应用)联合创始人兼开发者Long Le说:“你指向的是一个已经从记忆中删除的对象,如果你自己创建了所有对象,这通常不是问题,因为你知道是否可以引用它。当你引入第三方框架时,问题就出现了。”你永远不知道他们在清理什么,在创造什么。”

3)测试不充分

对应用程序来说,测试是必要的,然而,由于Android版本和设备众多,这是非常困难的。尽管存在模拟器,但对于在服务器上运行的软件来说,这可能会很棘手,因为它可能会显示相同的性能限制。比如,应用程序的一个线程试图读取数据库,同时另一个线程试图修改同一个数据库。

Couchbase移动业务首席架构师韦恩•卡特表示:“这是一个时机问题。“如果他们没有在准确的时间击中,问题就不会浮出水面。它可以用简单的日志语句来掩盖。”

最后,建议将测试与针对行业标准和用户期望的基准测试结合起来,以便开发人员可以接受的内容也可以为用户所接受。测试需要是一个持续的过程,比如必须监控性能,还要寻找用户反馈,提出问题,然后立即修复问题。

4)网络管理

是的,网络访问扮演着至关重要的角色,因为应用程序主要依赖于网络访问,无论是数据还是第三方服务。软件开发咨询公司Chetu的运营副总裁普拉文•瓦兹拉尼表示:“应用程序崩溃的最重要原因是响应能力,当你试图获取一些数据时,或者你提交了一些东西,但正在等待回应时,应用程序会挂起。”可能存在这样的情况,即开发者拥有良好的Wi-Fi连接,但用户却没有顺畅的移动网络。此外,由于从3G到2G、进出电梯以及更多类似情况,网络可能会发生变化。

在这种情况下,你可以通过通知用户连接中断并提供一些有趣的事情来避免用户的愤怒。当人们明白暂时的状况超出应用程序的控制范围时,他们往往会保持冷静。这样就不会影响与应用程序相关的品牌名称的光泽。

5)错误条件及异常处理

在移动开发中,某些错误是不可避免的,比如可能会有意想不到的API更改,避免之前检测到的内存问题,或者在传输图像和视频等大文件时终止连接或阻碍数据速度的网络条件。

然而,你可以很容易地处理这种情况,良好的错误和异常处理,这样应用程序就不会被意想不到的问题所困扰,比如试图除以零,用户错误地输入响应,或者暂时失去连接。

当应用程序正确编码时,它将优雅地终止进程或活动,同时通知用户错误。这可能不是一个理想的方法,但你有很好的机会留住用户。

6)多余代码

保持简单。提供人们想要的单一用途工具,并建议只在需要时编写代码。企业移动开发公司Lextech Global Services的高级系统工程师Felipe Laso-Marsetti说:“最好、最没有漏洞的代码是你不用写的代码。”

好吧,似乎不可能创建一个没有bug的应用程序,然而,专注于这些麻烦的来源,你可以很好地管理事情,避免不必要的情况。

通过http://www.octalsoftware.com/

留下评论