`
夏文权
  • 浏览: 243811 次
  • 性别: Icon_minigender_1
  • 来自: 贵州
社区版块
存档分类
最新评论

android 2.3 以上的StrictMode 使用方法

 
阅读更多
写道
ANR窗口产生的原因是多种多样的。程序的主线程因为IO读写或网络阻塞而导致被阻塞了,外部存储设备被独占了或系统负荷(load)过高(即不是自己编写的程序的问题,可能是系统或者其他第三方程序导致的问题),都有可能导致ANR窗口的出现。

从Android 2.3开始提供了一个新的类StrictMode,可以帮助开发者改进他们的Android应用,StrictMode可以用于捕捉发生在应用程序主线程中耗时的磁盘、网络访问或函数调用,可以帮助开发者使其改进程序,使主线程处理UI和动画在磁盘读写和网络操作时变得更平滑,避免主线程被阻塞,导致ANR窗口的发生。

下面简要说明下Android 2.3新特性StrictMode限制模式的工作方式,见下面的代码:
 
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
                .detectDiskReads()
               .detectDiskWrites()
               .detectNetwork() // 这里可以替换为detectAll() 就包括了磁盘读写和网络I/O
               .penaltyLog() //打印logcat,当然也可以定位到dropbox,通过文件保存相应的log
              .build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
                 .detectLeakedSqlLiteObjects() //探测SQLite数据库操作
                 .penaltyLog() //打印logcat
                 .penaltyDeath()
                 .build());


注意:上述代码可以在Application的OnCreate中添加,这样就能在程序启动的最初一刻进行监控了。
 
分享到:
评论

相关推荐

    Android通过webservice连接SqlServer实例(Android4.0可运行)

    Android通过webservice连接SqlServer实例(Android4.0可运行)从原博http://blog.csdn.net/zhyl8157121/article/details/8169172下载下来的demo,看了评论和其它文章后修改,解决了Android2.3以上StrictMode模式下不...

    详解Android StrictMode严格模式的使用方法

    "Android StrictMode严格模式的使用方法" Android StrictMode严格模式是一种调试特性,于Android 2.3中引入,旨在检测和报告线程及虚拟机相关的策略违例。通过使用StrictMode,可以很方便地检查Android应用程序的...

    strictMode介绍

    StrictMode是自Android 2.3(Gingerbread)版本起引入的一个功能,它作为开发者模式的一部分,为应用程序提供了一种检测和报告应用行为中潜在问题的机制。通过启用StrictMode,开发者可以监控并捕获应用在运行时可能...

    StrictModeUtils.java

    StrictMode在Android 2.3(API 9)的时候就已经引入了,虽然到当前这个工具年代比较久远 了,但属实还是非常好用的, 在开发阶段使用这个工具,能够很好的帮助发现开发中的一系列不规范的编码, 例如主线程访问网络...

    提升Android应用开发性能的十大要点.docx

    从Android 2.3开始,StrictMode类提供了此功能。 5. **移除调试代码**:在发布应用前,确保调试和诊断日志被禁用或最小化,因为它们会消耗性能。 6. **简洁的布局设计**:创建简单、直观的布局可以提高加载速度。...

    精通ANDROID 3(中文版)1/2

    24.4.5 使用语言方法  24.5 参考资料  24.6 小结  第25章 触摸屏  25.1 MotionEvent  25.1.1 MotionEvent 对象  25.1.2 回收MotionEvent  25.1.3 使用VelocityTracker  25.1.4 探索拖放操作  25.2...

    给Android应用开发者的十个建议终版.pdf

    4. **启用StrictMode**:从Android 2.3开始,开发者可以使用StrictMode检测主线程中的性能问题,如磁盘读写和网络访问,从而优化应用,确保UI的流畅性。 5. **发布前禁用或减少调试**:在应用发布之前,应移除或...

    Android.UI基础教程]

    1.4.4 用DDMS截屏 1.4.5其他工具 1.5 结束语 第2章 创建第一个应用 2.1 创建一个应用 2.2 开始使用Android视图 2.3 排布视图2.3.1 FrameLayout 2.3.2 TableLayout 2.3.3 LinearLayout 2.3.4RelativeLayout 2.3.5 ...

    精通Android 3 (中文版)2/2

    24.4.5 使用语言方法  24.5 参考资料  24.6 小结  第25章 触摸屏  25.1 MotionEvent  25.1.1 MotionEvent 对象  25.1.2 回收MotionEvent  25.1.3 使用VelocityTracker  25.1.4 探索拖放操作  25.2...

    分享10种可提升Android应用运行效果的技巧

    它是自Android 2.3版本引入的,通过设置不同的策略,可以在开发过程中及时发现并修正错误。 #### 技巧5:清理调试和诊断代码 在发布前,彻底清理或最小化应用中的调试和诊断代码,避免不必要的资源消耗。这不仅能...

    android异步任务设计思详解(AsyncTask)

    这里说有设计思想是我根据查看Android源代码提炼出来的代码逻辑,所以不会跟Google工程师的原始设计思想100%符合(也有可能是0%),... 代码如下:if (android.os.Build.VERSION.SDK_INT > 9) { StrictMode.ThreadPo

Global site tag (gtag.js) - Google Analytics