`
hunankeda110
  • 浏览: 746461 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论
阅读更多
  内容纲要



• 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去处理



  
0
0
分享到:
评论

相关推荐

    ListView优化及加载图片时内存溢出

    1. **ListView优化策略** - **ViewHolder模式**:为了解决ListView滚动时频繁创建与销毁视图导致的性能问题,我们可以使用ViewHolder设计模式。这个模式缓存了视图的引用,减少了findViewById()的调用次数,提高了...

    android listview内存优化

    5. **ListView的复用机制**:ListView的视图复用是其核心优化之一,通过convertView参数在`getView()`方法中重用已创建的View,避免为每个列表项创建新的对象,减少内存开销。 6. **延时加载(Lazy Loading)**:只...

    android BaseAdapter listView优化

    本篇文章将深入探讨ListView与BaseAdapter的工作原理,并详细介绍如何进行性能优化。 首先,我们来理解一下Adapter在Android中的作用。Adapter是连接数据源和UI组件的桥梁,它负责将数据转化为可显示的视图。在...

    android之listview优化+分类显示

    1. **ViewHolder模式**:这是ListView优化的核心。通过复用convertView,避免频繁创建新的View对象。ViewHolder模式确保了每个item的视图状态在滚动时能得到快速恢复,降低了内存分配和对象创建的开销。在`getView()...

    ListView性能优化之视图缓存

    为了优化 ListView 的性能,我们可以使用 convertView 机制,将已经显示的视图缓存在内存中,以便在下一次显示时直接使用。同时,我们还可以使用 ViewHolder 模式,使用一个固定的视图 holder 来保存视图的状态,...

    ListView优化

    ViewHolder设计模式是ListView优化的关键。它的主要思想是减少findViewById()的调用次数,提高视图查找的效率。在getView()方法中,我们通常会通过convertView参数获取到一个已经创建过的视图,如果这个视图可以复用...

    ListView的优化及分类显示

    1. **使用ViewHolder模式**:这是ListView优化的核心,通过复用convertView来减少 findViewById 的次数,提高性能。ViewHolder类存储了ListView项布局中的各个视图引用,当需要创建新视图时,直接从ViewHolder中获取...

    Android ListView性能优化

    ViewHolder模式是ListView优化的核心技巧,它可以避免在滚动时频繁地创建和查找视图对象。通过创建一个ViewHolder类来持有每个列表项视图中的子视图引用,并在getView()方法中重用已存在的ViewHolder,可以显著减少...

    listview 优化

    综上所述,CocosCreator的ListView优化涉及到多方面的策略,包括复用机制、数据绑定、异步加载、绘制优化等。通过使用`GListView.js`这样的扩展库,开发者可以更好地控制ListView的行为,提高应用在处理大量数据时的...

    listview优化图片缓存例子

    本示例“listview优化图片缓存例子”将详细介绍如何利用缓存策略来提高ListView加载图片的效率。 一、图片缓存的重要性 在ListView中,由于屏幕空间有限,只有部分列表项可见。当用户滚动时,一些不再可视的列表项...

    最经典的listView优化demo

    本教程将通过"最经典的listView优化demo",为初学者提供一份详尽的Android ListView适配器优化实践。 首先,我们要理解ListView的工作原理。ListView采用了一种叫做“视图复用”的机制,即只有当前屏幕可见的几项...

    ListView优化Demo

    总结,ListView优化主要包括视图复用、适配器优化、ViewHolder模式、数据分页加载等,而`SwipeRefreshLayout`提供了便捷的下拉刷新功能。通过这些策略,我们可以使ListView在处理大数据量时仍保持流畅,提供更好的...

    Android开发之listview优化+图片异步加载缓存+避免图片显示闪烁

    ListView优化** ListView的优化主要涉及以下几个方面: 1.1 **convertView复用机制**:ListView的Adapter中,`getView()`方法会创建并填充新的视图,但为了提高性能,应充分利用convertView,通过`convertView....

    listview优化和异步加载全攻略

    然而,如果不进行适当的优化,ListView可能会遇到性能问题,比如滚动不流畅、内存泄漏等。本攻略将深入探讨ListView的优化策略以及异步加载技术,以确保用户体验的顺畅。 一、ListView的基本优化 1. 使用...

    listview高级部分,性能优化的demo

    本示例“ListView高级部分,性能优化的demo”将深入探讨六个关键领域的优化策略,帮助开发者提升ListView的运行效率,提供更好的用户体验。 1. **ViewHolder模式**:这是ListView性能优化的核心。通过复用已创建的...

    ListView性能优化系列之一

    这篇博客“ListView性能优化系列之一”着重探讨了如何通过深入理解源码和利用特定工具来提升ListView的性能。 首先,了解ListView的工作原理是优化的基础。ListView采用的是滚动复用机制,即“视图回收”...

    listview优化

    然而,由于其默认的机制,如果不进行适当的优化,ListView可能会导致性能问题,比如卡顿、内存泄漏等。本篇文章将详细探讨如何通过自定义View来优化ListView,提高用户体验。 首先,理解ListView的工作原理至关重要...

    ListView优化示例源码

    以下是对"ListView优化示例源码"的详细解读。 1. **复用机制**:ListView的核心优化策略是视图复用,即`convertView`。在`getView()`方法中,如果传入的convertView不为空,那么我们就可以复用这个已经创建过的视图...

    android listview 优化 实例

    ViewHolder模式是ListView优化的核心策略之一。它通过缓存convertView中的子View,减少findViewById()的调用次数,从而提升性能。创建一个ViewHolder类,持有ListView每一项所需的视图引用,然后在getView()方法中...

    解析json实现listview,listView优化、子控件点击事件等实现

    文件"ListView"可能是示例代码,包含了一个简单的ListView应用实例,包括JSON解析、Adapter实现、ListView优化、图片加载和子控件点击事件处理等功能。通过查看和学习这个代码,你可以更好地理解和掌握上述知识点。...

Global site tag (gtag.js) - Google Analytics