activity启动时会开启StrictMode模式:
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
严苛模式主要检测两大问题,一个是ThreadPolicy和VmPolicy。
ThreadPolicy 主要用于发现在UI线程中是否有读写磁盘的操作,是否有网络操作,以及检查UI线程中调用的自定义代码是否执行得比较慢。
VmPolicy主要用于发现内存问题,比如 Activity内存泄露, SQL 对象内存泄露, 资源未释放,能够限定某个类的最大对象数。
ThreadPolicy主要检查的是:
detectAll() : 检查一切潜在违规
detectCustomSlowCalls(): 发现UI线程调用执行较慢的方法;和 StrictMode.noteSlowCall 配合使用
detectDiskReads() : 检查磁盘读行为
detectDiskWrites() : 检查磁盘写行为
detectNetwork() : 检查网络操作