Android性能优化之道:从底层原理到一线实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第2章 内存优化实战

本章出现的源码:

1)MAT官网,访问链接为https://eclipse.dev/mat/downloads.php。

2)malloc_debug,访问链接为https://android.googlesource.com/platform/bionic/+/master/libc/malloc_debug/。

3)memory-leak-detector,访问链接为https://github.com/bytedance/memory-leak-detector。

4)Thread.java,访问链接为https://cs.android.com/android/platform/superproject/+/android-14.0.0_r9:libcore/ojluni/src/main/java/java/lang/Thread.java。

5)java_lang_Thread.cc,访问链接为https://cs.android.com/android/platform/superproject/+/android-14.0.0_r9:art/runtime/native/java_lang_Thread.cc。

6)thread.cc,访问链接为https://cs.android.com/android/platform/superproject/+/android-14.0.0_r9:art/runtime/thread.cc。

7)bhook,访问链接为https://github.com/bytedance/bhook。

8)profilo,访问链接为https://github.com/facebookincubator/profilo/tree/main/deps/plthooks。

上一章总结了做内存优化的3条方法论,所有内存优化方案都是围绕着这3条方法论制定的,所以本章会基于这3条方法论,介绍多个优化案例,来加深大家对内存优化的理解。

针对“及时清理数据”方向,本章会介绍“Java内存泄漏检测”和“Native内存泄漏检测”这两种方案;针对“减少数据的加载”方向,本章会介绍“Bitmap治理”这一方案;针对“增加内存大小”方向,本章会介绍“线程栈优化”和“默认webview内存释放”这两种方案。在介绍这些实战方案时,本章也会深入讲解这些方案在落地过程中所使用的技术,如Native Hook技术、字节码插桩技术等,这些都是Android进阶中必须掌握的技术。希望通过本章的学习,读者可以彻底扫清在内存优化方面因基础知识和技术储备不足而产生的障碍,同时也希望读者能举一反三,在这些基础知识和技术的加持下,自己想出更多的内存优化方案。