Страницы

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

понедельник, 19 ноября 2018 г.

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

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


Ответ

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

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

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