美文网首页
Android项目中的优化 -- 内存优化

Android项目中的优化 -- 内存优化

作者: gzfgeh | 来源:发表于2018-02-05 23:52 被阅读18次

    0 内存泄漏

    • LeakCanary工具
      LeakCanary是大名鼎鼎的square出的一款开源的用来做内存泄露检测的工具
      具体用法看上面链接,整体用下来就这一个就可以了,很强大!
    • 单例模式中内存泄露,比如static的context
    • 注册的接口、观察者模式等add/remove没有成对出现导致的内存泄露
    • cursor、file io等流接口忘记关闭导致的内存泄露
    • Handler、AsyncTask等内部类导致的内存泄露
    • bitmap回收,集合中对象回收,webview销毁等情况导致的内存泄露

    1 内存优化

    使用CPU GPU Memory Montor等AS自带工具,来时刻观察内存使用情况,使用HPROF Viewer & Analyzer来分析hprof文件

    • java语法层面
      比如String StringBuffer StringBuilder,“1” 不是来源对象就用String,否则StringBuilder,线程安全就是StringBuffer
    • 数据结构
      SparseArray、LongSparseArray、ArrayMap等代替HashMap,前提是数据量不大在千个级别,因为避免了自动装箱,使用了二分查找等方法,所以效率高
    • 根据业务情况选择数据结构
      比如数据新增、删除比较多就用LinkedList,动态数据访问比较多就用ArrayList
    • 根据业务情况选择算法
      普通遍历、二分查找、快排等
    • 避免创建不必要的对象
      比如循环中避免创建大量不可变对象,使用缓存来避免创建大量对象
    • 尽量不用浮点型
    • 未完待续

    相关文章

      网友评论

          本文标题:Android项目中的优化 -- 内存优化

          本文链接:https://www.haomeiwen.com/subject/exjwzxtx.html