Sebenarnya untuk bisa memprogram di lingkungan Android, kita seharusnya telah mengenal pemrograman Java yang merupakan sebuah bahasa pemrograman yang sangat object oriented. Android hanya menyediakan lingkungan runtime/sebagai interpreter dimana kode sumber yang telah kita compile dengan compiler Java akan dioptimasi oleh Dalvik, sebuah virtual mesin yang memang dibuat khusus untuk menjalankan kode-kode program yang kita buat dengan bahasa pemrograman Java yang tentunya berbentuk sebuah class, dan telah dikompilasi oleh compiler Java. Kemudian oleh dex tools akan merubah ke lingkungan native yang berbentuk *.dex format, yang mana *.dex format merupakan file Dalvix executeable yang teroptimasi untuk lingkungan hardware dengan komputasi yang rendah. *.dex format tersebut di jalankan secara utuh oleh Dalvik.
Dalvik Virtual Mesin sendiri berjalan diatas Linux Kernel, bukan JVM yang biasa dipakai pada computer desktop yang mana merupakan Stack Base, sedangkan Dalvik dibuat dengan registered Base yang tentunya telah dioptimasi dengan waktu eksekusi yang lebih cepat dan berjalan pada lingkungan hardware yang minim.