Android Çalışma Ortamı ve Dalvik: Android Çalışma Ortamının Kalbi

Son Güncelleme: noviembre 11, 2026
  • Dalvik, JIT derleme yöntemini kullanarak, uygulama çalışırken kodu çeviriyordu.
  • ART, kurulum sırasında AOT derlemesini kullanarak sistemi optimize eder.
  • Her iki ortam da DEX dosya formatını kullanır ve bu da sürümler arasında uyumluluğu sağlar.
  • ART teknolojisine geçiş, pil tüketiminin azalmasına ve sistem akışkanlığının artmasına olanak sağlamıştır.

Android Runtime'ın çalıştığı donanımı temsil eden bir elektronik devrenin bileşenlerinin yakından makro görüntüsü.

Telefonunuzda bir uygulama açtığınızda arka planda neler olup bittiğini merak ettiyseniz, cevabı çalışma ortamında bulabilirsiniz. Android ekosisteminde, Dalvik sanal makinesine dayalı bir mimariden , Android Çalışma Ortamı (ART) olarak bilinen çok daha sağlam bir sisteme geçtik. Esasen, ART, programcıların yazdığı kodu, cihazınızın donanımının çökmeden anlayabileceği talimatlara çevirmekten sorumludur.

Bunu anlamak için, Android'in Java'yı yerel olarak çalıştırmadığını, bunun yerine özel bir uyarlama kullandığını bilmek önemlidir . Her şey kaynak kodla başlar, bu kod bayt koduna dönüştürülür ve DEX adı verilen belirli bir biçimde son bulur. Android sürümünüzün eski veya yeni olmasına bağlı olarak, bu kodun yürütülme yolu önemli ölçüde değişir ve pil ömrü ve uygulama yükleme hızı gibi günlük şeyleri etkiler.

Dalvik'in Mirası: Tam Zamanında Üretim Çağı

Akıllı telefon ekranında, bayt kodunun yürütülebilir komutlara dönüştürülmesini gösteren programlama kodu satırları yer almaktadır.

Dalvik, Android'in en başından beri temel bir sütundu. Amacı açıktı: Java ile yazılmış uygulamaların çok sınırlı kaynaklara sahip cihazlarda çalışmasına olanak sağlamak . Standart bir Java sanal makinesinin aksine, Dalvik daha az bellek kullanmak ve aynı anda birden fazla örneği çalıştırmak üzere optimize edilmişti ve iş parçacığı yönetimini Linux çekirdeğine devretmişti.

  Snapseed fotoğraf düzenleme: ondan en iyi şekilde yararlanmak için eksiksiz bir rehber

Dalvik'in en önemli özelliği Anlık Derleme (Just-In-Time - JIT) idi . Bu, kodun kullanıcının uygulamayla etkileşim kurduğu anda tam olarak makine diline çevrilmesi anlamına geliyordu. Bu zahmetli görevi her seferinde tekrarlamaktan kaçınmak için Dalvik, önceden çevrilmiş kısımları bir önbellekte saklayan ODEX (Optimize Edilmiş DEX) adlı dosyalar oluşturdu . Sorun şu ki, bu sürekli derleme işlemi CPU döngülerini tüketiyor ve dolayısıyla daha fazla enerji kullanıyordu.

Android Çalışma Zamanı (ART): İleriye Doğru Atılım

Klavye üzerinde pil seviyesini gösteren akıllı telefon, ART ve Dalvik teknolojilerinin enerji verimliliğini karşılaştırıyor.

Android 5.0 Lollipop ile birlikte ART tamamen devreye girdi. En büyük fark, ART'nin Önceden Derleme (AOT) yöntemini uygulamasıdır . Uygulamayı açmanızı beklemek yerine, ART kurulum sırasında ağır işleri kendisi yapar. DEX dosyalarını Linux'a özgü ELF (Yürütülebilir ve Bağlanabilir Biçim) yürütülebilir dosyalarına dönüştürmek için dex2oat adlı bir araç kullanır.

