Google严苛模式【调试、优化、检查】让你的APP更优,突破优化瓶颈
来源:互联网 发布:spring切面编程 注解 编辑:程序博客网 时间:2024/05/16 16:15
1.什么是严苛模式(StrictMode)
StrictMode是一个开发工具,检测到你可能的事情 偶然做的就让你的注意力,这样你就可以修复 他们。
StrictMode是最常用的磁盘或意外 网络访问应用程序的主线程,UI 操作和动画进行接收。 保持磁盘 和网络业务主线程会更为顺畅, 应用程序更加敏感。 通过保持应用程序的主线程 响应,你也阻止 ANR对话框 显示给用户。
注意,即使Android设备的磁盘 通常在闪存,很多设备文件系统上运行 记忆有非常有限的并发。 这是常有的事 几乎所有的磁盘访问都是快,但在个别情况下可能 大幅放缓时,在后台发生的某些I / O 从其他进程。 如果可能的话,最好是假设等 事情并不快。
2.严苛模式的用法
google的示例如下:
public void onCreate() { if (DEVELOPER_MODE) { StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() .detectDiskReads() .detectDiskWrites() .detectNetwork() // or .detectAll() for all detectable problems .penaltyLog() .build()); StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder() .detectLeakedSqlLiteObjects() .detectLeakedClosableObjects() .penaltyLog() .penaltyDeath() .build()); } super.onCreate(); }
只需要在super.onCreate()方法加上这句就OK了
3.优化严苛模式,让它成为真正的工具
我们可以写到
BaseActivity
中,让其他Activity
继承自这个BaseActivity
,并且设置一个开关来控制它DEVELOPER_MODE
4.查看log日子信息
先看下边一段代码
/** * Created by zsl on 2014/12/31. */public class StrictModeActivity extends BaseActivity implements BaseActivityInterface,View.OnClickListener { @Override protected void onCreate(Bundle savedInstanceState) { AppConfig.setDeveloperMode(); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); initEvent(); initData(); } @Override public void initView() { } @Override public void initEvent() { } @Override public void initData() { String url="http://g.hiphotos.baidu.com/image/w%3D310/sign=7725d8ccd3a20cf44690f8de46084b0c/e1fe9925bc315c601a0f34a48eb1cb13485477e6.jpg"; try { URL url1 = new URL(url); HttpURLConnection connection = (HttpURLConnection) url1.openConnection(); connection.setConnectTimeout(15000); connection.setReadTimeout(10000); connection.setRequestMethod("GET"); connection.setDoInput(true); connection.connect(); connection.getInputStream(); } catch (IOException e) { e.printStackTrace(); } } @Override public void onClick(View v) { switch (v.getId()){ case 1:{ break; } default:{ break; } } }}
我是在主线程去直接访问了网络,一般情况下我们如果这样做了,网络状况好的情况下,不会有任何的影响。
但是我们加上严苛模式以后的查看一下会有什么效果呢?
log日子中会报错,并且出现StrictMode的关键字,并且会爆出错误的原因和需要改进的地方
最后在模拟器上会重新弹出一个不可点击的界面,这就说明你需要做一些优化了
5.总结
严苛模式检查什么?
检查在主线程的耗时操作:网络访问、复杂动画、磁盘读写,等
6 0
- Google严苛模式【调试、优化、检查】让你的APP更优,突破优化瓶颈
- Google严苛模式【调试、优化、检查】让你的APP飞一般的感觉
- Android严苛模式【调试、优化、检查】优化APP
- 2014最牛突破网站优化的瓶颈
- Android性能优化-StrictMode(严苛模式)
- 技术优化加速广域网传输瓶颈突破
- Google让你突破下载
- Google让你突破下载
- Google让你突破下载
- Google让你突破下载
- App性能瓶颈优化 总结
- 《Java程序性能优化 让你的Java程序更快、更稳定》阅读笔记
- 常用优化组件和方法- Java程序性能优化--让你的Java程序更快、更稳定
- JAVA程序性能优化-让你的java程序更快、更稳定学习笔记一性能优化一般步骤
- 如何让你的App更流畅
- 帮助你突破脱壳瓶颈的帖
- Android内存优化- 严苛模式StrictMode使用详解
- Android对adapter的优化,让你的listview更流畅
- 【Sublime Text 3】Sublime Text 3 - 3103 最新注册码
- ant 打包android项目
- 背包问题
- android网络编程学习笔记(一)
- HibernateTemplate空指针的问题
- Google严苛模式【调试、优化、检查】让你的APP更优,突破优化瓶颈
- 使用ehcache高并发场景下速度慢问题
- 用css解决table文字溢出控制td显示字数
- SBSettings Toggle Spec
- coredump来调试崩溃进程
- if(a);if(!a);if(a!=0);if(a==0)有什么区别?
- ioctl ARP缓存表
- java使用ant快速压缩文件
- JSP共有以下9种基本内置组件 简介 jsp内置对象