Android Studio StrictMode

Android Studio StrictMode最近接手一个新项目,研究下代码,并学习其中一些好的地方。比如今天发现运行app以后会有log显示 StrictMode相关信息,通过查看代码,我发现在某Activity中使用了StrictMode的一些功能,老实说,StrictMode我在手机的开发者选项中有见到过,enable以后用过几分钟……尝鲜,但是代码里面从来没用过这个功能,从来没用过    他主要是检测线程&虚拟

大家好,又见面了,我是你们的朋友全栈君。

最近接手一个新项目,研究下代码,并学习其中一些好的地方。比如今天发现运行app以后会有log 显示 StrictMode相关信息,通过查看代码,我发现在 某Activity 中使用了 StrictMode 的一些功能,老实说,StrictMode我在手机的开发者选项中有见到过,enable以后用过几分钟……尝鲜,但是代码里面从来没用过这个功能,从来没用过偷笑

        他主要是检测 线程&虚拟机  相关的违例情况,比如磁盘操作、网络访问等。详情阅读官方文档StrictMode

        我目前比较关心两件事:

        1.在什么时候用;

        2.怎么用。

        关于1,这个功能是协助开发者开发产品的时候给自己“找茬”的,适用于开发阶段使用,release版本不建议打开相关功能。可以设置一个boolean变量,根据这个变量的值来enable或disable  StrictMode。关于这个boolean值,在android studio的gradle中有个功能很有用,如下代码所示:

    buildTypes{
        releaseName{
            debuggable false
        }
        debugName{
            debuggable true
        }
    }

 在类中 可以通过读取相关值来确定当前是否是debug版本,并作出相应策略。ps:debuggable属性不是必须设置的,debug版本下其默认是true,release版本下,其默认是false

           

        关于2,主要是要搞懂监测规则的设置,android的规则不止一点,可由开发者自己决定StrictMode要监测的规则,可以仅仅检测网络相关,也可以检测所有规则。

        项目中是这么用的:在Activity 或者Application 的onCreate中调用相关功能。其一般是有两个set方法,分别对应  线程&vm 摘了一段代码如下所示:

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

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

 可以在android studio里面查看或者看官网的文档(sdk里面这个类挺长的,看得我好累啊)。其实这个StrictMode我之所以用得少,主要是因为项目的框架搭建完以后,线程方面不会出问题的,数据库相关操作也都封装好了,网络也是。而且现在各种开源库流行起来,开发者自己造轮子的机会不是很多,所以用的就少了,不过,存在即合理,了解一下还是有用的,也就几行代码的事,随手写出来测试下app找出问题也是极好的。

今天就是简单看了一下StrictMode.java,算上注释,一共2000+行,找时间我要再仔细看下。

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/132860.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • XPS文件转换成PDF[通俗易懂]

    XPS文件转换成PDF[通俗易懂]作者:iamlaosongXPS是XMLPaperSpecification(XML文件规格书)的简称是一种电子文件格式,它是微软公司开发的一种文档保存与查看的规范。同事有一个XPS文件,希望能够转换成PDF格式。方法一:电脑上安装了AdobeAcrobat8Professional1、双击打开AdobeAcrobat8Professional。2、点击“打开”,选择要转换的XPS文件。3、不出意外的话XPS文件可以正常打开并看到内容。4、另存为PDF文件即可。电脑上有其他版.

  • 页面优化——重绘和回流[通俗易懂]

    页面优化——重绘和回流[通俗易懂]一、写在前面页面优化在面试的过程中经常遇到的问题,今天就来总计一下重绘和回流的问题。二、重绘和回流是什么我们都知道一个页面从加载到完成,首先是构建DOM树,然后根据DOM节点进行几何布局形成render树(渲染树),当渲染树构建完成后,页面就根据DOM树开始布局,渲染树也根据设置的样式渲染这些节点。在这一过程中,比如我们删除DOM节点,修改一个元素的宽高,页面布局发生变化,DOM树也发生变化,那么肯定要重新构建DOm树,而DOM树和渲染树紧密相连,DOM树渲染完了,渲染树也会随之进行渲染,这个过程就

    2022年10月28日
  • DbVisualizer解决中文乱码问题

    DbVisualizer解决中文乱码问题DbVisualizer解决中文乱码问题

  • 表达式树与前中后缀表达式

    表达式树与前中后缀表达式计算机科学中,除了栈以外,二叉树也是处理表达式的常用工具,为了处理表达式而遵循相应规则构造的树被称为表达式树。表达式树算数表达式是分层的递归结构,一个运算符作用于相应的运算对象,其运算对象又可以是任意复杂的表达式。树的递归结构正好用来表示这种表达式。下面只讨论二元表达式。二元表达式可以很自然的联系到二叉树:以基本运算对象作为叶节点中的数据;以运算符作为非叶节点中的数据,其两棵子树是它的…

  • sqlyog错误号码2058_将设备连接至你的电脑时出错

    sqlyog错误号码2058_将设备连接至你的电脑时出错远在天边,近在眼前。

  • MinGW-w64的安装及配置教程

    步骤:1.下载MinGW-w642.安装MinGW-w643.配置MinGW-w64路径4.验证安装MinGW的全称是:MinimalistGNUonWindows。它实际上是将经典的开源C语言编译器GCC移植到了Windows平台下,并且包含了Win32API,因此可以将源代码编译为可在Windows中运行的可执行程序。而且还可以使用一些Windows不具备的,Linux平台下的开发工具。一句话来概括:MinGW就是GCC的Windows版本。MinGW

发表回复

您的电子邮箱地址不会被公开。

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