当前位置: 首页 > news >正文

adb shell dumpsys 命令 查看内存

       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就很有可能会出现了。

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

 

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

http://stackoverflow.com/questions/2298208/how-to-discover-memory-usage-of-my-application-in-android/2299813#2299813

 /**
* @author 张兴业
* 邮箱:xy-zhang#163.com
* android开发进阶群:278401545
*
*/

转载于:https://www.cnblogs.com/xyzlmn/archive/2011/11/22/3168149.html

相关文章:

  • hibernate连接Mysql中文乱码处理
  • very_confusing
  • HDOJ4070
  • apche IIS .htaccess httpd.ini Rewrite RewriteRule详解
  • 60个数据窗口技巧(转)
  • Android基础之Android硬件
  • VIM之Project 项目管理工具
  • 复制构造函数与禁止复制即函数值传递的原理
  • 基于MINA构建简单高性能的NIO应用-一个简单的例子
  • 【分析最原始验证码生成】HTTP请求处理程序
  • 托盘程序(WinForm)
  • kindle3 入手感受
  • C# 线程手册 第一章 线程定义
  • 1175 - 连连看
  • [恢]hdu 2082
  • 「译」Node.js Streams 基础
  • 【笔记】你不知道的JS读书笔记——Promise
  • 2017 年终总结 —— 在路上
  • Brief introduction of how to 'Call, Apply and Bind'
  • Java 多线程编程之:notify 和 wait 用法
  • java8 Stream Pipelines 浅析
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • text-decoration与color属性
  • Twitter赢在开放,三年创造奇迹
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 判断客户端类型,Android,iOS,PC
  • 怎么将电脑中的声音录制成WAV格式
  • 【干货分享】dos命令大全
  • Java总结 - String - 这篇请使劲喷我
  • Python 之网络式编程
  • # 计算机视觉入门
  • #define、const、typedef的差别
  • #etcd#安装时出错
  • #stm32驱动外设模块总结w5500模块
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (转)h264中avc和flv数据的解析
  • (转载)PyTorch代码规范最佳实践和样式指南
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • @font-face 用字体画图标
  • @vue/cli脚手架
  • [ Linux ] git工具的基本使用(仓库的构建,提交)
  • [ vulhub漏洞复现篇 ] Grafana任意文件读取漏洞CVE-2021-43798
  • [⑧ADRV902x]: Digital Pre-Distortion (DPD)学习笔记
  • [C/C++]数据结构 堆的详解
  • [C++] Boost智能指针——boost::scoped_ptr(使用及原理分析)
  • [C++]指针与结构体
  • [flask] flask的基本介绍、flask快速搭建项目并运行
  • [HJ73 计算日期到天数转换]
  • [Latex学习笔记]数学公式基本命令
  • [leetcode] 66. 加一
  • [leetcode]114. Flatten Binary Tree to Linked List由二叉树构建链表
  • [LeetCode]-Pascal's Triangle III 杨辉三角问题
  • [LeetCode]-Spiral Matrix III 螺旋矩阵