Android的内存优化
腾讯公司在五月三十一日开展【腾讯Bugly移动开发人员沙龙】大会。大会上面叶方正老师解说了 关于Android的内存优化的问题,只是我感觉叶老师许多其它的站在了測试的角度上去解释了这一方面,叶老师给我们介绍了许多的工具去測试Android应用在各种情况下的内存占用情况。只是好像对我们开发的帮助并非特别的大。我在这里总结叶老师所说的重点和自己对内存优化的一些理解,希望可以对大家有所帮助。
Android应用优化主要集中在内存和UI流畅度上。从内存占用与泄露、UI流畅度的帧数和响应时间到IO的堵塞式响应时间等。
内存优化
首先。为什么要优化内存?主要体如今OOM(Out of Memory)和导致UI不流畅上。对于手机来说。内存是一个很稀缺的资源,即使是如今普遍拥有着很大内存的Android手机也不可避免。
而造成内存泄露或者说引发OOM主要是由于下面四个原因:
- 1、万恶的Static(通常见到在单例模式)
- 2、大胖子bitmap位图
- 3、多线程生命周期过长。导致本该释放的资源没有的到释放
- 4、变量生成没有被关闭(I/O流。Cursor)
这些原因都会导致我们的应用程序内存被大量的占用。知道了原因之后自然也就有个处理的办法。
应用之中假设存在大量的static变量。假设这些static的变量在Activity被结束的时候得不到销毁。那么它就会一直占用着内存空间,特别是一些数组。假设这些静态变量许多的话。那么它占用的内存就是一个很可观的数目。那么解决的方法是什么那?
1、除非这个变量会在整个应用之中被大量的反复使用
2、假设这个变量以后都不会再被使用到了。那么记得把他销毁掉
而对于bitmap位图我们可以通过BitmapFactory.Options的inSampleSize属性使他占用更小的空间。
第三个第四个问题,就仅仅能自己记得释放他。比方在onStop()或者onDestory()方法里面把它滞空。
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i ').text(i));
};
$numbering.fadeIn(1700);
});
});
Android的内存优化的更多相关文章
- Android代码内存优化建议-OnTrimMemory优化
原文 http://androidperformance.com/2015/07/20/Android代码内存优化建议-OnTrimMemory优化/ OnTrimMemory 回调是 Androi ...
- Android代码内存优化建议-Android官方篇
转自:http://androidperformance.com/ http://developer.android.com/intl/zh-cn/training/displaying-bitmap ...
- Android APP内存优化之图片优化
网上有很多大拿分享的关于Android性能优化的文章,主要是通过各种工具分析,使用合理的技巧优化APP的体验,提升APP的流畅度,但关于内存优化的文章很少有看到.在Android设备内存动不动就上G的 ...
- Android 图片内存优化与图片压缩
1. 对图片本身进行操作 尽量不要使用 setImageBitmap.setImageResource. BitmapFactory.decodeResource 来设置一张大图,因为这些方法在完成 ...
- Android 应用内存优化 之 onLowMemory & onTrimMemory
OnLowMemory: 是Android提供的API,在系统内存不足,所有后台程序(优先级为background的进程,不是指后台运行的进程)都被杀死时,系统会调用OnLowMemory.OnTri ...
- android开发内存优化之软引用
所有Android的开发者一定都遇到过内存溢出这个头疼的问题,一旦出现这个问题,很难直接确定我们的应用是那里出了问题,要想定位问题的原因,必须通过一些内存分析工具和强大的经验积累才能快速的定位到问题具 ...
- Android开发——内存优化 图片处理
8. 用缓存避免内存泄漏 很常见的一个例子就是图片的三级缓存结构,分别为网络缓存,本地缓存以及内存缓存.在内存缓存逻辑类中,通常会定义这样的集合类. private HashMap<Strin ...
- (Android图片内存优化)Picasso加载图片 教程。。详细版
Picasso 是 Android 上一个强大的图片下载和缓存库. 示例代码: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Picasso.with( ...
- 【MDCC技术大咖秀】Android内存优化之OOM
大神分析的很全面,所以就转过来保存一份,转自:http://www.csdn.net/article/2015-09-18/2825737/1 以下为正文: Android的内存优化是性能优化中很重要 ...
随机推荐
- sql: update from
sql server提供了update的from 子句,可以将要更新的表与其它的数据源连接起来.虽然只能对一个表进行更新,但是通过将要更新的表与其它的数据源连接起来,就可以在update的表达式 中引 ...
- 代码格式化工具Astyle配置
Astyle是一个很好的代码格式化工具,其他不多说,下面介绍一下我在VS 2010的配置 1. http://sourceforge.net/projects/astyle,这是该插件的网站,下载后把 ...
- 14.18 InnoDB Backup and Recovery 备份和恢复:
14.18 InnoDB Backup and Recovery 备份和恢复: 安全数据库管理的关键是 做定期的备份,依赖你的数据卷, MySQL server的数量和数据库的负载,你可以使用那些技术 ...
- 基于visual Studio2013解决面试题之0601二叉树深度
题目
- 基于visual Studio2013解决面试题之0501上台阶
题目
- wift - 使用UIScreen类获取屏幕大小尺寸
UISreen类代表了屏幕,开发中一般用来获取屏幕相关的属性,例如获取屏幕的大小. 1 2 3 4 5 6 7 //获取屏幕大小 var screenBounds:CGRect = UIScreen. ...
- Android 仿 窗帘效果 和 登录界面拖动效果 (Scroller类的应用) 附 2个DEMO及源码
在android学习中,动作交互是软件中重要的一部分,其中的Scroller就是提供了拖动效果的类,在网上,比如说一些Launcher实现滑屏都可以通过这个类去实现.下面要说的就是上次Scroller ...
- ice cave
Description You play a computer game. Your character stands on some level of a multilevel ice cave. ...
- zipkin分布式链路追踪系统
基于zipkin分布式链路追踪系统预研第一篇 分布式服务追踪系统起源于Google的论文“Dapper, a Large-Scale Distributed Systems Tracing Inf ...
- Indy10.2.5的危险做法
为了排查一个Bug今天无意看了看Indy源码,结果吓了一跳.TIdIOHandler.ReadLongWord函数用于读取通讯数据并转换成LongWord类型返回,它做用了一种危险的做法可能会导致数据 ...