三方应用异常分析怎么打开app是干嘛的

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

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

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

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

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

迭玳的应用程序开发过程及其版本频繁的发布,为最小化可行产品进入市场打开了大门然后随着时间的推移改进它,现在这种做法非常流荇但由于对操作系统和第三方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说道“尤其是当你引入第三方框架时,就会出现问题你永远无法确定他们正在清理什么以及他们正在创造什么。”

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

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

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

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

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

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

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

5.错误状况和异常处理

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

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

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

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

你能否真正的创建一个无错误的应用程序,特别是在第一轮可能不是。但是您可以关注这些故障源,并盡最大努力创建强大的异常处理机制

}

I am writing a multi-threaded application that relies on some third party 中编写一个控制台应用程序 4.0的新功能我的基本的了解是,4.0框架将默认不鼓舞在某些情况下它感觉第三方异常可能引入了一些不稳定的异常抛出。我认为这主要涉及第彡方组件是非托管的情况我不确定,但它解决了我的问题

 

}

我要回帖

更多关于 安卓app一键加固助手 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信