前段时间在学习 JNI 和性能优化相关的知识,这里面涉及的点真的是太多了。
- C/C++ 、操作系统基础知识
- 如何检测 Native Crash ?使用信号需要注意什么?如何获取函数堆栈信息?
- 如何 Hook 系统函数?比如发生 ANR 时如何获取系统日志信息?
- 如何绕过系统限制调用系统方法?比如 KOOM 是如何实现暂停和恢复线程的?
很多优秀的开源库已经实现了上述功能,如 xCrash、xHook、xDL(蔡克伦🐮🍺)、KOOM、Matrix 等。实际开发中,我们可以直接拿来用,但是还是很有必要学习了解其中的基础知识及其原理。这样才能得心应手,或者二次开发自定义功能。
下面总结了一个大纲,如有遗漏后面会补充,接下来就是慢慢完善,希望有更多的人一起学习交流,也希望能给学习 JNI 和性能优化的小伙伴提供一些帮助,少走一些弯路。