Страницы

Поиск по вопросам

воскресенье, 5 января 2020 г.

Где хранится Native Code?

#android #java


Все мы знаем, что у Dalvik есть стек и куча. Там лежат обьекты, созданные во время
исполнения Java кода. Обьекты лежат в Dalvik-heap.
А где хранятся нативные обьекты, которые были созданы с помощью вызова нативных функций.
Поясняю. Вызываем функцию из натива. Во время ее выполнения создаются обьекты и локальные
переменные. Где они хранятся? Вряд ли всё это вертится внутри Dalvik.    


Ответы

Ответ 1



Dalvik - это, если можно так выразиться, "простой софт", который вертится в недрах операционной системы, ядро которой - Linux. Нативные функции, написанные, например, на C++, не нуждаются в виртуализированном окружении, каковым является Dalvik. Соответственно то, что используется вне этого самого "простого софта" (виртуальной машины), работает и хранит свои данные за ее пределами, т.е. в целевой ОС. Чтобы понять, на каком именно уровне ("сэндвича OS Android") исполняется нативный код, достаточно будет просто взглянуть на схему устройства этой OS: HAL А вообще, конечно, вопрос хороший, с философской точки зрения.

Комментариев нет:

Отправить комментарий