page.title=Dalvik Technical Information
@jd:body

<!--
    Copyright 2013 The Android Open Source Project

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-->
<p>Dalvik is the managed runtime used by applications and some system
services on Android. Dalvik was originally created specifically for
the Android project.</p>
<p>Much of the documentation in this directory is intended to help
with the ongoing development of Dalvik, as opposed to most of the
other documentation on this site, which is geared more towards
application development.</p>

<p>Please note, in Android 4.4 a new virtual machine - ART - is being introduced
experimentally that will eventually replace Dalvik. Please see <a
href="{@docRoot}devices/tech/dalvik/art.html">Introducing ART</a> for details.
