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 严格模式的更多相关文章

  1. App优化 StrictMode 严格模式

    StrictMode简介 StrictMode最常用来捕捉应用程序的主线程,它将报告与线程及虚拟机相关的策略违例.一旦检测到策略违例policy violation,你将获得警告,其包含了一个栈tra ...

  2. Android内存泄露分析之StrictMode

    转载请注明地址:http://blog.csdn.NET/yincheng886337/article/details/50524709 StrictMode(严格模式)使用 StrictMode严格 ...

  3. 系统剖析Android中的内存泄漏

    [转发]作为Android开发人员,我们或多或少都听说过内存泄漏.那么何为内存泄漏,Android中的内存泄漏又是什么样子的呢,本文将简单概括的进行一些总结. 关于内存泄露的定义,我可以理解成这样 没 ...

  4. Android DropBoxManager Service

    Android DropBoxManager Service 什么是 DropBoxManager ? Enqueues chunks of data (from various sources – ...

  5. StrictMode模式介绍

    最新的Android平台中(Android 2.3起),新增加了一个新的类,叫StrictMode(android.os.StrictMode).这个类可以用来帮助开发者改进他们编写的应用,并且提供了 ...

  6. 严苛模式(StrictMode)

    Android 2.3提供一个称为严苛模式(StrictMode)的调试特性,Google称该特性已经使数百个Android上的Google应用程序受益.那它都做什么呢?它将报告与线程及虚拟机相关的策 ...

  7. 严苛模式 strictmode

    参考链接 http://blog.csdn.net/brokge/article/details/8543145 一.严苛模式-虚拟机策略 虚拟机策略(VmPolicy)能检查内存泄漏,譬如,当关闭一 ...

  8. Android严苛模式StrictMode使用详解

    StrictMode类是Android 2.3 (API 9)引入的一个工具类,可以用来帮助开发者发现代码中的一些不规范的问题,以达到提升应用响应能力的目的.举个例子来说,如果开发者在UI线程中进行了 ...

  9. 转:StrictMode使用

    最新的Android平台中(Android 2.3起),新增加了一个新的类,叫StrictMode(android.os.StrictMode).这个类可以用来帮助开发者改进他们编写的应用,并且提供了 ...

随机推荐

  1. 002-序列化装换JSON&XML概述

    一.概述 https://github.com/bjlhx15/java-serializer java-serializer 序列化项目 serialize-json-lib:json-lib框架 ...

  2. Jquery append() 添加多次同个元素时,只有一次作用,如何解决?

    这是一个简单的table <table id="mytable"> <!-- 这里将要动态加载tr数据 --> </table> 这是一个模版t ...

  3. jmeter之非GUI启动与执行脚本

    启动jmeter的图形界面可以从dos窗口输命令启动:图形界面还是比较占资源的,这时候可以通过dos窗口来执行脚本,获取性能结果 目录 1.dos窗口启动jmeter图形界面 2.dos窗口执行脚本, ...

  4. Python-位操作 ( &,|,~,^,<<,>>

    用于提高运算速度,规避算术运算符 在位操作运算中,不应该试图考虑先得到一个数的二进制码 ,而是应该将这个数看作是一个二进制码,二进制补码与整数之间是一一对应的. 诚然Python中有内置函数bin将一 ...

  5. MySQL集群(PXC)入门

    一.学习动机 伴随互联网行业的兴起,越来越多的领域需要相应的技术方案,比如:打出软件.电商平台.直播平台.电子支付.媒体社交. 身边常见的,校园出成绩那一年,我们会感觉网站异常的卡顿,因为访问人数太多 ...

  6. MySQL-第九篇分组和组函数

    1.组函数 组函数:即多行函数,组函数将一组记录作为整体计算,每组记录返回一个结果,而不是每条记录返回一个结果. 2.常用的组函数有: 1>avg([distinct|all]expr):计算多 ...

  7. [Codeforces 865C]Gotta Go Fast(期望dp+二分答案)

    [Codeforces 865C]Gotta Go Fast(期望dp+二分答案) 题面 一个游戏一共有n个关卡,对于第i关,用a[i]时间通过的概率为p[i],用b[i]通过的时间为1-p[i],每 ...

  8. sqlserver创建索引语句

    CREATE INDEX PersonIndex ON 表名 (字段名)   DROP INDEX PersonIndex ON 表名

  9. 选择指定的MySQL数据库

    <?php /******************************** *** 功能:选择指定的MySQL数据库 *********************************/ ? ...

  10. opencv视频流的读取和处理

    Opencv提供一个简单易用的框架以提取视频文件和USB摄像头中的图像帧,如果只是想读取某个视频,你只需要创建一个VideoCapture实例,然后在循环中提取每一帧.下面是一个简单的代码 #incl ...