Sejak versi awal Android seperti “Cupcake” (1.5) dan “Donut” (1.6) hingga versi saat ini “Marshmallow” (6.0), Android telah menjaga arsitektur berbasis layer mereka. Mulai dari bawah ada “Linux Kernel”, “Libraries and Android Runtime”, “Application Framework”, hingga “Application”.
Setiap aplikasi Android berjalan di mesin virtual (VM) masing-masing yang disebut “Dalvik”. Di Android 4.4, Google mulai menghadirkan Android Runtime baru bernama “ART”. Pengguna Android dapat dengan mudah berganti antara Dalvik dan ART di “Settings” / “Developer options” / “Select runtime” dan lalu sebuah dialog akan muncul.
Pada bagian berikut ini, kita akan melihat lebih dalam tentang perbedaan antara kedua runtime Android tersebut.
Aplikasi Android format file-nya adalah .apk, dengan class-class Java yang telah dikonversi menjadi bytecode DEX. Format bytecode DEX itu tidak terikat dengan arsitektur perangkat dan perlu ditranslasi ke kode mesin native agar dapat berjalan di perangkatnya. Hal ini sama baik untuk runtime ART maupun Dalvik.
Perubahaan paling mencolok dari Dalvik ke ART adalah Dalvik berbasis kompilasi Just-in-Time (JIT) sedangkan ART berbasis kompilasi Ahead-of-Time (AOT).
Dengan compiler Dalvik JIT, setiap aplikasi dijalankan, compiler-nya secara dinamis menerjemahkan sebagian dari bytecode Dalvik ke kode mesin. Sejalan dengan proses eksekusi, lebih banyak bytecode dikompilasi dan di-cache. Di lain pihak, ART dilengkapi dengan compiler Ahead-of-Time. Ketika aplikasi berada di fase instalasi, compiler-nya menerjemahkan bytecode DEX ke kode mesin dan menyimpannya di tempat penyimpanan perangkat. Ini hanya terjadi sekali saja ketika aplikasi diinstal di perangkat.
Manfaat paling penting dari runtime ART dibanding Dalvik adalah aplikasi berjalan lebih cepat di ART. Ini karena bytecode DEX sudah diterjemahkan ke kode mesin pada saat instalasi, tidak diperlukan waktu ekstra untuk mengkompilasikannya ketika runtime. Aplikasi juga dapat dibuka lebih cepat dengan ART karena alasan yang sama.
Karena Dalvik memerlukan memori ekstra untuk cache kode JIT, sebuah aplikasi hanya menempati memori dengan ukuran lebih kecil ketika berjalan di ART.
Dengan runtime Dalvik, kompilasi JIT terikat dengan CPU. Karena kompilasi AOT, ART membebaskan CPU dari translasi bytecode DEX ke kode mesin ketika eksekusi aplikasi sehingga memperkecil penggunaan daya. Menggunakan ART menghasilkan daya tahan baterai yang lebih lama.
Karena compiler AOT menerjemahkan bytecode DEX ke kode mesin ketika proses instalasi aplikasi, aplikasi memerlukan waktu lebih lama di runtime ART. Namun melihat manfaat seperti eksekusi yang lebih cepat dan proses pembukaan yang lebih cepat seperti yang sudah dibahas sebelumnya, waktu ekstra ini hanya terjadi ketika aplikasi diinstal sehingga manfaatnya setimpal.
Dengan runtime ART, compiler AOT menerjemahkan bytecode DEX dari sebuah aplikasi ke kode mesin dan menyimpannya di tempat penyimpanan perangkat. Biner yang sudah dikompilasikan sebelumnya memerlukan kapasitas penyimpanan yang lebih besar dibanding bytecode DEX. Ini berakibat pada penggunaan kapasitas yang lebih besar dibanding runtime Dalvik.
Hingga titik ini telah diperkenalkan runtime ART di Android. Kita juga sudah memabahas keuntungan dan kompromi yang ada, berpusat di kompilasi Ahead-of-Time dan kenaikan performa.
“Meet ART, Part 1: The New Super-Fast Android Runtime Google Has Been Working On In Secret For Over 2 Years Debuts In KitKat” http://www.androidpolice.com/2013/11/06/meet-art-part-1-the-new-super-fast-android-runtime-google-has-been-working-on-in-secret-for-over-2-years-debuts-in-kitkat/
“Dalvik JIT” http://android-developers.blogspot.com/2010/05/dalvik-jit.html
* Artikel ini adalah hasil kerja sama dengan Intel Developer Zone. Artikel asli bisa dilihat di link ini.
Cisco mengungkapkan tiga kerentanan dalam layanannya. Ini dia penanganannya!
Ini ulasan mengenai keuntungan OptimalCloud Partner Platform, platform baru milik Optimal idM!
Google kenalkan dua koleksi baru dari Coral. Dua koleksi baru ini bakal menambah kemampuan pengembangan…
Raksasa Google baru saja mengembangkan sistem pemindaian kanker payudara berbasis kecerdasan buatan. Bagaimana hasilnya, berikut…
Meski dikenalkan bersamaan dengan Android 10 Beta, sampai kini Bubbles Notifications masih dalam tahap pengembangan.…
Samsung akan kembali memamerkan hasil program C-Lab ke ajang CES 2020. Ini dia proyek dan…