在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框。用户可以选择“等待”而让程序继续运行,也可以选择“强制关闭”。所以一个流畅的合理的应用程序中不能出现anr,而让用户每次都要处理这个对话框。

因此,在程序里对响应性能的设计很重要,这样系统不会显示ANR给用户。默认情况下,在android中Activity的最长执行时间是5秒,BroadcastReceiver的最长执行时间则是10秒。

外文名

ANR

标准大气压

1个

全称

Application Not Responding

温度

20摄氏度

诊断ANR

诊断ANR时需要考虑以下几种常见模式:

应用在主线程上非常缓慢地执行涉及I/O的操作。

应用在主线程上进行长时间的计算。

主线程在对另一个进程进行同步binder调用,而后者需要很长时间才能返回。

主线程处于阻塞状态,为发生在另一个线程上的长操作等待同步的块。

主线程在进程中或通过binder调用与另一个线程之间发生死锁。主线程不只是在等待长操作执行完毕,而且处于死锁状态。[1]

ANR技术

ANR(Automatic Network Replenishment Technology)

对视频监控来说,存储性能的重要性几乎与图像质量是一样的。传统DVR已经积累了不少先进的技术,如硬盘零碎片处理、硬盘轮休、异常断电保护等技术,为监控图像的可靠存储提供有力保障,NVR作为新一代网络监控产品,首先对DVR优秀的特性作了全面继承,其次它还借助网络化特性,进一步提升了存储的可靠性与灵活性,这其中最有意义的就是ANR技术的应用。我们知道,NVR的基础是网络,但网络承载业务的复杂性较高,导致了网络的不稳定,因此直接影响了承载于上的业务的稳定性。

并且,这一点对于视频监控是绝对不容轻视的,因为可能由于网络的暂时性故障会直接导致重要视频录像的缺失,而录像资料之于视频监控的重要性绝对是首当其冲的。因此,网络不稳定导致录像资料的遗失这一点也一度成为NVR对峙DVR决战中最具致命性的隐患,但ANR技术的应用却使一切问题不复存在。

ANR,Automatic Network ReplenishmentTechnology,它是一种结合本地存储和网络存储的技术,ANR技术包括三个部分:

一、侦测网络状况,即在网络失效时,能记录下失效前的传输数据,以待网络连结恢复后把数据转回到管理中心;

二、双重录像,即当网络出现问题或不稳定时,管理中心和前端双方都会把图像数据单独存储在缓冲区以作备份;

三、自动修复数据,即当网络恢复正常后,管理中心和前端双方会对比各自的数据,检查对比在网络失效时的图像数据,然后自动修复管理中心错误或遗失的数据。据此就可明白,具备ANR技术的NVR会在网络出现故障时自动启用前端存储,网络恢复后再将前端存储数据自动同步至NVR中心,并且是在不影响实时视频传输质量的前提下,从而实现了中心与前端的双存储备份,有效提升存储的可靠性与灵活性。

此外,针对一些对存储有着更高要求的场合,NVR还将提供另一项存储保障技术——RAID存储。虽然RAID的应用会导致用户使用成本的提高,但由于它的可靠性机制可以确保硬盘的有效合理使用、实现数据的冗馀校验,使图像数据即使在部分存储介质损坏的情况下也不会丢失等重要性能,从而使得这一技术在对监控系统性能要求极高的高端行业市场一直受到重视。

因此RAID技术的应用必然也会促进NVR对新市场的拓展,进一步加快取代DVR的进程。