Android NDK:Dalvik Heap和Native Heap - 两者之间的区别

 三光937 发布于 2023-01-29 18:14

我知道在Android平台上有Dalvik(JVM)堆和Native堆.Dalvik GC在本机堆上没有工作.但我不确定这是如何工作的,我的意思是Android操作系统是如何将它们分开的?

可能的情况1:由独立的内存硬件组成(我不相信太多)

可能的情况2:Android操作系统对两个堆都有固定的内存量

可能的情况3:Android OS必须在必要时将部分Dalvik内存堆分配为本机堆,因此本机堆和Dalvik堆的大小是灵活的.

哪一个是真的,或者我没有提到的可能性?

1 个回答
  • 本机堆由托管dlmalloc(),它使用组合mmap()和标准调用sbrk()来分配内存.托管("Dalvik")堆(大部分)是一个分配的大块mmap().它全部运行在Linux内核之上,所以如果您了解Linux内存管理,那么您已经知道了低级部件的工作原理.

    您可以在本文中阅读有关Dalvik如何将空页从托管堆返回到操作系统的更多信息.

    编辑:有关Android内存管理信息的规范帖子就是这个.我不认为它直接回答你的问题,但它有很多好的信息和信息网站的链接.

    2023-01-29 18:16 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有