Android’de Dalvik Bytecode Mimarı

0 Ответы 81 Просмотры
·
Участники
Автор темы #0

Dalvik Bytecode Mimarisi Nedir?



Dalvik bytecode mimarisi, Android işletim sisteminin ilk dönemlerinde Java tabanlı uygulamaları çalıştırmak için kullanılan özel bir sanal makine (VM) ve bytecode formatıdır. Google tarafından mobil cihazların kısıtlı kaynakları göz önünde bulundurularak optimize edilmiş bu yapı, standart Java sanal makinesi (JVM) yerine kullanılmıştır. Dalvik, Java kaynak kodunun doğrudan çalıştırılmasını sağlamaz; bunun yerine, Java derlenmiş kodunu `.class` dosyalarından `.dex` (Dalvik Executable) formatına dönüştürür. Bu dönüştürme işlemi, Dalvik sanal makinesinin mobil cihazlarda daha verimli çalışmasını hedefler. Temel amaç, bellek ve pil tüketimini azaltarak daha akıcı bir kullanıcı deneyimi sunmaktır. Bu nedenle, Dalvik, Android ekosisteminin temel taşlarından biri olmuştur.

Dalvik Neden Ortaya Çıktı?



Dalvik'in ortaya çıkışı, mobil cihazların kısıtlı donanım kaynakları ve Java'nın JVM'inin bu ortama uyumsuzluğuyla doğrudan ilişkilidir. Geleneksel JVM, masaüstü ve sunucu ortamları için tasarlanmış olup daha fazla bellek ve işlemci gücü gerektirir. Android'in ilk yıllarında akıllı telefonlar çok daha düşük RAM ve işlemci hızına sahipti. Google, bu kısıtlamaları aşmak ve aynı zamanda Java dilinin geliştirici topluluğundan faydalanmak istedi. Bu nedenle, JVM'ye nazaran daha küçük bellek ayak izine, daha az işlemci gücüne ihtiyaç duyan ve batarya ömrünü optimize edebilen özel bir sanal makineye gereksinim duyuldu. Dalvik, bu ihtiyaçları karşılamak üzere geliştirilmiş, mobil odaklı optimize edilmiş bir çözüm olarak ortaya çıktı. Sonuç olarak, Android platformunda Java tabanlı uygulamaların verimli bir şekilde çalışmasını sağlamıştır.

Java Kaynak Kodundan Dalvik Bytecode’a Geçiş



Android uygulamaları Java dilinde yazılsa da, bu uygulamalar doğrudan bir Java Sanal Makinesi (JVM) üzerinde çalışmaz. Öncelikle, Java kaynak kodları `javac` derleyicisi tarafından standart Java bytecode'una (yani `.class` dosyalarına) dönüştürülür. Ardından, Android SDK'sında bulunan `dx` aracı devreye girer. Bu araç, birden fazla `.class` dosyasını alarak tek bir `.dex` (Dalvik Executable) dosyasına sıkıştırır. Başka bir deyişle, `dx` aracı Java bytecode'unu Dalvik bytecode'una çevirir. Bu sıkıştırma ve optimizasyon süreci, Dalvik'in verimliliğinin anahtarlarından biridir; zira `.dex` dosyaları, daha az yer kaplar ve Dalvik Sanal Makinesi (DVM) tarafından daha hızlı yüklenebilir. Bu dönüşüm, uygulamanın çalıştırılmaya hazır hale gelmesini sağlar.

Dalvik Sanal Makinesi (DVM) Nasıl Çalışır?



Dalvik Sanal Makinesi (DVM), Android işletim sisteminde Dalvik bytecode'unu çalıştıran bir süreç sanal makinesidir. Her Android uygulaması, DVM'nin kendi örneği üzerinde çalışır, bu da her uygulamanın izole edilmiş bir ortamda çalıştığı anlamına gelir. Bu izolasyon, güvenlik ve stabilite açısından kritik öneme sahiptir. DVM, register tabanlı bir mimariye sahiptir; aksine, geleneksel JVM stack tabanlıdır. Bu fark, DVM'nin daha az bellek döngüsü ve işlemci gücü kullanarak mobil cihazlarda daha verimli çalışmasını sağlar. Ek olarak, DVM Just-In-Time (JIT) derlemesi kullanarak çalışma zamanında sıkça kullanılan kod parçacıklarını makine koduna dönüştürür ve bu sayede uygulama performansını artırır. Bu yapısı sayesinde mobil cihazların kısıtlı kaynaklarından maksimum verim alınmıştır.

