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)
delphi XE6 进行android开发关于真机使用EDIT或者MEMO出现假死重启问题。