StrictMode 严格模式
StrictMode:
帮助程序员避免在主线程上执行耗时操作;
启动级别:
1. 启动线程级别: setThreadPolicy()
2. 启动应用级别 : setVmPolicy() —— 对于检测应用内部的资源泄漏很有用
可检测线程的如下操作:
1. 磁盘的读和写操作;
2. 访问网络;
3. 运行速度较慢的代码;
可检测整个应用的如下操作:
1. 有界面(Activities)对象泄漏;
2. 有SQLite对象泄漏;
3. 有任何需要显示关闭的对象泄漏,即实现了Closeable接口的对象,在finalizer被调用前,没有调用close函数;
应用违反了这些规则,将受到以下惩罚:
1. 在logcat中打印详细的消息通知;
2. 直接让应用崩溃退出;
3. 不停的闪烁屏幕吸引注意;
4. 在应用上弹出一个对话框提醒开发者;
举例:
在主线程中执行下面的操作是不允许的:
1. 使用new Socket()视图打开一个套接字链接;
2. 使用HttpClient和HttpUrlConnection发送一个Http请求;
3. 尝试连接一个远程的MySQL数据库;
4. 使用Downloader.downloadFile下载一个文件。
Anroid提供了几种方法让其他线程操作UI控件:
1. Activity.runOnUiThread(Runnable);
2. View.post(Runnable); ===> AsyncTask
3. Handler
StrictMode 严格模式的更多相关文章
- App优化 StrictMode 严格模式
StrictMode简介 StrictMode最常用来捕捉应用程序的主线程,它将报告与线程及虚拟机相关的策略违例.一旦检测到策略违例policy violation,你将获得警告,其包含了一个栈tra ...
- Android内存泄露分析之StrictMode
转载请注明地址:http://blog.csdn.NET/yincheng886337/article/details/50524709 StrictMode(严格模式)使用 StrictMode严格 ...
- 系统剖析Android中的内存泄漏
[转发]作为Android开发人员,我们或多或少都听说过内存泄漏.那么何为内存泄漏,Android中的内存泄漏又是什么样子的呢,本文将简单概括的进行一些总结. 关于内存泄露的定义,我可以理解成这样 没 ...
- Android DropBoxManager Service
Android DropBoxManager Service 什么是 DropBoxManager ? Enqueues chunks of data (from various sources – ...
- StrictMode模式介绍
最新的Android平台中(Android 2.3起),新增加了一个新的类,叫StrictMode(android.os.StrictMode).这个类可以用来帮助开发者改进他们编写的应用,并且提供了 ...
- 严苛模式(StrictMode)
Android 2.3提供一个称为严苛模式(StrictMode)的调试特性,Google称该特性已经使数百个Android上的Google应用程序受益.那它都做什么呢?它将报告与线程及虚拟机相关的策 ...
- 严苛模式 strictmode
参考链接 http://blog.csdn.net/brokge/article/details/8543145 一.严苛模式-虚拟机策略 虚拟机策略(VmPolicy)能检查内存泄漏,譬如,当关闭一 ...
- Android严苛模式StrictMode使用详解
StrictMode类是Android 2.3 (API 9)引入的一个工具类,可以用来帮助开发者发现代码中的一些不规范的问题,以达到提升应用响应能力的目的.举个例子来说,如果开发者在UI线程中进行了 ...
- 转:StrictMode使用
最新的Android平台中(Android 2.3起),新增加了一个新的类,叫StrictMode(android.os.StrictMode).这个类可以用来帮助开发者改进他们编写的应用,并且提供了 ...
随机推荐
- 在reshard过程中,将会询问reshard多少slots:
How many slots do you want to move (from 1 to 16384)?,取值范围为1~16384,其中16384为redis cluster的拥有的slots总数, ...
- C# 文件、byte相互转换
文件转byte数组: /// <summary> /// 将文件转换为byte数组 /// </summary> /// <param name="path&q ...
- php开发环境是什么
软件开发环境(Software Development Environment,SDE)是指在基本硬件和数字软件的基础上,为支持系统软件和应用软件的工程化开发和维护而使用的一组软件,简称SDE.它由软 ...
- centos7配置sudo免密
1.chmod +w /etc/sudoers 2.vim /etc/sudoers 在已经有了的root下面加 username ALL=NOPASSWD:ALL (这是所有的命 ...
- 【问题解决方案】Mathtype中丢失Mplugin.dll的问题
网络上搜索到的答案: Mathtype中丢失Mplugin.dll,把Mplugin.dll文件放到Mathtype安装根目录下就好了. 然而试过以后仍然不行 事实是: 如果下载的mathtype安装 ...
- swiper插件在ie浏览器无反应,解决办法
在写pc端页面时,用swiper插件发现在ie中用不了,百度下说是swiper从3以后向手机端发展,所以在pc端无响应.后来了解到,swiper3是专门针对移动端写的.如果想兼容IE8的话,应该引入s ...
- CLR 垃圾回收知识梳理
- while例子 求1到100的和
- smbclient - 类似FTP操作方式的访问SMB/CIFS服务器资源的客户端
总览 SYNOPSIS smbclient {servicename} [password] [-b <buffer size>] [-d debuglevel] [-D Director ...
- Oracle 反键索引/反向索引
反键索引又叫反向索引,不是用来加速数据访问的,而是为了均衡IO,解决热块而设计的比如数据这样: 1000001 1000002 1000005 1000006 在普通索引中会出现在一个叶子上,如果部门 ...