Dalvik 的源代码可以在这里找到,Virtual Machines 相关代码位于名为vm
. 几乎所有的代码都是用 C++ 编写的。但是,Internet 上似乎缺少有关 Dalvik 的详细文档。
我想在原始 Dalvik 的基础上开发一些新功能,例如 Thread Migration to 和 Thread Sync with remote 服务器。谁能告诉我我可以参考什么文件以及我应该从哪里开始我的项目?
Dalvik 的源代码可以在这里找到,Virtual Machines 相关代码位于名为vm
. 几乎所有的代码都是用 C++ 编写的。但是,Internet 上似乎缺少有关 Dalvik 的详细文档。
我想在原始 Dalvik 的基础上开发一些新功能,例如 Thread Migration to 和 Thread Sync with remote 服务器。谁能告诉我我可以参考什么文件以及我应该从哪里开始我的项目?
说“源是文档”有点陈词滥调,但对于 Dalvik 的大部分人来说确实如此。
例如,考虑Thread.cpp中的开头注释。它不仅详细描述了线程模型,还讨论了一个被考虑但被拒绝的替代模型,以及这样做的原因。
另一个例子是Exception.cpp,它讨论了管理异常的不同方法的来龙去脉。
对堆栈的布局感到好奇吗?请参阅interp/Stack.h(完整的 ASCII 艺术!)。
VM 的内部工作以这种方式记录。一些较大的项目,如 DEX 文件格式和字节码验证器的操作,在 dalvik/docs 目录中有自己的独立文档(这显然不是该 github 存储库的一部分)。无论如何,从这里的 dalvik 文档镜像中引用它很方便,因为这可以让您获得几个较大文档的 CSS 格式。
如果 Dalvik 使用一些标准的代码文档格式约定来简化大块的提取,那就太好了。
VM 代码本身在整个过程中都被大量注释。这也适用于 ARM 程序集。