just in time etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
just in time etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

9 Mayıs 2014 Cuma

Android Runtime (ART) İşletim Sistemi

Android işletim sistemi, Android uygulamalarını çalıştırmak için Dalvik sanal makinesini kullanır. Google Dalvik’ten vazgeçip yeni sanal makinesi Android Runtime'a (ART) geçiş yapıyor. Android sürümü Kitkat'a ART'ı da entegre etmiş durumda.

Android platformunda, Java ile yazdığımız Android uygulama kodları önce Java bytecode'larını içeren .class uzantılı dosyalara çevrilir. Bu kodlar Dalvik sanal makinesinin çalıştırabileceği Dalvik bytecode'unu içeren .dex uzantılı tek bir dosyaya dönüştürülür. 

Dalvik sanal makinesi, kısıtlı bellek ve işlemci gücü sağlayan mobil cihazlar için tasarlandığı için günümüzdeki çoğu modern bilgisayar programlama dilleri (Java, C#) gibi yığınlarla (stack) değil yazmaçlarla (register) çalışır. Bunun için daha hızlıdır. 

Dalvik sanal makinesiyle ilgili daha fazla detaya http://source.android.com/devices/tech/dalvik/ adresinden ulaşabilirsiniz.

Android Runtime. ART'ın çalışma şekli Dalvik'ten çok farklı. Dalvik, Android 2.2 sürümünden beri "Tam Zamanında" derleme (Just-In-Time – JIT compilation) kullanarak kodu derliyor. 

Uygulama yazılıp cihaza yüklendiğinde kod belli bir oranda derleniyor ve esas derleme ve optimizasyon uygulama çalışmaya başladığında yapılıyor. Bu işlem ise uygulama her çalıştırılğında yapılıyor. Bu ise fazladan yük getiriyor ve daha az verimli çalışılmasına sebep oluyor.

ART ise "Zamanın Ötesinde derleme" (Ahead-of-Time – AOT compilation) ile uygulama cihaza kurulurken  bytecode derlemesini yapıyor ve bytecode'u makine diline çeviriyor. Her uygulama açılışında yeni bir sanal makine başlatmak gerekmiyor.

ART tam anlamıyla standart olarak kullanıma hazır değil. Birçok optimizasyonu ve testi henüz yapılmamış durumda. ART ile Dalvik arasında fark olduğu kesin ama bunun ne kadar olduğunu ve gerçekte neler kazandıracağını kestirmek zor şimdilik. Test siteleri ve kullanıcılar tarafından yapılan testlerde işlem sürelerinin yarıya yakın azaldığı söyleniyor. ART’a geçiş yaptıktan sonra işletim sisteminin animasyonlarında ve bazı uygulamalarda fark edilir hızlanma gözlenebiliyor. 

Kullanıcılar için uygulamaların daha hızlı çalışması, arayüzdeki geçişlerin ve animasyonların daha yumuşak ve takılmadan görüntülenmesi son derece önemli. Her kullanıcının en önemli istekleri daha hızlı işleme, daha az işlemci gücü gereksinimi olduğu için cihazların pil ömürlerinde de ciddi artış bekleniyor.

Herşey böyle güllük gülistanlık değil. Bunların elbet bir de bedeli var. Uygulamalar cihaza kurulurken makine diline çevrileceği için ilk kurulum süreleri artıyor. Küçük uygulamalarda bu hissedilmeyecek bir fark iken, daha yüklü ve büyük uygulamalarda kurulum süresi fark edilir şekilde artabilir. 

Her bytecode'un makine dilindeki birkaç komuta denk geldiği için, makine diline çevrilmiş olarak saklanan uygulamalar cihazın belleğinde daha çok yer kaplayacaktır. Bu artış sadece çalıştırılabilir kodda olacağı için (resim, video, ses dosyası gibi uygulama kaynaklarında bir değişiklik söz konusu değil) çok da önemli değil. Google % 10 - 20 arasında bir artış olacağını söylüyor.

Uygulamaların ve işletim sisteminin daha hızlı çalışması ve cihazın pil ömrünün artması gibi çok kritik getirilerin yanında cihazdaki depolama alanında kaplanan miktarın artması veya ilk kurulumun daha uzun sürmesinin çok bir öneminin olmayacağını söyleyebiliriz.

Google, Android 4.4 sürümü ile birlikte artık cihazınızda çalışma zamanı olarak Dalvik veya ART'ı seçmenize olanak veriyor. Ancak ART henüz tam anlamıyla hazır değil. Yeni çalışma zamanını ve getirdiği farklılıkları test etmek istiyorsanız ve cihazınızda Android 4.4.x işletim sistemi bulunuyorsa, "Ayarlar" (Settings) > "Geliştirici Seçenekleri" (Developer Options) > "Çalışma zamanını seçin" (Select runtime) kısmından Dalvik seçeneğini değiştirerek ART'ı seçebilirsiniz.

Bu ayarı değiştirdiğinizde cihazınız libdvm.so kütüphanesinden libart.so kütüphanesine geçmek için yeniden başlatılacak ve kurulu bütün uygulamalarınız ART için tek tek derlenecek ve optimize edilecektir. Bu işlem 5 ile 15 dakika arasında sürecektir.

Her uygulama şimdilik ART'ye uyumlu değil. Bazı uygulamalar hatalı çalışabiliyor ve hatta hiç çalışmayabiliyor. Popüler bir mesajlaşma uygulaması olan WhatsApp, ART üzerinde çalışmıyor. Sürekli hata veriyor ve kaldırıp tekrar kurmak isterseniz kuramıyorsunuz şimdilik.