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

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也不会导致内存泄漏

猜你喜欢

转载自blog.csdn.net/qq_15867901/article/details/86551244
今日推荐