Android_使用StrictMode 调试开发

Android_使用StrictMode 调试开发

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

1.StrictMode简单介绍

自Android 2.3提供一个称为严苛模式(StrictMode)的调试特性,Google称该特性已经使数百个Android上的Google应用程序受益。那它都做什么呢?它将报告与线程及虚拟机相关的策略违例。一旦检測到策略违例(policy violation),你将获得警告,其包括了一个栈trace显示你的应用在何处发生违例。

你能够强制用警告取代崩溃(crash),也能够仅将警告计入日志,让你的应用继续运行。

2.ThreadPolicy类型

和线程相关,它主要针对主线程(或UI线程)。因为在主线程中读写磁盘和进行网络訪问都不是好的做法,Google已经在磁盘和网络代码中加入了严苛模式(StrictMode)钩子(hook)。假设你对某个线程打开严苛模式(StrictMode),当那个线程进行磁盘和网络訪问。你将获得警告。

你能够选择警告方式。

一些违例包括用户慢速调用(custom slow calls 这么翻译行吗?),磁盘读写。网络訪问。

你能选择将警告写入LogCat,显示一个对话框,闪下屏幕,写入DropBox日志文件,或让应用崩溃。最通常的做法是写入LogCat或让应用崩溃。

check “read/write disk”, “access network” and “show call” in thread

StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()  
	.detectDiskReads()  
	.detectDiskWrites()  
	.detectNetwork()  
	.penaltyLog()  
	.build());

3.VmPolicy类型

另一种虚拟机策略(VmPolicy)。能检查内存泄漏,譬如,当关闭一个SQLite对象前的完结操作,或其它不论什么类似可关闭对象在关闭前的完结操作。虚拟机策略(VmPolicy)由一个类似的Builder类创建.和线程策略(ThreadPolicy)不同的是。虚拟机策略(VmPolicy)不能通过一个对话框提供警告。

check leaks for “cursor”, “close method”, “activity instance”, “object instance” and “registration” in process

StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()  
   .detectLeakedSqlLiteObjects()  
   .penaltyLog()  
   .penaltyDeath()  
   .build());  

4.使用实例

public class UILApplication extends Application {
	@TargetApi(Build.VERSION_CODES.GINGERBREAD)
	@SuppressWarnings("unused")
	@Override
	public void onCreate() {
		if (DEVELOPER_MODE && Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) {
			StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectAll().penaltyDialog().build());
			StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectAll().penaltyDeath().build());
		}
	
		super.onCreate();
	}
}

版权声明:本文博客原创文章,博客,未经同意,不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117692.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 蓝桥杯单片机必备知识 —— (2)关闭LED灯,BUZZ以及零碎知识

    蓝桥杯单片机必备知识 —— (2)关闭LED灯,BUZZ以及零碎知识

    2021年4月12日
  • 快速解决Android中的selinux权限问题

    快速解决Android中的selinux权限问题关于selinux的详细资料,请查阅http://blog.csdn.net/innost/article/details/19299937在Android开发的过程中,遇到关于selinux相关的东西,当时还一下子看不懂,现在好像有点眉目了。比如,内核打印这个提示type=1400audit(32.939:25):avc:denied{open}forpid=2…

    2022年6月27日
  • 专业函数绘图软件Origin

    专业函数绘图软件Origin首先:Origin软件已经是科研院所等单位的必备工作软件之一,之所以大家讨论得较少,有可能并不是其上手难度低,而是这些使用人群的学习理解能力要相对高一点吧;其次:Excel不垃圾,但在函数绘图方面,比起Origin差远了,用垃圾来形容并不过分,可以问问任何高校老师,他们还会使用Excel出图么?那简直是自己找死。当然Origin也只是在绘图方面比Excel厉害,其它的方面还是比Excel差

    2022年5月31日
  • bigdecimal保留最多小数位_bigdecimal四舍五入保留两位小数

    bigdecimal保留最多小数位_bigdecimal四舍五入保留两位小数整理……//1>0.00或者#.00格式:小数点后两位,不足用0补足。DecimalFormatdf1=newDecimalFormat("#.00");System.out.println(df1.format(2.2));//2.20System.out.println(df1.format(2.246));//2.25//2>#.#…

    2022年9月23日
  • 网络传真机

    网络传真机网络传真机有两个种类:1、软件传真机。适合于小型的企业。2、硬件传真机。适合于大中型企业和单位组织。传真机的评价标准:1、稳定性。指时间长后的反映、占用资源情况、是否能处理大量的传真。2、适用性。传真机的其他的功能的选择:邮件收发传真、传真审批、传真鉴章、传真编辑、短信通知、语音功能、集团内部免费传真等。3、兼容性。传真服务器是否可以…

    2022年6月28日
  • oracle sysdate毫秒,Oracle sysdate常用「建议收藏」

    oracle sysdate毫秒,Oracle sysdate常用「建议收藏」SELECT*FROM(SELECT*FROMcalenderDetailAORDERBYa.calenderdesc)WHERErownum<3;//计算时间大于当前时间的最近2条记录取当前小时,以及相隔一小时v_begin_date:=to_date(to_char(sysdate,‘yyyy-mm-ddhh24‘),‘yyyy-mm-ddhh24‘);…

    2022年10月24日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号