当前位置:操作系统 > 安卓/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>  

 

 
补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,