《 Android 高性能编程》——第 4 章:内存

版权声明:转载请标明出处「OneDeveloper」 https://blog.csdn.net/OneDeveloper/article/details/80066802

1、内存共享 P104 - 105

Android 中的每个应用程序都有自己的进程。

每个新进程都是由 Zygote 进程派生而来( fork )的,目的是使得应用程序快速启动,因为 Zygote 进程一直存在于内存之中,fork 过来便可直接使用它的一些资源,减少加载时间。而且,并不是所有资源 fork 过来,一些公共的资源是跨进程共享的(利用的是 paging(分页) 与 memory-mapping(内存映射)技术),从而达到内存共享的目的,所以说 Zygote 进程在不同进程及应用程序之间是共享的。

2、运行时与即使编译 P105 - 107

这里写图片描述
这里写图片描述
这里写图片描述

3、Android N 对内存管理的限制 P109 - 110

这里写图片描述

4、最佳实践部分 P111 - 162

(1)尽量使用所占 bit 小的数据类型

(2)使用 Sparse 数组集避免包装数据类型的拆装箱
这里写图片描述
(3)使用 AddayMap 代替 HashMap(API Level 19 引入, 在 v4 兼容包存在兼容实现)

(4)对于集合的迭代尽量用 for 循环

(5)用 Android 提供的 @XXXDef 注解代替不同类型的枚举

(6)对于基本类型与字符串静态变量,用 final 修饰可以减少内存分配与额外操作

(7)字符串的连接考虑 StringBuilder\StringBuffer

(8)对于数组与集合的选择多仔细考虑

(9)及时关闭各种流(如 InputStream 等)的操作,释放资源

(10)使用对象池模式减少对象的重复创建与垃圾回收

(11)使用享元模式共享某一相同状态的对象,减少载入内存的量

(12)使用弱引用、软引用等避免某些内存泄漏问题

猜你喜欢

转载自blog.csdn.net/OneDeveloper/article/details/80066802
今日推荐