Подход к разработке исходных кодов виртуальной машины Dalvik

Исходный код Dalvik можно найти в Вот, и связанный с виртуальными машинами код находится в папке с именем vm, Почти все коды написаны на C ++. Тем не менее, детальная документация по Dalvik отсутствует в Интернете.

Я хотел бы разработать некоторые новые функции на оригинальном Dalvik, такие как миграция потоков на и синхронизация потоков с удаленными серверами. Может ли кто-нибудь сказать мне, на какой документ я могу сослаться и где я должен начать свой проект?

1

Решение

Несколько странно говорить, что «источником является документация», но для большей части Dalvik это действительно так.

Например, рассмотрите вступительный комментарий в Thread.cpp. Это не только описывает модель потока в некоторых деталях, но также обсуждает альтернативную модель, которая была рассмотрена, но отклонена, и причины для этого.

Другой пример Exception.cpp, в котором рассматриваются входы и выходы различных подходов к управлению исключениями.

Любопытно, как раскладывается стек? Увидеть интерполяция / Stack.h (в комплекте с ASCII art!).

Внутренняя работа ВМ документируется таким образом. Некоторые более крупные элементы, такие как формат файла DEX и работа верификатора байт-кода, имеют свою собственную автономную документацию в каталоге dalvik / docs (который, очевидно, не является частью этого репозитория github). На него удобно ссылаться с зеркала dalvik docs Вот в любом случае, поскольку это дает вам форматирование CSS для пары больших документов.

Было бы неплохо, если бы Dalvik использовал какое-то стандартное соглашение о форматировании документации в коде, чтобы упростить извлечение больших фрагментов.

Сам код VM сильно прокомментирован повсюду. Это касается и сборки ARM.

5

Другие решения

Других решений пока нет …