Android studio 4.1.1上Memory Profiler的使用

Posted zhangjin1120

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android studio 4.1.1上Memory Profiler的使用相关的知识,希望对你有一定的参考价值。

基本介绍

  • 点击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。

以上是关于Android studio 4.1.1上Memory Profiler的使用的主要内容,如果未能解决你的问题,请参考以下文章

ButterKnife简单使用(Android studio 4.1.1)

Android Studio 4.1.1“运行”不编译代码

delphi XE6 进行android开发关于真机使用EDIT或者MEMO出现假死重启问题。

使用 chaquopy 的 android studio 不支持 Python 模块

delphi xe10 安卓设备信息

如何在mac上安装android studio