<html>
<head>
    <title>Basic Dalvik VM Invocation</title>
</head>

<body>
<h1>Basic Dalvik VM Invocation</h1>

<p>
On an Android device, the Dalvik virtual machine usually executes embedded
in the Android application framework.  It's also possible to run it directly,
just as you would a virtual machine on your desktop system.
</p><p>
After compiling your Java language sources, convert and combine the .class
files into a DEX file, and push that to the device.  Here's a simple example:

</p><p><code>
% <font color="green">echo 'class Foo {'\</font><br>
&gt; <font color="green">'public static void main(String[] args) {'\</font><br>
&gt; <font color="green">'System.out.println("Hello, world"); }}' &gt; Foo.java</font><br>
% <font color="green">javac Foo.java</font><br>
% <font color="green">dx --dex --output=foo.jar Foo.class</font><br>
% <font color="green">adb push foo.jar /sdcard</font><br>
% <font color="green">adb shell dalvikvm -cp /sdcard/foo.jar Foo</font><br>
Hello, world 
</code>
</p><p>
The <code>-cp</code> option sets the classpath.  The initial directory
for <code>adb shell</code> may not be what you expect it to be, so it's
usually best to specify absolute pathnames.

</p><p>
The <code>dx</code> command accepts lists of individual class files,
directories, or Jar archives.  When the <code>--output</code> filename
ends with <code>.jar</code>, <code>.zip</code>, or <code>.apk</code>,
a file called <code>classes.dex</code> is created and stored inside the
archive.
</p><p>
Run <code>adb shell dalvikvm -help</code> to see a list of command-line
options.
</p><p>



<h2>Using a debugger</h2>

<p>
You can debug stand-alone applications with any JDWP-compliant debugger.
There are two basic approaches.
</p><p>
The first way is to connect directly through TCP.  Add, to the "dalvikvm"
invocation line above, an argument like:
</p><p>
<code>&nbsp;&nbsp;-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=y</code>
</p><p>
This tells the VM to wait for a debugger to connect to it on TCP port 8000.
You need to tell adb to forward local port 8000 to device port 8000:
</p><p>
<code>% <font color="green">adb forward tcp:8000 tcp:8000</font></code>
</p><p>
and then connect to it with your favorite debugger (using <code>jdb</code>
as an example here):
</p><p>
<code>% <font color="green">jdb -attach localhost:8000</font></code>
</p><p>
When the debugger attaches, the VM will be in a suspended state.  You can
set breakpoints and then tell it to continue.


</p><p>
You can also connect through DDMS, like you would for an Android application.
Add, to the "dalvikvm" command line:
</p><p>
<code>&nbsp;&nbsp;-agentlib:jdwp=transport=dt_android_adb,suspend=y,server=y</code>
</p><p>
Note the <code>transport</code> has changed, and you no longer need to
specify a TCP port number.  When your application starts, it will appear
in DDMS, with "?" as the application name.  Select it in DDMS, and connect
to it as usual, e.g.:
</p><p>
<code>% <font color="green">jdb -attach localhost:8700</font></code>
</p><p>
Because command-line applications don't include the client-side
DDM setup, features like thread monitoring and allocation tracking will not
be available in DDMS.  It's strictly a debugger pass-through in this mode.
</p><p>
See <a href="debugger.html">Dalvik Debugger Support</a> for more information
about using debuggers with Dalvik.



<h2>Working with the desktop build</h2>

<!-- largely lifted from
http://groups.google.com/group/android-porting/browse_thread/thread/ab553116dbc960da/29167c58b3b49051#29167c58b3b49051
-->

<p>
The Dalvik VM can also be used directly on the desktop.  This is somewhat
more complicated however, because you won't have certain things set up in
your environment, and several native code libraries are required to support
the core Dalvik libs.
</p><p>
Start with:

<pre>
  . build/envsetup.sh
  lunch sim-eng
</pre>

You should see something like:

<pre>
  ============================================
  TARGET_PRODUCT=sim
  TARGET_BUILD_VARIANT=eng
  TARGET_SIMULATOR=true
  TARGET_BUILD_TYPE=debug
  TARGET_ARCH=x86
  HOST_ARCH=x86
  HOST_OS=linux
  HOST_BUILD_TYPE=release
  BUILD_ID=
  ============================================
</pre>

</p></p>
This configures you to build for the desktop, linking against glibc.
This mode is NOT recommended for anything but experimental use.  It
may go away in the future.
</p></p>
You may see <code>TARGET_BUILD_TYPE=release</code> or <code>=debug</code>
or possibly nothing there at all.  You may want to replace the
<code>lunch</code> command with
<code>choosecombo Simulator debug sim eng</code>.
</p></p>
Build the world (add a <code>-j4</code> if you have multiple cores):

<pre>
  make
</pre>

</p></p>
When that completes, you have a working dalvikm on your desktop
machine:

<pre>
  % dalvikvm
  E/dalvikvm(19521): ERROR: must specify non-'.' bootclasspath
  W/dalvikvm(19521): JNI_CreateJavaVM failed
  Dalvik VM init failed (check log file)
</pre>

</p></p>
To actually do something, you need to specify the bootstrap class path
and give it a place to put DEX data that it uncompresses from jar
files.  You can do that with a script like this:

<blockquote><pre>
#!/bin/sh

# base directory, at top of source tree; replace with absolute path
base=`pwd`

# configure root dir of interesting stuff
root=$base/out/debug/host/linux-x86/product/sim/system
export ANDROID_ROOT=$root

# configure bootclasspath
bootpath=$root/framework
export BOOTCLASSPATH=$bootpath/core.jar:$bootpath/ext.jar:$bootpath/framework.jar:$bootpath/android.policy.jar:$bootpath/services.jar

# this is where we create the dalvik-cache directory; make sure it exists
export ANDROID_DATA=/tmp/dalvik_$USER
mkdir -p $ANDROID_DATA/dalvik-cache

exec dalvikvm $@
</pre></blockquote>

</p></p>
The preparation with <code>dx</code> is the same as before:

<pre>
  % cat &gt; Foo.java
  class Foo { public static void main(String[] args) {
    System.out.println("Hello, world");
  } }
  (ctrl-D)
  % javac Foo.java
  % dx --dex --output=foo.jar Foo.class
  % ./rund -cp foo.jar Foo
  Hello, world
</pre>

As above, you can get some info about valid arguments like this:

<pre>
  % ./rund -help
</pre>

</p></p>
This also shows what options the VM was configured with.  The sim "debug"
build has all sorts of additional assertions and checks enabled,
which slows the VM down, but since this is just for experiments it
doesn't matter.

</p></p>
All of the above applies to x86 Linux.  Anything else will likely
require a porting effort.  If libffi supports your system, the amount of
work required should be minor.

</p></p>
<address>Copyright &copy; 2009 The Android Open Source Project</address>

</body>
</html>
