Android Native 内存泄漏系统化解决方案

高德技术小哥 2019-07-12

定位原理/算法 android 前端与交互设计 native 监控 函数 线程 c++ 模块 PTR 内存泄漏 测试 解决方案 void 自动化测试

导读:C++内存泄漏问题的分析、定位一直是Android平台上困扰开发人员的难题。因为地图渲染、导航等核心功能对性能要求很高,高德地图APP中存在大量的C++代码。解决这个问题对于产品质量尤为重要和关键,高德技术团队在实践中形成了一套自己的解决方案。

分析和定位内存泄漏问题的核心在于分配函数的统计和栈回溯。如果只知道内存分配点不知道调用栈会使问题变得格外复杂,增加解决成本,因此两者缺一不可。

Android中Bionic的malloc_debug模块对内存分配函数的监控及统计是比较完善的,但是栈回溯在Android体系下缺乏高效的方式。随着Android的发展,Google也提供了栈回溯的一些分析方法,但是这些方案存在下面几个问题:

1.栈回溯的环节都使用的libunwind,这种获取方式消耗较大,在Native代码较多的情况下,频繁调

登录 后评论
下一篇
云攻略小攻
357人浏览
2019-10-11
相关推荐
Release Flutter的最后一公里
6259人浏览
2018-07-11 11:42:49
Android Flutter实践内存初探
4962人浏览
2018-06-29 16:16:10
Android高级之Dalvik初识
582人浏览
2016-06-07 11:41:28
0
0
0
12585