随笔分类 - Android 内存管理
摘要:在使用Android Studio进行内存泄露分析之前,我们先回顾一下Java相关的内存管理机制,然后再讲述一下内存分析工具如何使用。 一、Java内存管理机制 1. Java内存分配策略 Java 程序运行时的内存分配策略有三种:静态分配、栈式分配和堆式分配。 对应的存储区域如下: 静态存储区(方
阅读全文
摘要:一、Java GC 概念说明 Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代码,对内存泄露和溢出的问题,也不需要像C程序员那样战战兢兢。这是因为在Java虚拟机中,存在自
阅读全文
摘要:一、Android 为何会出现OOM 因为Android系统的硬件资源是相当有限的,而且分配给一个应用的资源更为有限,尤其是内存。当 已使用的内存 + 新申请的内存 > 可分配的内存 的时候, 就会出现OOM。 如果想要获取App的内存使用情况,可以使用以下方法: final int M = 102
阅读全文
摘要:背景 在Android开发过程中,我们经常碰到的情况就是在我们不清楚为什么情况下,程序突然出现Crash了。其中有一类日志相信大家都经常碰到过,这类日志就是OOM相关的日志。这类日志除了我们知道的Bitmap操作的时候会经常导致,还有一种隐藏的较深的原因就是内存泄露(Memory Leak)。 内存
阅读全文
摘要:Java中负责内存回收的是JVM。通过JVM回收内存,我们不需要像使用C语音开发那样操心内存的使用,但是正因为不用操心内存的时候,也会导致在内存回收方面存在不够灵活的问题。 为了解决内存操作不灵活的问题,我们可以通过了解Java的引用方式来解决这个问题。 从JDK1.2版本开始,把对象的引用分为四种
阅读全文