如何编译 Dalvik 以在 Linux 上本地运行它?
Posted
技术标签:
【中文标题】如何编译 Dalvik 以在 Linux 上本地运行它?【英文标题】:How can I compile Dalvik to run it locally on Linux? 【发布时间】:2011-04-02 07:39:35 【问题描述】:在 Linux 上编译和运行 Dalvik 虚拟机所需的最少步骤(包括检索源代码)是什么?
【问题讨论】:
您可以按照以下步骤将其移植到看不见的架构:source.android.com/porting/dalvik.html 那它根本就不能在 x86 上运行吗?抱歉,我没有意识到这一点。 此问题与以下内容重复:***.com/questions/1297678 该问题的答案包括使用“sim-eng”午餐目标构建 Linux dalvikvm 的说明。 谢谢,该问题包含指向“dvk”项目的链接,我将在这里重复以供将来参考:code.google.com/p/dvk/wiki/Installing 这个我以前没有遇到过的项目基本上回答了我的问题. 我添加了一个有效的答案。没有人告诉你编码或说这是不可能的 【参考方案1】:实际上,我让 Dalvik 开始安装我的基本操作系统。
首先使用https://source.android.com/source/downloading.html 下载Android AOSP 源代码树。等待它下载(我只克隆当前提交和 Marshmallow 分支需要 2 小时)
在源代码树中运行build/envsetup.sh
后运行lunch full_x86-eng
。然后输入make -jN
(将 N 替换为核心数)。
等等。我在 AMD-4500M 笔记本电脑上花了大约 1 个小时。较新的计算机可能低至半小时,而较旧的计算机可能需要半天。
将目录更改为!!AOSP-PATH!!/out/host/linux-x86/bin/
并运行export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:!!AOSP-PATH!!/out/host/linux-x86/obj/lib/
或
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:!!AOSP-PATH!!/out/host/linux-x86/lib
或export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:!!AOSP-PATH!!/out/host/linux-x86/lib64
尝试所有这些
然后
./dalvikvm --32
。如果您尝试在没有--32
选项的情况下运行,它将崩溃(不知道为什么)
工作棉花糖达尔维克。为了让 GUI 应用程序正常工作,您需要做更多的移植和编码,这是我正在从事的另一个项目。
我花了半天时间才弄明白。
参考文献
http://milk.com/kodebase/dalvik-docs-mirror/docs/hello-world.html
【讨论】:
【参考方案2】:使用 sabayon Linux。这是一个可以原生运行 Android 程序和所有 Linux 程序的发行版。
【讨论】:
谢谢 lee ;) 我才 13 岁,一直犯这些错误。 +1s for "Awwwwww" 因素(和好的答案)=](抱歉,如果这有点光顾) 啊,我认为这只是个玩笑——帖子是从 4 月 1 日开始的......lxnay.wordpress.com/2012/04/01/… =(【参考方案3】:其实那是在Dalvik上运行的android,底层系统已经是linux了。
我猜想在桌面 linux 机器上运行一个裸机 Dalvik VM 只是获取源代码并编译它的问题。
图形用户界面的东西是别的东西。
【讨论】:
是的,非常正确,我做到了。我没有碰任何代码。 GUI 应用程序仍然无法工作,但 Dalvik 工作是一个很好的起点 我花了半天时间才搞定。提问者已经等了 6 年了【参考方案4】:你不是唯一一个有这个想法的人,这在互联网社会方面很棒。
这可能就是您要查找的内容:http://www.android-x86.org/。 那些家伙将 android 移植到 x86。
它仍然可以作为操作系统运行,所以我不确定你是否可以在不使用 VirtualBox 的情况下同时运行 Linux 和 Android(Linux)。
【讨论】:
【参考方案5】:Dalvik 在 Android 上运行。据我们所知,Dalvik 的作者只担心它在 Android 上运行。
各种团体表示他们正在努力让 Dalvik 脱离 Android。您最好找到他们并与他们交谈。
换句话说,没有您寻求的那种官方说明。
对不起!
【讨论】:
...除了 dalvik/docs/hello-world.html 在源代码树中。在 gitweb 中,请参见 android.git.kernel.org/?p=platform/… 。 该链接似乎已损坏。它也被镜像milk.com/kodebase/dalvik-docs-mirror/docs/hello-world.html【参考方案6】:让专为 Android 设计的应用程序在 Linux 上运行会很棘手。但是,可以在 Linux 上运行 Dalvik VM。事实上,this GitHub project 有一个 Dalvik VM for Linux 的预编译二进制文件,可以使用了!查看相关联的blog post,了解有关如何编译二进制文件以及如何使用它的信息。
【讨论】:
【参考方案7】:学习Java\C\C++等框架编程
修改Android源代码(我认为是app_process之类的),使其在Linux桌面上显示一个窗口(学习X11 / Wayland APIs)
下面是一个简单的基础供您开始
www.android-x86.org/getsourcecode
获取Android-x86源代码
首先,按照此页面配置您的构建环境。那么
mkdir android-x86
cd android-x86
repo init -u git.android-x86.org/manifest -b $branch
repo sync
其中 $branch 是上一节中描述的任何分支名称。这会将 android-x86 创建或修改的项目指向我们的 git 服务器。所有其他项目仍然指向 AOSP。 我们在 SourceForge.net 上也有一个 git 镜像服务器。要使用它,只需要将 repo init 命令更改为
repo init -u git.code.sf.net/p/android-x86/manifest -b $branch
【讨论】:
Android 和 C# 有什么关系。它是用 Java / C / C++ 制作的,与 C# 无关。以上是关于如何编译 Dalvik 以在 Linux 上本地运行它?的主要内容,如果未能解决你的问题,请参考以下文章
如何反编译 android 中 /data/dalvik-cache/arm 下的文件
如何交叉编译我的 Linux 应用程序以在 Linux 中获取 Windows 可执行文件?