Android笔记——内存泄露总结

本文介绍了Android中的内存概念,重点解析了内存泄露的原因及其在堆内存中的表现形式,并提供了使用Android Studio工具及LeakCanary来定位和解决内存泄露的方法。

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

一 什么是内存泄露

首先,在Android中我们所说的内存指的是Android系统分配给APP的内存的大小。对于不同的手机型号,对应的的不同ROM所分配的内存大小是不同的。PS:Android手机属于RAM平台。我们的堆栈存储区域就是在RAM中。

Android开发中的内存泄露一般指的是堆内存。我们的new出来的object存储在堆内存中,这些内存由GC进行回收管理。所以所谓的内存泄露,就是GC搞不定内存了。简单说就是GC不知道什么时候回收内存,或者说无法回收内存。

GC机制:Object不在有任何引用的时候就会回收。简单聊一下GC根节点

1 JavaStack中引用的对象。

2 方法区中静态引用指向的对象。

3 方法区中常量引用指向的对象

4 Native方法中JNI引用的对象。

5 活跃的Thread。

 

Object如果在根节点的引用链上,那么它无法被GC回收。如果这个Object我们不使用,但仍然被引用,就造成了内存泄露。

二 如何解决内存泄露

 1 Android Studio自带的工具可以简单分析内存泄露的位置。

 2 LeakCanary也可以用来定位内存泄露。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值