`
hunankeda110
  • 浏览: 741315 次
  • 性别: 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优化及加载图片时内存溢出

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

    android listview内存优化

    android listview内存优化 10M图片 没有内存溢出和卡顿线程

    listview优化

    用自定义view实现listview的效果,优化内存

    android 之listview 优化方法

    2、分页加载,这也是优化之一,优化内存,还有体验感,有兴趣的可以试试大数据加载; 3、convertView 就是布局的复用; 4、ViewHolder的使用 目的减少findviewByID的次数; 下面代码验证一下3和4。 public View ...

    listview的checkbox状态保存及内存优化

    解决listview复用checkbox的怪异现象

    ListView的优化

    ListView的优化问题。 为了使界面美观,合理,以及sd卡和内存缓存的问题,做一些优化。

    Android内存优化——常见内存泄露及优化方案.pdf

    主要处理一些有关Android内存泄露案例以及解决方案,比如我们常见的单例模式、listView的的优化

    优化ListView数据

    当GridView或ListVIew每一项显示信息多或者显示图片时,在滚动是不加载资源,当停下来时,加载当前页面显示的几个Item资源,以节省内存资源。

    Listview加载的性能优化是如何实现的

    在android开发中Listview是一个很重要的组件,它以列表的形式根据数据的长自适应展示具体内容,用户可以自由的定义listview每一列的布局,但当listview有大量的数据需要加载的时候,会占据大量内存,影响性能,这时候...

    Android编程使用缓存优化ListView的方法

    主要介绍了Android编程使用缓存优化ListView的方法,涉及ListView针对sd卡缓存及内存缓存的优化技巧,需要的朋友可以参考下

    ListView异步加载图片实现思路(优化篇)

    关于listview的异步加载,网上其实很多示例了,中心思想都差不多,不过很多版本或是有bug,或是有性能问题有待优化。有鉴于此,本人在网上找了个相对理想的版本并在此基础上进行改造,下面就让在下阐述其原理以探索...

    滑动删除 图片优化 瀑布流

    里面有3个相互独立的demo 包含listView 手势滑动删除 图片内存优化 以及瀑布流 绝对的超经典 研究完成可以制作出最主流的炫酷特效

    黑马程序员 安卓学院 万元哥项目经理 分享220个代码实例

    |--内存优化之各种方法 |--内容提供者之短信的序列化对象读写 |--内容提供者之短信的获取与写入 |--内容提供者之联系人读写与批量操作 |--内容提供者之获取通话记录 |--内容提供者的定义 |--写入联系人信息 |--利用...

    Android性能优化参考

    本课程包含了Android中的App启动优化、UI优化、内存优化、图片优化、耗电量等常见的性能优化场景,通过学习此课程,你将对整个Android性能优化体系有清晰的认识。 性能优化作为Android高级开发的必备技能,也是大厂...

    listveiw异步加载之优化版

    RT,listveiw异步加载的优化版,内存+SD卡文件双缓存,涉及LRU算法,无图片显示错乱问题,速度更快滑动更流畅

    HorizontalScrollView

    用HorizontalScrollView实现了水平的Listview,代替Gridview来添加多张图片,并优化了内存。

    最全java面试题.zip

    Android性能优化 ListView详解 RecyclerView和ListView的异同 AsyncTask源码分析 插件化技术 自定义控件 事件分发机制 ANR问题 Art和Dalvik的区别 Android关于OOM的解决方案 Fragment Activity&Fragment SurfaceView...

    Java最全面试题宝典.rar

    Android性能优化 ListView详解 RecyclerView和ListView的异同 AsyncTask源码分析 插件化技术 自定义控件 事件分发机制 ANR问题 Art和Dalvik的区别 Android关于OOM的解决方案 Fragment Activity&Fragment SurfaceView...

    解析Android开发优化之:对界面UI的优化详解(一)

    这样做的好处很多,既可以减少内存的使用,又可以减少部分工作量,也可以缩减程序安装包的大小。 下面从几个方面来介绍如何利用系统资源。 1)利用系统定义的id 比如我们有一个定义ListView的xml文件,一般的,我们...

Global site tag (gtag.js) - Google Analytics