Android_使用StrictMode調試開發

來源:互聯網
上載者:User

標籤:strictmode   threadpolicy   vmpolicy   android   調試   

本博文為子墨原創,轉載請註明出處! http://blog.csdn.net/zimo2013/article/details/400760491.StrictMode簡介

自Android 2.3提供一個稱為嚴苛模式(StrictMode)的調試特性,Google稱該特性已經使數百個Android上的Google應用程式受益。那它都做什麼呢?它將報告與線程及虛擬機器相關的策略違例。一旦檢測到策略違例(policy violation),你將獲得警告,其包含了一個棧trace顯示你的應用在何處發生違例。你可以強制用警告代替崩潰(crash),也可以僅將警告計入日誌,讓你的應用繼續執行。


2.ThreadPolicy類型

和線程相關,它主要針對主線程(或UI線程)。由於在主線程中讀寫磁碟和進行網路訪問都不是好的做法,Google已經在磁碟和網路代碼中添加了嚴苛模式(StrictMode)鉤子(hook)。如果你對某個線程開啟嚴苛模式(StrictMode),當那個線程進行磁碟和網路訪問,你將獲得警告。你可以選擇警告方式。一些違例包含使用者慢速調用(custom slow calls 這麼翻譯行嗎?),磁碟讀寫,網路訪問。你能選擇將警告寫入LogCat,顯示一個對話方塊,閃下螢幕,寫入DropBox記錄檔,或讓應用崩潰。最通常的做法是寫入LogCat或讓應用崩潰。

check "read/write disk", "access network" and "show call" in thread

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


3.VmPolicy類型

還有一種虛擬機器策略(VmPolicy),能檢查記憶體流失,譬如,當關閉一個SQLite對象前的完結操作,或其他任何類似可關閉對象在關閉前的完結操作。虛擬機器策略(VmPolicy)由一個類似的Builder類建立.和線程策略(ThreadPolicy)不同的是,虛擬機器策略(VmPolicy)不能通過一個對話方塊提供警告。

check leaks for "cursor", "close method", "activity instance", "object instance" and "registration" in process

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


4.使用執行個體

public class UILApplication extends Application {@TargetApi(Build.VERSION_CODES.GINGERBREAD)@SuppressWarnings("unused")@Overridepublic void onCreate() {if (DEVELOPER_MODE && Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) {StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectAll().penaltyDialog().build());StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectAll().penaltyDeath().build());}super.onCreate();}}

Android_使用StrictMode調試開發

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.