Androidra való fejlesztérkor a Java, mint programozási nyelv van jelen, tehát a Java nyelv szintaktikáját használjuk, azonban nem támogat mindent, amit a Java SE-ben megszoktunk.
Android programok írásakor használhatunk számos csomagot a Java SE-ből:
java.io
java.lang (kivéve a java.lang.management): kivételek
java.math: nagy számok, kerekítés
java.net: hálózati I/O, socket-ek, URL-el kezelése
java.security: authorizáció, tanúsítványok
java.sql: adatbázis kezelés
java.text: formázás, ...
java.util: adatszerkezetek
javax.crypto: titkosítás
javax.sound: hang effektek
javax.xml.parsers: XML feldolgozás
...
Nem támogatott csomagok:
java.applet
java.awt
java.beans
java.lang.management
java.rmi
javax.accessibility
javax.activity
javax.imageio
javax.management
javax.naming
javax.print
javax.swing
javax.transaction
...
A Java nyelven írt programok először bájtkódra fordulnak, majd a .class fájlok a Dalvik számára feldolgozható .dex fájlokká konvertálódnak, még mielőtt feltelepülnének az őket futtató eszközre. A .dex (Dalvik executable) formátumot úgy tervezték, hogy megfelelően fusson korlátozott erőforrással rendelkező készülékeken is.