Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android 程序優化之查錯篇

android 程序優化之查錯篇

編輯:關於Android編程

1.StrictMode  StrictMode 是android API 9 引入的一個類, 能夠幫助開發者 發現代碼中的一些問題。它可以設置一些策略,當程序違反這些策略的時候,它會提示開發者。   主要有兩大類策略,一個是線程方面的策略,一個是VM方面的策略。 線程策略方面,它能夠發現UI線程讀寫DISK,UI線程訪問網絡,自己寫的速度慢的代碼。 VM策略方面,它能夠發現  Activity內存洩露, SQL 對象內存洩露, 資源未釋放,能夠限定某個類的最大對象數。 當程序違反這些策略的時候,它會通過一定方式通知開發者,如log等。 具體代碼如下。    
public static void enableStrictMode() {  
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) {  
            StrictMode.ThreadPolicy.Builder threadPolicyBuilder = //線程策略  
                    new StrictMode.ThreadPolicy.Builder()  
                            .detectAll()   //發現所有策略的違反行為  
                            .penaltyLog(); //發現違反策略,打印log。還有其他的方式,參考API  
            StrictMode.VmPolicy.Builder vmPolicyBuilder =   //VM策略  
                    new StrictMode.VmPolicy.Builder()  
                            .detectAll()  
                            .penaltyLog();  
  
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {  
                threadPolicyBuilder.penaltyFlashScreen(); //發現違反策略的行為,是屏幕閃爍  
                vmPolicyBuilder  
                        .setClassInstanceLimit(MyClass.class, 1); //這裡限制 MyClass 的實例最多只有一個,否則違反策略。  
            }  
            StrictMode.setThreadPolicy(threadPolicyBuilder.build());    
            StrictMode.setVmPolicy(vmPolicyBuilder.build());  
        }  
}  

 

  可以把它放到Application . onCreate() 裡,這樣,程序打開的時候,它就起作用了。 一定不要在release版中使用它,很耗性能的。  
if(debug){  
<pre name="code" class="java"><span style="white-space:pre">    </span>enableStrictMode() ;</pre>}  
<pre></pre>  
<br>  
<br>  

 

 
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved