我们都知道Android对象和局部变量存储在Dalvik-heap和堆栈中 当我们从Android应用程序执行本机函数时,它会创建对象和局部变量。
问题是 原生对象和本地变量存储?
答案 0 :(得分:1)
每个Dalvik线程都有一个由pthreads库创建的本机部分和一个由VM运行时创建的托管部分。执行本机代码时,它在本机堆栈上执行。 (我的理解是Art中的这种变化,它具有本机代码和托管代码的组合堆栈。)
本机代码通过malloc()
或new
进行的任何分配都将使用与其他本机代码(包括VM运行时本身)相同的本机堆。
答案 1 :(得分:0)
据我所知,本机代码在本机堆上运行,因此它们不会占用分配堆中的任何内存。