-- Android代码检测优化之StricMode- http://blog.csdn.net/qq_25804863/article/details/48566925
StrictMode的策略和规则:目前,有两大类的策略可供使用,一类是关于常用的监控方面的,另外一类是关于VM虚拟机等方面的策略。常用的监控方面的策略有如下这些:
Disk Reads 磁盘读;Disk Writes 磁盘写
Network access 网络访问;Custom Slow Code 自定义的运行速度慢的代码分析
而VM方面的策略重点关注如下几类:内存泄露的Activity对象;内存泄露的SQLite对象;内存泄露的释放的对象
if (DEVELOPER_MODE) {
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectDiskReads()
.detectDiskWrites()
.detectNetwork() // or .detectAll() for all detectable problems
.penaltyLog()
.build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectLeakedSqlLiteObjects()
.detectLeakedClosableObjects()
.penaltyLog()
.penaltyDeath()
.build());
}
当你发现一个比较严重的异常时,Android提供了一系列的工具来解决它:线程、Handler、AsyncTask、IntentService等等。但并不是StrictMode报的所有问题都需要修复,特别是很多必须要在窗口生命周期回调中访问磁盘的时候。使用严苛模式可以帮你解决很多问题,比如在UI线程中访问网络始终是一个问题。