嚴苛模式 簡介

一、 嚴苛模式:

嚴苛模式的作用,幫助我們檢測程序中隱藏的違例點,幫助我們更好的調整程序,優化程序,好,接下來看一下嚴苛模式的用法

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日誌( 這個是最長用的 )

這個只是一種檢測程序中是否存在一些違例的存在,保證我們的程序在上線之前得到最大的優化,保證不會出現一些簡單的但是有沒有測試到的存在隱患的地方,當然,它最好是用在我們程序的調試階段,

 原文鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章