内容纲要
• ListView视图缓存优化
• ListView异步加载优化
• ListView图片缓存
• 内存优化
内存优化
• 方法1 : 等比例缩小图片
BitmapFactory.Options options = new
BitmapFactory.Options();
options.inSampleSize = 4;
•
方法2 : 对图片采用软引用,及时地进行recyle ()操作
SoftReference<Bitmap> bitmap;
bitmap = new
SoftReference<Bitmap>(pBitmap);
if(bitmap != null){
if(bitmap.get () != null &&
!bitmap.get ().isRecycled()){
bitmap.get ().recycle();
bitmap = null;
}
}
• 方法3 : 在页面切换时尽可能少地重复使用一些代码,比如
:重复调用数据库,反复使用某些对象等等......
方法4 :Android堆内存也可自己定义大小 和 优化Dalvik虚
拟机的堆内存分配
• 注意若使用这种方法:project build target 只能选择
<= 2.2 版本,否则编译将通不过。 所以不建议用这种方式
private final static int CWJ_HEAP_SIZE=
6*1024*1024;
private final static float
TARGET_HEAP_UTILIZATION = 0.75f;
VMRuntime.getRuntime().setMinimumHeapSize(CWJ_HEA
P_SIZE);
VMRuntime.getRuntime().setTargetHeapUtilization(T
ARGET_HEAP_UTILIZATION);
• 优化Dalvik虚拟机的堆内存分配
对于Android平台来说,其托管层使用的Dalvik Java VM从目
前的表现来看还有很多地方可以优化处理,比如我们在开发
一些大型游戏或耗资源的应用中可能考虑手动干涉GC处理,
使用 dalvik.system.VMRuntime类提供的
setTargetHeapUtilization方法可以增强程序堆内存的处理
效率。当然具体原理我们可以参考开源工程,这里我们仅说
下使用方法 : private final static float
TARGET_HEAP_UTILIZATION = 0.75f; 在程序onCreate时就可
以调用
VMRuntime.getRuntime().setTargetHeapUtilization(TARGE
T_HEAP_UTILIZATION); 即可。
• Android堆内存也可自己定义大小
对于一些Android项目,影响性能瓶颈的主要是Android
自己内存管理机制问题,目前手机厂商对RAM都比较吝啬,对
于软件的流畅性来说RAM对性能的影响十分敏感,除了 优化
Dalvik虚拟机的堆内存分配外,我们还可以强制定义自己软
件的对内存大小,我们使用Dalvik提供的
dalvik.system.VMRuntime类来设置最小堆内存为例:
• private final static int CWJ_HEAP_SIZE = 6* 1024*
1024 ;
VMRuntime.getRuntime().setMinimumHeapSize(CWJ_HEAP_SI
ZE); //设置最小heap内存为6MB大小。
• 当然对于内存吃紧来说还可以通过手动干涉GC去处理
分享到:
相关推荐
ListView优化及加载图片时内存溢出
android listview内存优化 10M图片 没有内存溢出和卡顿线程
用自定义view实现listview的效果,优化内存
2、分页加载,这也是优化之一,优化内存,还有体验感,有兴趣的可以试试大数据加载; 3、convertView 就是布局的复用; 4、ViewHolder的使用 目的减少findviewByID的次数; 下面代码验证一下3和4。 public View ...
解决listview复用checkbox的怪异现象
ListView的优化问题。 为了使界面美观,合理,以及sd卡和内存缓存的问题,做一些优化。
主要处理一些有关Android内存泄露案例以及解决方案,比如我们常见的单例模式、listView的的优化
当GridView或ListVIew每一项显示信息多或者显示图片时,在滚动是不加载资源,当停下来时,加载当前页面显示的几个Item资源,以节省内存资源。
在android开发中Listview是一个很重要的组件,它以列表的形式根据数据的长自适应展示具体内容,用户可以自由的定义listview每一列的布局,但当listview有大量的数据需要加载的时候,会占据大量内存,影响性能,这时候...
主要介绍了Android编程使用缓存优化ListView的方法,涉及ListView针对sd卡缓存及内存缓存的优化技巧,需要的朋友可以参考下
关于listview的异步加载,网上其实很多示例了,中心思想都差不多,不过很多版本或是有bug,或是有性能问题有待优化。有鉴于此,本人在网上找了个相对理想的版本并在此基础上进行改造,下面就让在下阐述其原理以探索...
里面有3个相互独立的demo 包含listView 手势滑动删除 图片内存优化 以及瀑布流 绝对的超经典 研究完成可以制作出最主流的炫酷特效
|--内存优化之各种方法 |--内容提供者之短信的序列化对象读写 |--内容提供者之短信的获取与写入 |--内容提供者之联系人读写与批量操作 |--内容提供者之获取通话记录 |--内容提供者的定义 |--写入联系人信息 |--利用...
本课程包含了Android中的App启动优化、UI优化、内存优化、图片优化、耗电量等常见的性能优化场景,通过学习此课程,你将对整个Android性能优化体系有清晰的认识。 性能优化作为Android高级开发的必备技能,也是大厂...
RT,listveiw异步加载的优化版,内存+SD卡文件双缓存,涉及LRU算法,无图片显示错乱问题,速度更快滑动更流畅
用HorizontalScrollView实现了水平的Listview,代替Gridview来添加多张图片,并优化了内存。
Android性能优化 ListView详解 RecyclerView和ListView的异同 AsyncTask源码分析 插件化技术 自定义控件 事件分发机制 ANR问题 Art和Dalvik的区别 Android关于OOM的解决方案 Fragment Activity&Fragment SurfaceView...
Android性能优化 ListView详解 RecyclerView和ListView的异同 AsyncTask源码分析 插件化技术 自定义控件 事件分发机制 ANR问题 Art和Dalvik的区别 Android关于OOM的解决方案 Fragment Activity&Fragment SurfaceView...
这样做的好处很多,既可以减少内存的使用,又可以减少部分工作量,也可以缩减程序安装包的大小。 下面从几个方面来介绍如何利用系统资源。 1)利用系统定义的id 比如我们有一个定义ListView的xml文件,一般的,我们...