严苛模式 简介

一、 严苛模式:

严苛模式的作用,帮助我们检测程序中隐藏的违例点,帮助我们更好的调整程序,优化程序,好,接下来看一下严苛模式的用法

1.1 、  严苛模式一般在程序中的使用位置

在Application 或者 Activity的super.onCreate() 之前位置

目前使用的策有两种ThreadPolicy (线程) VmPolicy(Vm) 

使用方式:

@Override
protected void onCreate(Bundle savedInstanceState) {
    if (DEBUG_MODE) {
        /**
         * 线程策略 严苛模式 检测程序中的违例 从而进行修复
         */
        StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
                .detectDiskReads() 
                .detectDiskWrites() 
                .detectNetwork()   
                .penaltyLog() 
                .build());
        /**
         * Vm策略
         */
        StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
                .detectLeakedSqlLiteObjects()
                .detectLeakedClosableObjects()
                .penaltyLog()
                .penaltyDeath()
                .build());
    }
    super.onCreate(savedInstanceState);
   
}
1.2  、具体用法介绍

使用Build模式配置

1.3 、 能检测的项

ThreadPolicy

detectCustomSlowCalls() 自定义耗时操作

detectAll() 检测所有的潜在违例

detectDiskReads() 读磁盘

detectDiskWrites() 写磁盘

detectNetwork() 检查网络

detectResourceMismatches() 检查资源类型是否匹配

VmPolicy

detectAll() 检测所有的潜在违例

detectActivityLeaks 检测Activity的泄漏

detectCleartextNetwork() 检测明文的网络

detectFileUriExposure() 检测file 或者是Content 

detectLeakedClosableObjects() 检查危管理的Closable 对象

detectLeakedRegistrationObjects() 检测需要注册的类型的是否进行注解

detectLeakedSqlLiteObjects() 检测sq li te对象 ,如cursors 

1.4 、 检测到之后的表现形式

penaltyDeath  crash ,在所有表现形式最后运行

penaltyDeathOnNetwork  crash, 所有的执行 必须在detectNetwork设置允许

penaltyDialog 弹出Dialog

penaltyDropBox. 将日志吸入到dropbox 中

penaltyFlashScreen 屏幕闪烁

penaltyLog log日志( 这个是最长用的 )

这个只是一种检测程序中是否存在一些违例的存在,保证我们的程序在上线之前得到最大的优化,保证不会出现一些简单的但是有没有测试到的存在隐患的地方,当然,它最好是用在我们程序的调试阶段,

 原文链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值