Dalvik ve JVM Bytecode Arasındaki Temel Farklar



Dalvik bytecode ve JVM bytecode arasında yapısal ve çalışma prensibi açısından önemli farklar bulunur. En belirgin fark, Dalvik'in register tabanlı, JVM'nin ise stack tabanlı bir mimariye sahip olmasıdır. Register tabanlı sistemler, genellikle daha az komut döngüsü ve daha az bellek erişimi gerektirdiği için mobil cihazlar gibi kısıtlı kaynaklara sahip platformlarda daha verimli kabul edilir. Bununla birlikte, Dalvik, `.dex` formatını kullanırken, JVM `.class` dosyalarını kullanır. `.dex` formatı, birden fazla sınıf dosyasını tek bir arşivde toplar ve bu da dosya boyutunu küçülterek uygulamanın daha hızlı yüklenmesine olanak tanır. Başka bir deyişle, Dalvik özellikle mobil cihazlar için optimize edilmiş bir bytecode yapısı sunar. Sonuç olarak, bu farklılıklar Dalvik'in mobil performansa odaklanmasını sağlamıştır.

Dalvik'ten Android Runtime (ART)'a Evrim



Android 4.4 KitKat sürümüyle birlikte Google, Dalvik'in yerini alacak yeni bir çalışma zamanı ortamı olan Android Runtime (ART)'ı tanıttı. ART, Dalvik'in JIT derlemesi yerine Ahead-Of-Time (AOT) derlemesi kullanır. Bu, uygulamaların cihaza yüklenirken veya ilk çalıştırıldığında tamamen makine koduna derlenmesi anlamına gelir. Bu nedenle, uygulamalar her başlatıldığında derleme süreci beklemek yerine doğrudan çalışabilir. Sonuç olarak, ART, Dalvik'e göre daha hızlı uygulama başlatma, daha akıcı bir kullanıcı deneyimi ve daha düşük pil tüketimi vaat etti. Ek olarak, ART, geliştiricilere daha iyi hata ayıklama özellikleri ve daha iyi çöp toplama (garbage collection) performansı sunar. Dalvik, Android'in ilk yıllarında kritik bir rol oynamış olsa da, ART'ın getirdiği performans artışları, mobil teknolojinin gelişen taleplerini karşılamak için zorunlu bir evrim olmuştur.

Dalvik Mimarisi'nin Mobil Gelişime Katkıları



Dalvik mimarisi, Android'in mobil işletim sistemi olarak dünya çapında yaygınlaşmasında kritik bir role sahip olmuştur. Mobil cihazların kısıtlı kaynaklarına uygun, optimize edilmiş bir çalışma ortamı sunarak, Java geliştiricilerinin kolayca Android platformuna geçiş yapmasını sağlamıştır. Bu durum, geliştirici topluluğunun büyümesini hızlandırmış ve sayısız uygulamanın geliştirilmesine zemin hazırlamıştır. Ek olarak, Dalvik'in bellek yönetimi ve pil tüketimindeki verimliliği, Android telefonlarının ilk dönemlerindeki performans beklentilerini karşılamasına yardımcı olmuştur. Başka bir deyişle, Dalvik, Android'in rekabetçi mobil pazarda tutunmasını ve büyümesini sağlayan teknik altyapılardan biriydi. Bu nedenle, Dalvik mimarisi, mobil uygulama gelişiminin şekillenmesinde önemli bir miras bırakmıştır, modern ART'a geçişe rağmen etkisi yadsınamaz.

Чтобы ответить, необходимо войти в систему.

0 цитат выбрано