Стек нативного кода Android против стека Dalvik VM / ART - PullRequest
0 голосов
/ 04 октября 2018

Приложения Android могут выполнять код C / C ++ с помощью Android NDK.Все приложения Android также работают на виртуальной машине Android (то есть Dalvik / ART).

Мой вопрос: использует ли собственный код в приложениях Android тот же стек / кучу, что и виртуальная машина Android?

т.е. в нативном коде мы можем создавать локальные переменные, а также переменные через malloc / new, и они будут храниться в стеке или куче соответственно.Но я также понимаю, что Android VM будет создавать собственные объекты для бухгалтерии.Таким образом, нативный код и Android VM совместно используют один и тот же стек / кучу в памяти?

1 Ответ

0 голосов
/ 04 октября 2018

Управляемая куча JVM и собственная куча разделены, но они не полностью изолированы.Под капотом JVM использует те же системные вызовы, а через JNI вы можете получить доступ к памяти примитивных массивов java.

Что касается стека, JVM и C совместно используют его для каждого потока.Но не все нативные темы присоединены к JVM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...