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. Oracle查询中文乱码

    1.查询Oracle服务端字符集 SQL> select userenv('language') from dual ; USERENV('LANGUAGE') ---------------- ...

  2. 运用php函数mkdir创建多级目录

    php默认的mkdir一次只能创建一层目录,如果在当前目录下创建一个div/css/layout 的目录就需要逐层逐层的先创建div,再创建div/css 再创建 div/css/layout,然而我 ...

  3. Vue作用域插槽:用作循环结构的模版

    一 项目结构 二 App组件 <template> <div id="app"> <!-- 子组件 --> <todos :list=&q ...

  4. Array.prototype.includes

    if (!Array.prototype.includes) {   Array.prototype.includes = function(searchElement /*, fromIndex*/ ...

  5. centos7系统乱码问题解决

    操作步骤: 查看当前系统的默认语言 echo $LANG 查看系统支持的语言库 locale 如果没有要设置的语言需要安装一下 yum groupinstall chinese-support -y ...

  6. stringstream流分割空格

    1205 单词翻转 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 青铜 Bronze       题目描述 Description 给出一个英语句子,希望你把句子里的单词顺序都翻转 ...

  7. BZOJ 4675(点分治)

    题面 传送门 分析 由于期望的线性性,我们可以分别计算每个点对对答案的贡献 有三个人取数字,分开对每个人考虑 设每个人分别取了k个数,则一共有\(C_n^k\)种组合,选到每种组合的概率为\(\fra ...

  8. GnuTLS 3.3.3 remote memory corruption(CVE-2014-3466)

    Buffer overflow in the read_server_hello function in lib/gnutls_handshake.c in GnuTLS before 3.1.25, ...

  9. 2014 SummerTrain Beautiful Garden

    There are n trees planted in lxhgww's garden. You can assume that these trees are planted along the ...

  10. 2019 Multi-University Training Contest 1 - 1009 - String - 贪心

    不知道错在哪里. 是要把atop改成stop!两个弄混了.感谢自造样例. #include<bits/stdc++.h> using namespace std; typedef long ...