Java je objektově orientovaný programovací jazyk nezávislý na platformě, který je využíván pro tvorbu nativních aplikací pro Android. Jedná se o oblíbený programovací jazyk, který vyvinula společnost Sun Microsystems, kterou nyní vlastní Oracle. Java obsahuje mnoho silných nástrojů svých předchůdců jako je C nebo C++ a zároveň se snaží vyhnout jejich nedostatkům.

SDK Androidu obsahuje mnoho standardních knihoven Javy jako jsou knihovny zaměřené na datovou strukturu, matematiku, grafické zobrazení nebo sítě. Zároveň obsahuje knihovny speciálně vytvořené pro Android.

Mezi aplikacemi, které využívají Javu pro Android můžeme najít Whatsapp, Facebook, Linkedin nebo FlipKart.

Rozdíl mezi Javou pro Android a Javou

Co se týče syntaxi, Java pro Android a Java jsou stejným jazykem. Odlišná je dostupnost knihoven, kdy některé Java knihovny nelze použít pro Javu pro Android a naopak některé knihovny pro Javu pro Android nelze použít ve standardní Javě.

Velká odlišnost se nachází v podobě API. Android nespouští bajtkód v Javě skrze klasickou JVM (Java Virtual Machine), ale místo toho využívá Dalvik pro starší verze nebo Android Runitme (ART) pro novější verze.

Přístroje s Androidem nespouštějí JAR soubry, ale třídy jsou kompilovány do proprietárního bajtkód formátu a spouštěny Dalvikem a specializovaným virtuálním strojem pro Android.

Dalvik má některé vlastnosti, které ho odlišují od běžných virtuálních strojů:

  • Je navržen tak, aby využíval méně místa.
  • Constant pool byl modifikovaný tak, aby používal jen 32-bitové indexy pro zjednodušení interpreteru.
  • Standardní Javový bajtkód spouští osmi bitové instrukce. Lokální proměnné musí být kopírované z nebo do spuštěného stacku oddělenými příkazy. Dalvik používá místo toho šestnáctibitové instrukce, které pracují s lokálními proměnnými napřímo. Lokální proměnné jsou často sebrány čtyřbitovým virtuálním registrem.

Protože bajtkód, který se načítá do virtuálního stroje Dalvik není stejný jako Java bajtkód a kvůli způsobu, jakým Dalvik načítá třídy, není možné načítat balíčky tříd za pomoci jar souborů. Pro Androidí knihovny je nutné použít jiný postup, který využívá kopírování dex souboru do privátního úložného prostoru aplikace, nežli se soubor načte.

Výhody použití Javy pro Android

  • Srozumitelnost. Java přináší srozumitelnost pro developery i uživatele.
  • Bezpečnost. Java je považována za relativně bezpečnou díky použití bezpečnostních postupů a bezpečného programování.

Nevýhody použití Javy pro Android

  • Rychlost. Java je pomalejší a využívá více paměti nežli některé jiné programovací dialekty odvozené od C a C++.
  • Jendoparadigmový jazyk. Java je objektově orientovaný programovací jazyk, který v zásadě nepodporuje další paradigmata.