[ANR监控] 用StrictMode举行线下监控

藏宝库编辑 2024-9-28 19:31:07 37 0 来自 中国
ANR的监控计谋,可以分为线上和线下。线上的监控方案,必要充实思量性能问题,所以许多监控计谋不能使用。但是线下监控,我们能用的方法会更加丰富。
这篇文章,我们重要讲一下Android官方提供给我们的线下监控方案 —— StrictMode。
有了这套工具,我们可以在开辟时,提前发现许多问题,让开辟同砚实时办理,制止这些问题袒露到线上,造成ANR。
StrictMode先容

为了监控应用运行过程中存在的不规范问题,Android提供了一套工具StrictMode,一样平常我们可以在Debug包中打开这个工具。
ThreadPolicy线程计谋检测:重要检测主线程的耗时利用


  • 自界说的耗时调用 使用detectCustomSlowCalls()开启
  • 磁盘读取利用 使用detectDiskReads()开启
  • 磁盘写入利用 使用detectDiskWrites()开启
  • 网络利用 使用detectNetwork()开启
  • detectAll 开启全部的ThreadPolicy检测
VmPolicy假造机计谋检测


  • Activity走漏 使用detectActivityLeaks()开启
  • 未关闭的Closable对象走漏 使用detectLeakedClosableObjects()开启
  • 走漏的Sqlite对象 使用detectLeakedSqlLiteObjects()开启
  • 检测实例数量 使用setClassInstanceLimit()开启,可以检测单例等
  • detectAll 开启全部的VmPolicy检测
处罚方法


  • penaltyLog: 将触发StrictMode的堆栈写入日记
  • penaltyDialog: 触发StrictMode时,弹窗提示
  • penaltyDeath: 触发StrictMode时,主动杀死进程
  • penaltyListener: 触发StrictMode时,回调Listener
开启StrictMode
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-11-24 10:06, Processed in 0.156360 second(s), 32 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表