zoukankan      html  css  js  c++  java
  • Android:内存优化的一些总结

    ______________________摘录于:http://www.cnblogs.com/yezhennan/p/5442557.html____________________

    1.大图片的处理

    Bitmap bmp = BitmapFactory.decodeFile(sourceBitmap, options); 

    2.图片使用完毕之后记得回收内存

     !bitmap.isRecycled()   --->bitmap.recycle();  bitmap = null;  

    3.图片缓存 LruCache

    4.线程池 Excutors 

    /** 每次只执行一个任务的线程池 */  
    ExecutorService singleTaskExecutor =  Executors.newSingleThreadExecutor();  
      
    /** 每次执行限定个数个任务的线程池 */  
    ExecutorService limitedTaskExecutor = Executors.newFixedThreadPool(3);  
      
    /** 所有任务都一次性开始的线程池 */  
    ExecutorService allTaskExecutor = Executors.newCachedThreadPool();  
      
    /** 创建一个可在指定时间里执行任务的线程池,亦可重复执行 */  
    ExecutorService scheduledTaskExecutor = Executors.newScheduledThreadPool(3);

    5.convertView的缓存处理

    6.curosr i/o 注册广播 bindservice 注册一些监听器记得注销掉.

    --------------------------------------------------------------------------------------------------------------------------------------------------

    其他小tips:

    1. 分辨率适配-ldpi,-mdpi, -hdpi配置不同精度资源,系统会根据设备自适应,包括drawable, layout,style等不同资源。

    2.尽量使用dp(density independent pixel)开发,不用px(pixel)。

    3.多用wrap_content, match_parent

    4.永远不要使用AbsoluteLayout

    5.使用9patch(通过~/tools/draw9patch.bat启动应用程序),png格式

    6.将Acitivity中的Window的背景图设置为空。getWindow().setBackgroundDrawable(null);android的默认背景是不是为空。

    7.View中设置缓存属性.setDrawingCache为true。

    Desgin Review(设计检查):

    Desgin Review主要侧重检查一下程序的设计是否合理,包括框架的设计,界面的设计,逻辑的设计(其实这些东西开发之前就应该想好了)。

    框架设计:

    是否定义了自己的Activity和fragment等常用控件的基类去避免进行重复的工作

    是否有完善的异常处理机制,即使真的出现OOM也不会直接崩溃导致直接退出程序

    界面设计:

    1.在视图中加载你所需要的,而不是你所拥有。因为用户不可能同时看到所有东西。最典型的例子就是ListView中的滑动加载。

    2.如果数据特别大,此时应该暗示用户去点击加载,而不是直接加载。

    3.合理运用分屏,转屏等,它是个双刃剑,因为它即可以使程序更加美观功能更加完善,但也相应增加了资源开销。

     

    逻辑设计:

    避免子类直接去控制父类中内容,可以使用监听等方式去解决

  • 相关阅读:
    Flask 应用上下文
    request 的介绍使用属性
    Session 常见操作
    cookie 常用操作
    Python三大web框架简单介绍
    Flask 入门
    类与类之间的关系
    request、response 中文乱码问题与解决方式
    JAVA笔记
    MySQL导入大sql 文件大小限制问题的解决
  • 原文地址:https://www.cnblogs.com/tinyclear/p/6208950.html
Copyright © 2011-2022 走看看