android程序内存被分为2部分:native和dalvik,dalvik就是我们平常说的java堆,我们创建的对象是在这里面分配的,而bitmap是直接在native上分配的,对于内存的限制是 native+dalvik 不能超过最大限制。android程序内存一般限制在16M,当然也有24M的。
      用以下命令可以查看程序的内存使用情况:
      adb shell dumpsys meminfo $package_name or $pid    //使用程序的包名或者进程id
      用com.tencent.qqpimsecure为例:

具体每一项代表什么,参考:http://stackoverflow.com/questions/2298208/how-to-discover-memory-usage-of-my-application-in-android#2299813,我们比较关心的是这2行:

其中size是需要的内存,而allocated是分配了的内存,对应的2列分别是native和dalvik,当总数也就是total这一列超过单个程序内存的最大限制时,OOM(全称“Out Of Memory”,翻译成中文就是“内存用完了”)就很有可能会出现了。

多数时候,发生OOM 都是在做一些跟图片相关的操作,以下提出一些建议尽量可以减少这种情况的发生:

  1. 1.decode bitmap 的时候,尽量配置下Options,例如:inSameSize
  2. 2.Bitmap使用完以后,调用 bitmap.recycle()来释放内存
  3. 3.如果应用是基于图片的应用,尽量采用LazyLoad和DymanicRecycle
  4. 4.decode bitmap 的时候,将decode代码 try catch 出来,catch oom error,避免程序crash,可以在catch里面做一些释放内存操作

https://stackoverflow.com/questions/2298208/how-do-i-discover-memory-usage-of-my-application-in-android#2299813
https://blog.csdn.net/qq_27061049/article/details/90549757

adb shell dumpsys 命令 查看内存相关推荐

  1. adb shell dumpsys 命令 查看内存是否泄露

    android程序内存被分为2部分: native和dalvik,dalvik就是我们平常说的java堆,我们创建的对象是在这里面分配的,而bitmap是直接在native上分配的,对于内存的限制是 ...

  2. 【转载】adb shell dumpsys 查看内存

    android程序内存被分为2部分:native和dalvik,dalvik就是我们平常说的java堆,我们创建的对象是在这里面分配的,而bitmap是直接在native上分配的,对于内存的限制是 n ...

  3. adb命令获取sys_adb shell dumpsys 命令

    出发点一: Android 引入了「任务栈」的概念,这个概念对于 Android 设备上的返回按键有极其重要的联系.有时候按下返回按钮或者点击关闭当前 Activity 的操作,都不知道 Androi ...

  4. Android内存泄漏查找和解决adb shell dumpsys meminfo packagement

    1.通过adb shell dumpsys meminfo packageName来查看内存使用状况 在没有打开应用的情况下,该命令返回的数据是这样的: 2.打开这个应用的MainActivity,再 ...

  5. adb shell dumpsys 使用命令和来源

    一.概述 adb shell dumpsys 在Android开发中经常要用到,平时都是零碎的积累,用到什么的时候就 记录下来,最近看了一些资料,发现可以汇总所有的命令,当带某个参数的时候,就可以查看 ...

  6. adb 输入回车命令_adb adb shell 相关命令

    在Mac上配置adb命令 在Mac OS中使用adb命令时,应进行变量配置,步骤如下: 一.终端中输入 cd ~ 二.输入touch .bash_profile 回车 touch:如果没有,则创建文件 ...

  7. adb shell常用命令收录

    一.文件操作相关命令 1.文件操作命令 子命令 参数 说明 cd 无 进入目录 cat [-beflnstuv] [-B bsize] [file...] 查看文件内容 -n:显示行号 -b:显示行号 ...

  8. 详解adb shell 常用命令

    一.文件操作相关命令 1.文件操作命令 子命令 参数 说明 cd 无 进入目录 cat [-beflnstuv] [-B bsize] [file...] 查看文件内容 -n:显示行号 -b:显示行号 ...

  9. 移动端 - adb shell常用命令

    一.文件操作相关命令 //进入设备 adb shell //进入指定目录"/data/local/tmp" cd /data/local/tmp //查看目录 ls //进入根目录 ...

最新文章

  1. eclipse team 没有svn
  2. 【Google Play】IARC 年龄分级 ( IARC 国际年龄分级联盟 | Google Play 设置应用年龄分级 )
  3. java在src创建entity文件_java自动生成entity文件
  4. React Native基础入门教程:初步使用Flexbox布局
  5. 【附源码】为了帮助程序员谈恋爱,我做了这个APP
  6. java安卓开发 项目实例_Java系列--第七篇 基于Maven的Android开发实战项目
  7. 现代西班牙语第一册 单词表
  8. 项目3抽象类与纯虚函数
  9. 香港特首到访阿里,她是来看几个年轻人的……
  10. 视频教程-EXCEL VBA编程(excel办公高手必经之路)-Office/WPS
  11. 油菜花系统服务器能删除内容吗,油菜花能吃吗,油菜花有什么用
  12. git Untracked Files Prevent Merge (merge)拉取代码失败
  13. VMware虚拟机安装macos Big Sur 11.5 (20G71)教程镜像CDR/ISO下载
  14. VS2015+caffe+matlab+python+CPU
  15. 码流、码率、比特率、帧速率、分辨率、 高清的区别
  16. php设计模式-Ioc(控制反转)和Di(依赖注入)
  17. scrollY,scrollTo
  18. xm-select 二级联动 layui
  19. python 绘制BA图, 绘制Bland-Altman, 两个连续变量的一致性分析
  20. 2019上JAVA第四周实验报告

热门文章

  1. 讨厌别人不写注释,但自己也不爱写?那么试试这个IDEA的注释插件吧!
  2. 皮一皮:原来程序员也是要看天赋的...
  3. Java 中的 BigDecimal,你真的会用吗?
  4. Java 中这个叫 Future 的东东,你用过嘛?
  5. 面试5家公司,我发现这80道面试题最好用,直中要害
  6. 24 年前的 IE 仍能在 Win10中运行,这无敌兼容性与你的代码比比?
  7. 中国式微服务技术栈2.0
  8. C语言13567星号如何输出,c语言程序编程心得
  9. linux下内存测试mbw,【转帖】MBW内存测试
  10. 帝国cms内部会员组的使用方法以及应用场景