Схема памяти файлов android dex

Последние несколько дней я читал об инфраструктуре Android и понял, что виртуальная машина Dalvik — это машина на основе регистров, а не обычная виртуальная машина на основе стека. В этом случае, на что будет похожа структура памяти файлов dex? В типичной программе на языке C структура памяти представлена ​​в виде данных, текста, кучи и стека. То же самое и с файлами dex. И если да, то как виртуальная машина Dalvik обрабатывает такие файлы?


person weejing    schedule 23.05.2017    source источник


Ответы (2)


Насколько я понимаю, Android работает на ядре Linux. Итак, ядро ​​Linux отвечает за управление физической памятью. Как Android ART управляет взаимодействием памяти с ядром, мне не знакомо. Но, априори, он должен обеспечивать ту же структуру памяти, которая требуется бинарному файлу Linux (текст, данные, куча, стек, разделяемая память). Что ж, на самом деле я получил подтверждение этого, просмотрев карту памяти процесса (cat /proc/pid/maps), которая дает вам схему памяти, аналогичную типичной программе Linux, но с большим количеством общих библиотек.

person MAW    schedule 30.01.2018

Формат .dex полностью описан в официальной документации Android. , так что вы можете посмотреть там. В качестве быстрого графического введения есть также отличный PDF-файл с аннотированной диаграммой, минимальный файл .dex "hello world", автор Анж Альбертини.

person akavel    schedule 12.05.2019