千家信息网

StrictMode严格模式的示例分析

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,小编给大家分享一下StrictMode严格模式的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!StrictMode
千家信息网最后更新 2026年11月02日StrictMode严格模式的示例分析

小编给大家分享一下StrictMode严格模式的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

  StrictMode严苛模式,是Android提供的一种运行时检测机制,一般用来检测在主线程做一些耗时动作,比如IO读写、数据库操作、Sp操作、Activity泄露、未关闭的Closable对象泄露等,以减少发生ANR等。

  StrictMode严格模式原理分析

  严格模式主要有2个策略:一个是线程策略,即TreadPolicy是针对一个具体的线程,另一个是VM策略,即VmPolicy,是针对虚拟机的所有对象。

  当然可以添加Penalty(惩罚),一般我们都是用来打印日志、绘制红框等。

  StrictMode严格模式中是如何去检测

  在哪个地方有注入StrictMode的代码:

  在源码中可以直接植入StrictMode的检查代码、也可以植入代码是BlockGuard和CloseGuard的代码。

  我们先看下UML:

  2.png

  BlockGuard:

  publicfinalclassStrictMode{

  publicstaticvoidsetThreadPolicy(finalThreadPolicypolicy){

  setThreadPolicyMask(policy.mask);

  }

  privatestaticvoidsetThreadPolicyMask(finalintpolicyMask){

  setBlockGuardPolicy(policyMask);

  Binder.setThreadStrictModePolicy(policyMask);

  }

  //SetsthepolicyinDalvik/libcore(BlockGuard)

  privatestaticvoidsetBlockGuardPolicy(finalintpolicyMask){

  if(policyMask==0){

  BlockGuard.setThreadPolicy(BlockGuard.LAX_POLICY);

  return;

  }

  finalBlockGuard.Policypolicy=BlockGuard.getThreadPolicy();

  finalAndroidBlockGuardPolicyandroidPolicy;

  if(policyinstanceofAndroidBlockGuardPolicy){

  androidPolicy=(AndroidBlockGuardPolicy)policy;

  }else{

  androidPolicy=threadAndroidPolicy.get();

  BlockGuard.setThreadPolicy(androidPolicy);

  }

  androidPolicy.setPolicyMask(policyMask);

  }

  }

  其中在setBlockGuardPolicy(policyMask)把相应的AndroidBlockGuardPolicy设置到BlockGuard类,

  并且Binder.setThreadStrictModePolicy()是Native层,当进程A发起跨进程调用进入到进程B后,进程B中的违规异常也是会通过Binder再传回进程A中。

以上是"StrictMode严格模式的示例分析"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

模式 代码 进程 分析 策略 篇文章 线程 检测 示例 内容 对象 严苛 不怎么 动作 原理 地方 大部分 数据 数据库 日志 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海睿民互联网科技有限公司 朗新科技与工业互联网 互联网科技ppt模板 广西互联网科技公司 万达互联网科技 上海万想互联网科技 互联网汽车科技小镇 剑昆互联网络科技有限公司临桂 互联网金融科技公司干啥的 湖北码尼互联网科技有限公司电话 互联网媒体平台算高科技产业 互联网科技和信息 允成互联网科技有限公司融资 浙南科技城互联网大厦建设工程 如何创新互联网科技 恒生互联网科技业指数调整周期 无锡工业互联网科技有限公司 广州燕处互联网科技有限公司 云鲸互联网络科技有限公司 北京品多多互联网科技有限公司 互联网科技公司有哪些 科技与互联网的利与弊 互联网科技产品 全球顶尖互联网科技公司 宁夏科技产业互联网案例 湖南一路畅行互联网科技 互联网行业科技股 众安科技工业互联网合作 合肥互联网科技公司公章图片 银川新华互联网科技学校招聘
0