严苛模式 简介

来源:互联网 发布:二维码防伪查询源码 编辑:程序博客网 时间:2024/06/02 03:39

一、 严苛模式:

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

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

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

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

使用方式:

@Overrideprotected 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日志( 这个是最长用的 )

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

 原文链接

原创粉丝点击