#android #java
Все мы знаем, что у Dalvik есть стек и куча. Там лежат обьекты, созданные во время исполнения Java кода. Обьекты лежат в Dalvik-heap. А где хранятся нативные обьекты, которые были созданы с помощью вызова нативных функций. Поясняю. Вызываем функцию из натива. Во время ее выполнения создаются обьекты и локальные переменные. Где они хранятся? Вряд ли всё это вертится внутри Dalvik.
Ответы
Ответ 1
Dalvik - это, если можно так выразиться, "простой софт", который вертится в недрах операционной системы, ядро которой - Linux. Нативные функции, написанные, например, на C++, не нуждаются в виртуализированном окружении, каковым является Dalvik. Соответственно то, что используется вне этого самого "простого софта" (виртуальной машины), работает и хранит свои данные за ее пределами, т.е. в целевой ОС. Чтобы понять, на каком именно уровне ("сэндвича OS Android") исполняется нативный код, достаточно будет просто взглянуть на схему устройства этой OS: HAL А вообще, конечно, вопрос хороший, с философской точки зрения.
Комментариев нет:
Отправить комментарий