Android之StrictMode
1. StrictMode是什么?
StrictMode is a developer tool which detects things you might be doing by accident and brings them to your attention so you can fix them. 这个是Api文档的解释,意思就是为开发者在开发过程中提供的一个可以检测应用到应用中出现的问题并加以提示。使应用更加健壮,开发者也可以通过它来提高代码的水平,实现代码的一定优化,不是一股脑的写代码写完就完事。
2. StrictMode的使用
StrictMode的使用,当然只是在调试中使用,真正上线版本就不能要了。所以和使用Log一样,设置一个全局的标志位DEBUG_TAG,当调试设置为true,上线设置为false。来控制代码的可用性。
if (DEBUG_FLAG) {
StrictMode.setThreadPolicy(
new StrictMode.ThreadPolicy.Builder()
.detectAll()
// .penaltyDialog() // 弹出违规提示对话框
.penaltyLog() // 在logcat中打印违规异常信息
.build());
StrictMode.setVmPolicy(
new StrictMode.VmPolicy.Builder()
.detectAll()
.penaltyLog()
.build());
}
StrictMode策略:
StrictMode.ThreadPolicy StrictMode policy applied to a certain thread.
关注点:Disk Reads 磁盘读 Disk Writes 磁盘写 Network access 网络访问 Custom Slow Code 自定义的运行速度慢的代码分析
StrictMode.VmPolicy StrictMode policy applied to all threads in the virtual machine's process.
关注点:内存泄露的Activity对象 内存泄露的SQLite对象 内存泄露的释放的对象
3. StrictMode的版本适配
StrictMode是Android2.3之后增加的一个类,所以对于Android之前是无法使用的,按照上面的代码,运行在Android2.3上肯定是有问题的。所以要做处理。处理方式可以通过异常捕获来处理。
4.参考:
Android之StrictMode的更多相关文章
- Android的StrictMode
转自:http://blog.csdn.net/tonyfield/article/details/8238251 Android 2.3提供一个称为严苛模式(StrictMode)的调试特性,Goo ...
- [Android Memory] Android 的 StrictMode
android的2.3 之后引入的StrictMode 对网络的访问做了限制啊. public void onCreate() { if (DEVELOPER_MODE) { StrictMode.s ...
- Android StrictMode介绍
转:http://www.blueowls.net/android-strictmode%E4%BB%8B%E7%BB%8D/ /** * enables "strict mode" ...
- 【转】 Pro Android学习笔记(五五):调试和分析(3):adb命令、模拟器控制台和StrictMode
目录(?)[-] adb命令 模拟器Console StrictMode adb命令 我们在学习SQLite的使用,介绍过部分adb命令的使用,见Pro Android学习笔记(五):了解Conten ...
- Android严苛模式StrictMode使用详解
StrictMode类是Android 2.3 (API 9)引入的一个工具类,可以用来帮助开发者发现代码中的一些不规范的问题,以达到提升应用响应能力的目的.举个例子来说,如果开发者在UI线程中进行了 ...
- Android内存泄露分析之StrictMode
转载请注明地址:http://blog.csdn.NET/yincheng886337/article/details/50524709 StrictMode(严格模式)使用 StrictMode严格 ...
- Android开发之StrictMode
StrictMode简介 Android开发者官网对StrictMode的介绍 StrictMode类是Android 2.3(API 9)引入的一个工具类 用来帮助开发者发现代码中一些不规范的问题, ...
- android 通过访问 php 接受 or 传送数据
先说传送数据,可以在 利用 php 代替传送,直接把 访问的url加上 xxx.php?informatin=xxxxxx 就行了 接收的看代码吧,详细注释. 首先是 我自己定义的php 文件 < ...
- Android Studio实现APK的更新、下载、安装
先不讲那么多看效果图: 下面来讲解一些更新CODE,原理大家都知道,不废话,直接上代码.里面有一些是我自己做的测试例子,所以大家可以直接删掉就好了 第一个:activity_main.xml < ...
随机推荐
- MyBatis的核心配置、动态sql、关联映射(快速总结)
MyBatis的核心对象和配置 #1. SqlSessionFactory对象: 单个数据库映射关系经过编译的内存镜像: 作用:创建SQLSession对象. //读取配置文件 InputSteam ...
- bzoj 3083
bzoj 3083 树链剖分,换根 对于一颗树有以下操作 1.确定x为根,2.将u到v的简单路径上的数全改成c,3.询问当前以x为根的子树中的节点最小权值. 如果没有操作1:树链剖分很明显. 于是考虑 ...
- mysql 导入大文件
set global max_allowed_packet=1000000000; set global net_buffer_length=1000000;
- matplotlib 画动态图以及plt.ion()和plt.ioff()的使用
学习python的道路是漫长的,今天又遇到一个问题,所以想写下来自己的理解方便以后查看. 在使用matplotlib的过程中,常常会需要画很多图,但是好像并不能同时展示许多图.这是因为python可视 ...
- php 获取最近一周,一个月,一年
<?php date_default_timezone_set('PRC'); /** * 获取最近一周,一个月,一年 * */ function getLatelyTime($type = ' ...
- Golang操作Redis
在系统环境下实现redis操作必须做好以下准备 一.当前系统必须下载安装redis 二.配置好GOPATH环境变量,并下载GO的redis驱动包 当做好以上准备工作时,紧接着如下 看以下要使用的驱动包 ...
- Jira客户端
github地址 https://github.com/rcarz/jira-client 使用 1)私服 <!-- https://mvnrepository.com/artifact/net ...
- Python概念-上下文管理协议中的__enter__和__exit__
所谓上下文管理协议,就是咱们打开文件时常用的一种方法:with __enter__(self):当with开始运行的时候触发此方法的运行 __exit__(self, exc_type, exc_va ...
- P3332 [ZJOI2013]K大数查询(线段树套线段树+标记永久化)
P3332 [ZJOI2013]K大数查询 权值线段树套区间线段树 把插入的值离散化一下开个线段树 蓝后每个节点开个线段树,维护一下每个数出现的区间和次数 为了防止MLE动态开点就好辣 重点是标记永久 ...
- 初识 GitHub
初识 GitHub 一.注册账号 GitHub 官网:https://github.com/ 点击右上角sign up,进行注册,注册界面如下: 填写用户名,邮箱地址,密码,下滑点击绿色按钮:Crea ...