国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

詳解Android StrictMode嚴格模式的使用方法

2019-12-12 01:19:11
字體:
來源:轉載
供稿:網友

Android 2.3提供一個稱為嚴苛模式StrictMode的調試特性,Google稱該特性已經使數百個Android上的Google應用程序受益。那它都做什么呢?它將報告與線程及虛擬機相關的策略違例。一旦檢測到策略違例policy violation,你將獲得警告,其包含了一個棧trace顯示你的應用在何處發生違例。你可以強制用警告代替崩潰crash,也可以僅將警告計入日志讓你的應用繼續執行。StrictMode是一個十分有用的類,它可以很方便地應用于檢查Android應用程序的性能和存在的問題。當開啟這個模式后,開發者能很好地檢查應用中存在的潛在問題。

StrictMode分為以下兩種策略:

1. 線程監控策略

StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()           .detectDiskReads()           .detectDiskWrites()           .detectNetwork()           .detectAll()           .penaltyLog()                     //penaltyDeath()           .build());  

(1)setThreadPolicy():將對當前線程應用該策略 

(2)detectDiskReads():監控磁盤讀 

(3)detectDiskWrites():監控磁盤寫 

(4)detectNetwork():監控網絡訪問 

(5)detectAll():檢測當前線程所有函數 

(6)penaltyLog():表示將警告輸出到LogCat,你也可以使用其他或增加新的懲罰(penalty)函數,例如使用penaltyDeath()的話,一旦StrictMode消息被寫到LogCat后應用就會崩潰。 

你不需要頻繁打開嚴苛模式,你可以在Activity的onCreate()函數中打開它,你也可以在Application派生類的OnCreate()函數中設置嚴苛模式。線程中運行的任何代碼都可以設置嚴苛模式(StrictMode),但你的確只需要設置一次,一次就夠了。

2.VM虛擬機監控策略

StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()   .detectLeakedSqlLiteObjects()   .detectAll()   .penaltyLog()   //.penaltyDeath()   .build()); 

VM略重點關注如下幾類:

(1)內存泄露的Activity對象

(2)內存泄露的SQLite對象

(3)內存泄露的其他任何類似可關閉對象

內存泄露的Activity對象和內存泄露的SQLite對象都比較好理解,而所謂“其他任何類似可關閉對象”的檢查,主要是去監那些本該釋放的對象,比如應該調用close()方法的對象。

3. 應該說大部分由StrictMode產生的規則警示都應去遵守,但有時也不是所有產生的信息都表明你的程序有錯誤。比如,在應用程序的主線程中去快速讀寫磁盤其實不會對應用的性能產生太大的影響,又或者你在調試程序階段有一些調試的代碼違反了設定的規則,這些都可以忽略掉這些規則。

忽略規則有兩種方法,一種是單純在代碼中把Strictmode的代碼注釋掉,另外一種比較好的方法是,在需要忽略的時候和地方,增加相應的代碼去讓系統停止使用這些規則去檢查,等開發者認為有必要檢查時,再重新應用這些規則,比如:

StrictMode.ThreadPolicy old = StrictMode.getThreadPolicy(); StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder(old)   .permitDiskWrites()   .build());  //TODO: do write something to disk StrictMode.setThreadPolicy(old); 

這里首先用old來保存了當前的策略規則,然后do write something to disk;這里執行了一些向磁盤快速讀寫的操作,最后又重新啟用了這些規則。

總結

以上所述是小編給大家介紹的Android StrictMode嚴格模式的使用方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东莞市| 景宁| 大洼县| 上高县| 东丰县| 镇赉县| 偃师市| 宁陕县| 延川县| 原平市| 宕昌县| 张北县| 龙州县| 山阳县| 永年县| 上犹县| 通州区| 临安市| 五河县| 水城县| SHOW| 平和县| 宁陵县| 镇远县| 景宁| 万州区| 兴国县| 开鲁县| 临泉县| 秭归县| 平谷区| 合阳县| 辽宁省| 左云县| 安庆市| 青铜峡市| 夏邑县| 阜平县| 鄂尔多斯市| 黄石市| 涿州市|