zoukankan      html  css  js  c++  java
  • Android内存优化相关

    Android的内存管理方式

    • Android系统内存分配与回收方式
      • 一个APP通常就是一个进程对应一个虚拟机
      • GC只在Heap剩余空间不够时才去垃圾回收
      • GC触发时,所有线程都会被暂停!!!
    • APP内存限制机制
      • 每个App分配的最大内存限制,随设备不同而不同
      • 吃内存大户:图片
      • 为什么要限制?
    • 切换应用时后台APP清理机制
      • APP切换时的LRU Cache
        • LRU算法:最近使用的排在最前面,最少的可能被清理掉
      • GC时,清理时会执行onTrimMemory()回调方法

    Android系统内存分配与回收方式

      adb shell : 进入Android底层Linux系统命令;

      ps :查看系统里面进程的命令;

      dumpsys meminfo com.xxx.xxx :查看进程的相关信息

    APP内存优化方法

    • 数据结构
      • 频繁字符串拼接用StringBuilder
      • ArrayMap、SpareArray替换HashMap
      • 内存抖动
      • 再小的Class耗费0.5KB
      • HashMap一个Entry需要额外占用的32KB
    • 对象复用
      • 复用系统自带的资源
      • ListView/GridView的convertView复用
      • 避免在onDraw()方法里面执行对象的创建
    • 避免内存泄漏
      • 由于代码瑕疵,导致这块内存,虽然是停止不用了,但依然被其他东西引用着,导致GC无法回收它
      • 内存泄漏会导致剩余可用Heap越来越少,频繁触发GC  
  • 相关阅读:
    信息量
    MVC4的实战:排球计分(一)(综述)
    排球计分规则3.17
    观后感-----怎样成为一个高手
    本学期最后一个博客
    第五组作业
    个人作业
    第五组作业
    个人作业
    一周的总结
  • 原文地址:https://www.cnblogs.com/jooy/p/9048720.html
Copyright © 2011-2022 走看看