Bu yaklaşım sayesinde, bir uygulama simgesine dokunduğunuzda sistemin herhangi bir şey derlemesine gerek kalmaz; sadece ELF dosyasını okur ve çalıştırır. Bu, işlemcinin daha az çalışması, pilin daha uzun süre dayanması ve uygulamaların çok daha akıcı çalışması anlamına gelir. Ancak küçük bir dezavantajı da var: uygulama yükleme biraz daha uzun sürüyor ve Dalvik'e kıyasla daha fazla depolama alanı kaplıyorlar .

Teknik karşılaştırma ve temel iyileştirmeler

Her iki ortam da uyumlu olup aynı DEX bayt kodunu çalıştırsa da, ART sistemi inanılmaz derecede hızlı hale getiren iyileştirmeler getirmiştir. Bunlardan en önemlisi çöp toplama (GC) işlemidir . Dalvik'te, çöp toplayıcı arayüzde can sıkıcı duraklamalara veya "takılmalara" (ünlü gecikme) neden oluyordu. ART bunu öncelikle eş zamanlı bir sistemle yeniden tasarlayarak duraklamaları kullanılan bellek miktarından bağımsız hale getirmiştir.

  • Gelişmiş hata ayıklama: ART, geliştiricilerin hangi kilitlerin hangi iş parçacıkları tarafından tutulduğunu görmelerini ve sınıf örneklerini çok daha yüksek bir doğrulukla izlemelerini sağlar.
  • Doğru teşhis: Artık bir uygulama çöktüğünde, hata raporları özellikle şu durumlarda çok daha ayrıntılı oluyor: NullPointerException.
  • Bellek yönetimi: Sayfalanabilir olmayan bir önbellek kullanan Dalvik'in aksine, ART, RAM belleği kullanır. Sayfalama mümkündür.Donanımın kullanımını optimize etmek.
  Wi-Fi 7: Ev bağlantınızı iyileştirmek için nasıl kullanabilirsiniz?

Paketleme süreci: Koddan APK'ya

Dizüstü bilgisayar ve akıllı telefon kullanılarak oluşturulan geliştirme ortamı, kaynak kodun APK dosyasına dönüştürülme sürecini göstermektedir.

Bu ortamlardan herhangi birinin çalışabilmesi için kodun bir montaj hattından geçmesi gerekir. İlk olarak, Java derleyicisi .class dosyaları oluşturur ve ardından dex aracı bunları tek bir classes.dex dosyasına dönüştürür. Bu dosya APK'nın çekirdeğidir ve ART veya Dalvik'in işleyeceği dosya budur.

Aapt gibi araçlar kaynakları paketlemek için kullanılır ve zipalign veri hizalamasını optimize ederek işlemcinin belleğe mümkün olduğunca verimli bir şekilde erişmesini sağlar. APK cihaza ulaştığında sihir gerçekleşir: ART varsa ELF dosyası oluşturulur; Dalvik varsa ODEX dosyası anında oluşturulmaya başlanır .

ROM'lar ve deodexleme süreci hakkında ilginç bilgiler

Özel ROM'lar dünyasında, ODEX ve ODEX terimleri yaygın olarak kullanılır . ODEX dosyası donanıma bağımlı olduğundan ve oluşturulduğu sisteme bağlı olduğundan, bir telefondan diğerine kolayca aktarılamaz. Sistemi çökertmeden bir uygulamayı değiştirmek için geliştiriciler, optimize edilmiş dosyayı APK'ya entegre ederek manipülasyonu kolaylaştıran bir deodex işlemi gerçekleştirirler.

Android ekosistemi, esnek ancak enerji yoğun bir sanal makineden, kullanıcı deneyimine öncelik veren optimize edilmiş bir çalışma ortamına evrimleşmiştir. Dalvik, kodu gerçek zamanlı olarak çevirmenin çok yönlülüğüne odaklanırken, ART ön derleme yoluyla donanım kullanımını en üst düzeye çıkararak yazılımın daha kararlı , daha hızlı ve daha enerji verimli olmasını sağlamıştır.