Thursday, June 27, 2013

Pengertian Dex, Odex dan Deodex pada Aplikasi Android

Para antusias android atau bahasa kerennya Oprekers, mungkin sudah terbiasa dengan istilah DEX dan ODEX pada aplikasi android. Namun tidak banyak yang benar-benar mengerti maksud dari istilah ini, termasuk saya. Hehehe...

Seperti yang saya tahu secara umum aplikasi yang masih berupa Odex biasanya sulit untuk dimodifikasi, sehingga pada opreker harus melakukan Deodex pada file APK untuk bisa merubah script dan mengeditnya.  Pada stock ROM bawaan pabrik, biasanya file-file aplikasi yang ada di system merupakan file Odexing. Karena selain berukuran lebih kecil, file odex membuat proses boot dan loading aplikasi lebih cepat.

DEX adalah singkatan dari Dalvik Executable

File ini adalah executable atau bisa dijalankan seperti Exe di Windows. Setiap file APK memiliki classes.dex dan APK sendiri sebenarnya merupakan paket yang berisi berbagai macam file dan folder aplikasi tersebut.

ODEX adalah singkatan dari Optimization DEX

Setiap APK atau JAR memiliki pasangannya.

Contoh aplikasi Angry Birds dalam bentuk ODEX :
APK
/data/app/com.rovio.angrybirds-1.apk
odex
/data/app/com.rovio.angrybirds-1.odex

 Pada file Odex tidak ada classes.dex di dalam APK dan tidak ada dalvik-cache

DeODEX adalah mengembalikan file ODEX ke bentuk aslinya yaitu DEX.

Setelah melakukan instalasi Apk, dalvik-vm mengekstrak classes.dex dan melakukan optimisasi agar bisa bisa berjalan pada device. File optimisasi tersebut adalah dalvik-cache yang terletak di /data/dalvik-cache.

Contoh bentuk Deodex
APK/data/app/com.rovio.angrybirds-1.apk
Optimized dex/data/dalvik-cache/data@app@com.rovio.angrybirds-1.apk@classes.dex

Perbedaan ukuran file pada Deodex dan Odex Angry Birds :

Deodex/data/app/com.rovio.angrybirds-1.apk --> 14.58MB
/data/dalvik-cache/data@app@com.rovio.angrybirds-1.apk@classes.dex --> 1.09MB
total size 14.58MB+1.09MB = 15.67MB 
Odex/data/app/com.rovio.angrybirds-1.apk --> 13.59MB
/data/app/com.rovio.angrybirds-1.odex --> 1.09MB
total size 15.59MB+1.09MB = 14.68MB

Terlihat jelas bahwa ukuran Odexed file lebih kecil daripada deodexed.

Tujuan dari Deodexing adalah lebih kepada modifikasi aplikasi, jika anda hanya pengguna biasa yang tidak berminat untuk mengotak-atik aplikasi, saya rasa tindakan Deodexing tidak banyak memberi keuntungan.


EmoticonEmoticon