Android调试应用程序

1、Eclipse IDE集成的DDMS调试器;

DDMS:Dalvik Debug Monitor Server.用于在模拟器或设备上运行的应用程序的详细信息、应用程序内的线程 、应用程序内的堆或内存以及文件资源管理器和模拟器控制器,可模拟GPS事件、拨入的电话或SMS消息。

LogCat:监视日志消息,该窗口显示android.util.log、异常、system.out.println等发出的日志消息。


2、StrictMode

用于对一个thread(ui线程或者分线程)检测它的读写操作、访问网络、数据库读写等耗时的操作并将其以log或者dialog等形式打印出来。在onCreate()方法添加StricMode设置。

StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() //构造StrictMode  
  
               .detectDiskReads() //当发生磁盘读操作时输出  
  
               .detectDiskWrites() //当发生磁盘写操作时输出  
  
               .detectNetwork()  //访问网络时输出  
  
               .penaltyLog()  //以日志的方式输出  
  
               .build()); 

StrictMode还有一个VmPolicy。如果SQLite在关闭之前被终结,或者任何Closeable对象在关闭之前被终结,可使用VmPolicy检查内存泄漏。

StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder() 

               .detectLeakedSqlLiteObjects() //探测SQLite数据库操作

               .penaltyLog() //以日志的方式输出 

               .penaltyDeath() 
 
               .build());  

VmPolicy主要检查以下内容:

  • 内存泄露的Activity对象 
  • 内存泄露的SQLite对象 
  • 内存泄露的释放的对象 
    所谓对关闭对象的检查,主要是去监那些本该释放的对象,比如应该调用close()方法的对象。

举例:

public void onCreate() { 
     if (DEVELOPER_MODE) { 
         StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() 
                 .detectDiskReads() 
                 .detectDiskWrites() 
                 .detectNetwork()    
                 .penaltyLog() 
                 .build()); 
         StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder() 
                 .detectLeakedSqlLiteObjects() 
                 .detectLeakedClosableObjects() 
                 .penaltyLog() 
                 .penaltyDeath() 
                 .build()); 
     } 
     super.onCreate(); 
 } 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值