安卓性能优化相关的知识点(持续更新)

本文详细解析了Java在安卓系统中的内存管理机制,包括内存分配策略、垃圾回收机制及内存泄漏的原因与解决方法,强调了单例模式下避免内存泄漏的技巧。

1.安卓系统会为每个app分配一定的内存让用户的app去运行,一开始的时候是8M,随着手机性能越来越好,现在有16M,32M,64M

2.与C++ 和C不同,java有自己的垃圾回收机制,所以我们要保证自己的代码要符合垃圾回收的规则,这样才能减少内存泄漏

3.内存不在掌控之内,也就是当一个对象已经不再使用,本该回收时,有另外一个正在使用的对象持有他的引用,从而导致第一个对象不能被回收停留在堆内存中,这就产生了内存泄漏

4.GC运行时会停止

5.内存分配的几种策略

(1).静态数据:静态存储区。主要存储静态数据和常量。程序编译时就已经分配好,这块内存在程序整个运行期间一直存在

(2).栈式:函数(方法)内部变量都可以在上面存储,函数执行结束时这些存储单元会被释放掉。栈内存运行速度很快,内置到处理器里边,存储容量有限。栈式连续的存储区域

(3).堆式的:也叫作动态内存分配,一般通过new来申请分配。GC的主要活动区域。堆是不连续的存储区域

6.成员变量全部存储在堆内存中(包括引用数据类型和引用对象的实体以及基本数据类型)----因为他们属于类,类最终是被new出来的

7.单例模式导致的内存泄漏:首先要使用application的context,然后单例类中要使用context.getApplicationContext()这样即使传递的是activity的context也不会导致内存泄漏

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值