位置: 编程技术 - 正文

Android内存分析工具(android profiler内存分析)

编辑:rootadmin
Android的一些内存知识垃圾回收(GC)

推荐整理分享Android内存分析工具(android profiler内存分析),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:android profiler内存分析,android内存分析APP,android内存分析APP,android内存分析APP,android内存分析APP,android内存分析APP,android内存分析APP,android内存分析加密算法,内容如对您有帮助,希望把文章链接给更多的朋友!

垃圾回收包含两个过程:

判定阶段,也就是判断哪些对象可以被回收,收集阶段,是指具体的回收策略。

判定阶段主要有两种方式

引用计数,对象每多一个引用计数加1,少一个引用计数减1,计数为0时就表示这个对象可以被回收了。但是引用计数有个缺点,不能判断循环应用的情况,所以就有了下面的方式根搜索,从一些根对象(GCRoot)开始遍历搜索,如果一个对象无法被搜索到,说明这个对象可以被回收了。 可以作为GCRoot的对象: 1 一些虚拟机栈中的对象;2 方法区中的类静态属性对象;3 方法区中的常量对象;4 Native栈中JNI的引用对象

收集阶段主要有四种方式

标记清除,最简单的算法,讲标记好的对象直接清除,速度快,但效率不高,内存碎片复制算法,每次使用可用内存的一半,收集时将可用对象复制到另一半内存,回收这一半标记整理,将存活对象整理到内存区域的一端,剩余部分回收分代回收,将内存区域按对象存活周期划分为青年代和老年代等,不同区域采用上面不同的收集算法。Dalvik与ART

Android5.0 之前使用Dalvik虚拟机,之后使用ART虚拟机,下面是一些比较:

Dalvik在运行时将字节码转换为机器码,ART在安装的时候就转换为机器码,这样安装好的应用会占用更大的空间,但是运行时少了转换的时间,所以运行更快ART提供了更好的垃圾回收表现,将垃圾回收时,程序的暂停次数由两次(分析、清理)减少到一次;程序暂停时,并行的进行垃圾回收处理;回收新近分配的、生命期短的对象,垃圾回收器花费的时间更少Android内存分析工具Memory Monitor

GC操作需要暂停其他线程,因此短时间频繁的GC会对UI线程产生影响,导致频繁GC一般有两种情况,

大量的对象被创建又在短时间内马上被释放,比如在View的onDraw方法中创建对象Young Generation的内存区域达到阀值,剩余空间不够的时候,也会触发频繁GC

Android Studio提供了Memory Monitor来实时显示应用运行时内存占用情况,下边蓝色部分是现在占用的内存,上面灰色的部分显示是已回收的内存。如果在图上看到尖峰,也就是快速分配内存又被回收,也就是发生了内存抖动,这里就是需要优化的地方。

Allocation Tracking

Allocation Tracking是DDMS中提供内存工具,用来显示一段时间内的内存分配情况。

Android内存分析工具(android profiler内存分析)

选择要跟踪的进程名,点击Start Tracking开始跟踪,做一些操作后点击Get Allocations就可以将这段操作中新分配的对象显示出来,点击具体的对象可以在下面看到是哪一个方法分配的这个对象。

Heap Tool 与 MAT

Heap Tool可以查看当前的内存快照

从数据里可以看到当前内存的占用和回收情况,每次垃圾回收这里的数据都会更新,因为会不断获取内存数据刷新显示,所以这时候对应用操作会出现卡顿。 Heap Tool提供的是一个内存的总体情况,图表显示的内容比较简单,如果要具体分析的话最好生成.hprof文件,使用MAT工具进行分析。

关于MAT工具的使用已经有很多介绍,google官方曾经写过一个使用介绍 memory leak detection library for Android and Java. 项目地址: 在build.gradle文件中添加

在应用的Application onCreate方法中添加LeakCanary.install(this),如下

应用运行起来后,LeakCanary会自动去分析当前的内存状态,如果检测到泄漏会发送到通知栏,点击通知栏就可以跳转到具体的泄漏分析页面。

Tips:就目前使用的结果来看,绝大部分泄漏是由于使用单例模式hold住了Activity的引用,比如传入了context或者将Activity作为listener设置了进去,所以在使用单例模式的时候要特别注意,还有在Activity生命周期结束的时候将一些自定义监听器的Activity引用置空。

关于LeakCanary的更多分析可以看项目主页的介绍,还有这里

