如何在Linux本地编译Dalvik以运行它?

27

在Linux上编译和运行Dalvik虚拟机,需要哪些最小步骤(包括检索源代码)?


2
您可以按照以下步骤将其移植到未知的架构:http://source.android.com/porting/dalvik.html - James Black
它完全不能在x86上运行吗?很抱歉,我没有意识到这一点。 - Steve
3
这个问题是重复的: https://dev59.com/d0jSa4cB1Zd3GeqPJ_RW 那个问题的答案包括使用“sim-eng”午餐目标构建Linux DalvikVM的指示。 - Jesse Wilson
1
谢谢,那个问题包含了“dvk”项目的链接,我在这里为了以后的参考再重复一遍:http://code.google.com/p/dvk/wiki/Installing这个项目是我之前没有接触过的,基本上回答了我的问题。 - Steve
我已经添加了一个可行的答案。不是告诉你编写代码或说这是不可能的答案。 - Suici Doga
获取Dalvik和运行时很容易,因为Android基于Linux。困难的是让GUI应用程序显示,因为Android不使用X11/Wayland。 - Suici Doga
7个回答

8
实际上,我在我的elementary OS安装中成功运行了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/libexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:!!AOSP-PATH!!/out/host/linux-x86/lib64 尝试所有这些,并且然后运行./dalvikvm --32。如果尝试不带--32选项运行它,它将崩溃(不知道为什么)。
工作的Marshmallow Dalvik。要使GUI应用程序正常工作,您需要进行更多的移植和编码,这是我正在进行的另一个项目。
我花了半天时间才弄清楚这一点。
参考:http://milk.com/kodebase/dalvik-docs-mirror/docs/hello-world.html

3

实际上,这是在Dalvik上运行的Android系统,底层系统已经是Linux。

我猜在桌面Linux上运行裸的Dalvik虚拟机只是获取源代码并编译的问题。

GUI方面是另一回事。


是的,非常正确,我做到了。我没有触碰任何代码。虽然 GUI 应用程序仍然无法工作,但 Dalvik 的工作是一个很好的起点。 - Suici Doga
我花了半天时间完成了这件事。提问者已经等待了6年。 - Suici Doga

3

使用 sabayon Linux。这是一个分发版本,可以本地运行Android程序和所有的Linux程序。


2
谢谢Lee ;) 我只有13岁,经常犯这些错误。 - raven myers
2
+1s 是指“可爱”的因素(以及好的回答)=](如果这有点儿居高临下,敬请原谅) - earcam
3
啊,我觉得这只是个玩笑 - 这篇文章是4月1日发布的... http://lxnay.wordpress.com/2012/04/01/supporting-android-market-google-play-apps-in-rigo/ =( - earcam

1

你并不是唯一一个有这个想法的人,在互联网社会中这是很好的。

这可能是你正在寻找的:http://www.android-x86.org/。那些家伙将Android移植到了x86上。

它仍然可以作为操作系统工作,所以我不确定你是否可以在不使用VirtualBox的情况下同时运行Linux和Android(Linux)。


0

让为Android设计的应用程序在Linux上运行将会很棘手。然而,在Linux上运行Dalvik VM是可能的。实际上,这个GitHub项目有一个预编译的Dalvik VM二进制文件可供使用!请查看相关的博客文章以获取有关如何编译二进制文件以及如何使用它的信息。


0

Dalvik 运行在 Android 上。据我们所知,Dalvik 的作者们只关心它在 Android 上的运行。

有些团体已经表示他们正在努力将 Dalvik 移植到 Android 之外。你最好找到他们并与他们交流。

换句话说,目前没有你所寻求的类型的官方说明。

抱歉!


3
除源代码树中的 dalvik/docs/hello-world.html 外,在 gitweb 中查看 http://android.git.kernel.org/?p=platform/dalvik.git;a=blob_plain;f=docs/hello-world.html;hb=HEAD。 - fadden
3
那个链接似乎失效了。它也有一个镜像网址:http://www.milk.com/kodebase/dalvik-docs-mirror/docs/hello-world.html - Vitali

-1

学习编程语言Java、C、C++和其他框架

修改Android源代码(我想是app_process或其他什么)以便在Linux桌面上显示一个窗口(学习X11/Wayland API)

下面是一个简单的基础模板供您开始使用

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# 没有任何关系。 - Suici Doga

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接