Ara 05

Java Swing / AWT yada Web uygulaması geliştirdiğimizde yazdığımız sınıflar (.java), öncelikle bytecode diye adlandırılan (.class) dosya türlerine derlenir. Bu dosyalar işlemci üzerinde doğrudan çalıştırılabilir programlar değillerdir. Öncelikle bu bytecode’ ları yorumlayıp sahip olduğumuz işlemcinin komutlarına dönüştürecek bir katmana ihtiyaç vardır. Java Sanal Makinası (JVM) bu ara katmanı oluşturarak yazdığımız herhangi bir programı herhangi bir sistem üzerinde çalıştırılabilmesini sağlar. Java programlarının sistemden bağımsız olmalarının temelinde, bu derlendiklerinde çalıştırılabilir kodlar yerine bytecode üretilmesi ve bunların sanal makine tarafından yorumlanabilmesi yatar.

rVSX8

Android uygulamalarında da mantık klasik Java uygulamalarınkine benzerlik gösterir. Java kodları, JVM’de olduğu gibi önce (.class) bytecode’a derlenir.

Dalvik Sanal Makinesi bu derlenmiş kodu yorumlayıp telefona uygun çalıştırılabilir dosyalara (.dex – dalvik executable) dönüştürür.

Peki,  neden Java Sanal Makinası varken Daivik Sanal Makinası’na ihtiyaç duyulmuştur?

Bunun cevabı Java uygulamalarının çalıştığı sistemle Android uygulamalarınınkinin farklı olmasıdır. Bilgisayarın ve telefonun güç tüketim ihtiyacı, işlemci hızı ve bellek gereksinimleri birbirinin aynısı değildir. Dalvik Sanal Makinesi’ni Java Sanal Makinesi’nin telefonun ihtiyaçlarına uygun şekilde modifiye edilmiş hali olarak düşünebiliriz.

Kaynak : Android Programlama Kitabı [Aysan Ethem Narman]

Yorum Yaz