Android studio 4.1.1上Memory Profiler的使用

本文介绍如何使用Android Studio的Profiler工具进行内存分析,包括点击Profiler、选择进程和内存分类的方法,并展示了HelloWorld应用运行过程中的内存变化情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基本介绍

  • 点击Android studio底部的Profiler

  • 选择当前进程

  • 选择“full”,否则白色虚线出不来,Allocated会显示“N/A”。
    在这里插入图片描述

  • 点击垃圾桶符号,可以强制GC

  • 缩放时间轴

不同内存分类的意思:
  • java 从java或kotlin代码分配的对象,所占的内存。
  • Native 从C/C++代码分配的对象,所占的内存。
  • Graphics 图形换出去队列,向屏幕显示像素所使用的内存。
  • Stack 应用中的原声栈和Java的栈使用的内存。它的大小与应用运行多少线程有关。
  • Code 处理代码(dex字节码,so库)和资源(图片、字体)的内存。
  • Others 系统不确定如何分类的内粗。
  • Allocated 应用分配的java或kotlin对象数量,这个数字不包含c/c++对象。

运行一个HelloWorld看看

  • 启动运行内存峰值:71.4M,native占到51.4M,java对象是3518个。

  • 紧接着内存迅速下降到:52.1M, native减少到32.1M,Java对象个数没变,说明C++对象数量减少了。

  • 30s后(时间不一定,页可能是1分钟后)进入平稳:47.8MB,native继续减少到27.7MB,java对象个数还是没有变。此时MainAcitivity的个数为1,TextView对象个数为2(helloworld和标题)。


  • 点击返回键,App退出。GC立即执行了, java对象减少很快。再试一次,java对象并没有减少多少。可以看出按返回键,进程并没有退出,内存仍然存在。

  • 再来一次强制GC,呀呵,内存还是没啥变化。

  • 执行命令adb shell am force-stop com.example.helloworld2,强杀进程,内存急剧下降为0。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhangjin1120

可靠的文章费时费力,希望支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值