内容纲要
• 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去处理
分享到:
相关推荐
1. **ListView优化策略** - **ViewHolder模式**:为了解决ListView滚动时频繁创建与销毁视图导致的性能问题,我们可以使用ViewHolder设计模式。这个模式缓存了视图的引用,减少了findViewById()的调用次数,提高了...
5. **ListView的复用机制**:ListView的视图复用是其核心优化之一,通过convertView参数在`getView()`方法中重用已创建的View,避免为每个列表项创建新的对象,减少内存开销。 6. **延时加载(Lazy Loading)**:只...
本篇文章将深入探讨ListView与BaseAdapter的工作原理,并详细介绍如何进行性能优化。 首先,我们来理解一下Adapter在Android中的作用。Adapter是连接数据源和UI组件的桥梁,它负责将数据转化为可显示的视图。在...
1. **ViewHolder模式**:这是ListView优化的核心。通过复用convertView,避免频繁创建新的View对象。ViewHolder模式确保了每个item的视图状态在滚动时能得到快速恢复,降低了内存分配和对象创建的开销。在`getView()...
为了优化 ListView 的性能,我们可以使用 convertView 机制,将已经显示的视图缓存在内存中,以便在下一次显示时直接使用。同时,我们还可以使用 ViewHolder 模式,使用一个固定的视图 holder 来保存视图的状态,...
ViewHolder设计模式是ListView优化的关键。它的主要思想是减少findViewById()的调用次数,提高视图查找的效率。在getView()方法中,我们通常会通过convertView参数获取到一个已经创建过的视图,如果这个视图可以复用...
1. **使用ViewHolder模式**:这是ListView优化的核心,通过复用convertView来减少 findViewById 的次数,提高性能。ViewHolder类存储了ListView项布局中的各个视图引用,当需要创建新视图时,直接从ViewHolder中获取...
ViewHolder模式是ListView优化的核心技巧,它可以避免在滚动时频繁地创建和查找视图对象。通过创建一个ViewHolder类来持有每个列表项视图中的子视图引用,并在getView()方法中重用已存在的ViewHolder,可以显著减少...
综上所述,CocosCreator的ListView优化涉及到多方面的策略,包括复用机制、数据绑定、异步加载、绘制优化等。通过使用`GListView.js`这样的扩展库,开发者可以更好地控制ListView的行为,提高应用在处理大量数据时的...
本示例“listview优化图片缓存例子”将详细介绍如何利用缓存策略来提高ListView加载图片的效率。 一、图片缓存的重要性 在ListView中,由于屏幕空间有限,只有部分列表项可见。当用户滚动时,一些不再可视的列表项...
本教程将通过"最经典的listView优化demo",为初学者提供一份详尽的Android ListView适配器优化实践。 首先,我们要理解ListView的工作原理。ListView采用了一种叫做“视图复用”的机制,即只有当前屏幕可见的几项...
总结,ListView优化主要包括视图复用、适配器优化、ViewHolder模式、数据分页加载等,而`SwipeRefreshLayout`提供了便捷的下拉刷新功能。通过这些策略,我们可以使ListView在处理大数据量时仍保持流畅,提供更好的...
ListView优化** ListView的优化主要涉及以下几个方面: 1.1 **convertView复用机制**:ListView的Adapter中,`getView()`方法会创建并填充新的视图,但为了提高性能,应充分利用convertView,通过`convertView....
然而,如果不进行适当的优化,ListView可能会遇到性能问题,比如滚动不流畅、内存泄漏等。本攻略将深入探讨ListView的优化策略以及异步加载技术,以确保用户体验的顺畅。 一、ListView的基本优化 1. 使用...
本示例“ListView高级部分,性能优化的demo”将深入探讨六个关键领域的优化策略,帮助开发者提升ListView的运行效率,提供更好的用户体验。 1. **ViewHolder模式**:这是ListView性能优化的核心。通过复用已创建的...
这篇博客“ListView性能优化系列之一”着重探讨了如何通过深入理解源码和利用特定工具来提升ListView的性能。 首先,了解ListView的工作原理是优化的基础。ListView采用的是滚动复用机制,即“视图回收”...
然而,由于其默认的机制,如果不进行适当的优化,ListView可能会导致性能问题,比如卡顿、内存泄漏等。本篇文章将详细探讨如何通过自定义View来优化ListView,提高用户体验。 首先,理解ListView的工作原理至关重要...
以下是对"ListView优化示例源码"的详细解读。 1. **复用机制**:ListView的核心优化策略是视图复用,即`convertView`。在`getView()`方法中,如果传入的convertView不为空,那么我们就可以复用这个已经创建过的视图...
ViewHolder模式是ListView优化的核心策略之一。它通过缓存convertView中的子View,减少findViewById()的调用次数,从而提升性能。创建一个ViewHolder类,持有ListView每一项所需的视图引用,然后在getView()方法中...
文件"ListView"可能是示例代码,包含了一个简单的ListView应用实例,包括JSON解析、Adapter实现、ListView优化、图片加载和子控件点击事件处理等功能。通过查看和学习这个代码,你可以更好地理解和掌握上述知识点。...