Android与蓝牙串口模块通信 由于项目的需要Android与蓝牙模块通信,发了时间学习了下,实现了Android与蓝牙模块的通信1.蓝牙串口模块使用SPP-CA模块蓝牙串口模块就是使用单片机的T

照片选择器 multiimageselector packagecom.me.nereo.multiimageselector;importandroid.content.Intent;importandroid.support.v7.app.ActionBarActivity;importandroid.os.Bundle;importandroid.text.TextUtils;importandroid.view.Menu;importan

Android 退出整个应用程序 三步走1、建立一个JAVA类importjava.util.LinkedList;importjava.util.List;importandroid.app.Activity;importandroid.app.Application;publicclassSysApplicationextendsApplication{privateListActivity

标签: android profiler内存分析

本文链接地址:https://www.jiuchutong.com/biancheng/376614.html 转载请保留说明!

上一篇:[置顶] android人脸识别——HowOld测测你的年龄和性别([置顶]游戏名:chivalry2)

下一篇:Android与蓝牙串口模块通信(android蓝牙连接过程)

  • 库存股是什么科目的备抵
  • 文化建设税减免到什么时候
  • 椅子坐垫有用吗
  • 商业汇票到期没有收到款
  • 母子公司往来明细账正反面都可以写吗
  • 薪金性支出包括什么
  • 纳税表不得抵扣什么意思
  • 固定资产做错了怎么办
  • 金税盘地区编号怎么查
  • 一般纳税人不开票收入怎么填增值税申报表
  • 短期筹资方式有没有股票
  • 税费返还怎么做会计科目
  • 开专票红冲是不是双方都要开信息表
  • 应扣未扣税款向谁追缴
  • 信用证保证金是什么意思
  • 购进固定资产汽车该如何进行会计处理?
  • 未办理三证合一营业执照会注销吗
  • 一般纳税人注销公司流程2023
  • 增值税小规模纳税人免征增值税政策
  • 税控盘超期还能清卡吗
  • 跟银行借款按月还款
  • 汇算清缴工资填哪个数
  • mac菜单栏设置在哪里
  • 笔记本怎么按出键盘
  • 财政专项补助资金企业所得税申报
  • 公司向股东借款合法吗
  • 网关设置
  • 房地产开发企业分为几个等级
  • 鸿蒙系统2.0怎么升级3.0
  • 无法访问您可能的网络
  • PHP:stream_context_get_options()的用法_Stream函数
  • 栀子花叶子发黄是什么原因
  • 农村土地承包经营权证丢失怎么补办
  • 技术转让所得的税收优惠
  • 记账凭证摘要是什么意思
  • 纳税人辅导期申报流程
  • yii框架教程
  • mysql触发器创建
  • 公司买办公用品是谁的工作
  • 季度所得税申报怎么弥补以前年度亏损
  • 不同会计制度资产负债表金额不一样
  • java一天速成
  • 一条sql在mysql中经过怎样的过程
  • 织梦系统
  • python怎么用
  • 定期定额自行申报表应税项填多少
  • 合营企业和联营企业是关联方吗
  • 成本核算的科目有哪些
  • 个人销售商品交什么税
  • 入库单入账税务会查吗
  • 税率变更对企业的影响
  • 房地产开发公司注册资金要求
  • 城镇土地使用税暂行条例
  • 食堂采购原材料怎么在赣溯源备案
  • 应付账款期初期末
  • 营改增后如何纳税
  • 公司买茶具帐务处理流程
  • sqlserver怎么创建临时表
  • mysql 5.7.11 winx64安装配置方法图文教程
  • SqlServer 2000、2005分页存储过程整理第1/3页
  • mysql分组后取最新的一条记录
  • windows不兼容
  • linux如何挂载iso文件
  • Win10打开设备管理器
  • s24evmon.exe - s24evmon是什么进程 有什么用
  • xpcpu占用100
  • lsm.exe是什么程序
  • win10桌面上怎么分成几个区域
  • win8设备管理器没有端口
  • honey contil
  • perl脚本输出变量
  • cocos2dx-3.0(23) ScrollView 缩放 及 touch新用法
  • android学什么
  • 国税局和税务局合并
  • 小规模无票收入怎么报税
  • 入职培训结束寄语
  • 廉政谈话什么是廉政?
  • 美丽重生李晓晓免费阅读
  • 水库淹没区耕地补偿标准
  • 资源税是对在我国
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设