dex,odex,deodex - Dalvik VM

2012-03-25

Android IT

セルスタンバイ問題の対策でdeodexに行き当たり、調べた事のメモ。

関連記事
  1. イオンSIM(b-mobileSIM)とセルスタンバイ問題1 - GALAXY NEXUS,2
参考情報
  1. Dalvik仮想マシン(Wikipedia)
  2. Dalvik VM(akJava Android 情報)
  3. Desire X06HT – dex化(deodex)・odex化処理(MEDIA Street)
  4. de-odexing(工人舎SC3
  5. [Android] apkとodex
自分なりのまとめ
  • Dalvik VM(Virtual Machine)
    androidの実行環境。Javaベースで、低メモリ環境用に最適化したもの。Javaバイトコードは走らないので、JavaVMではない。
  • apk
    androidアプリのパッケージ。zipアーカイブファイル。
  • dex(Dalvik Executable)
    Dalvik VM用の実行ファイル。環境(機種)依存性なし。
    • /data/app下のアプリ(ダウンロードしたアプリ)のapkファイル内にあり。
    • /system/app下のアプリ(システムアプリやプリインストールのアプリ)のapkファイル内にはない事が多い。下記odexがあるため不要。/system/framework下等も?。
  • odex(Optimized Dalvik Executable)
    dexを端末環境にあわせて最適化したもの。環境依存性あり。
    • /data/app下のアプリでは、実行時に/data/dalvik-cache下に作成される。ということだが、私の端末(GALAXY NEXUSにAndroid Revolution HD)では、*.dexがあった。???。
    • /system/app下等のアプリでは、最初からodexがapkと同じディレクトリにある事が多い。
  • dexかodexかどちらかがあれば実行できるので、プリインストールなアプリでodexがある場合は、dexがapkファイルないから削除されている事が多い。
  • deodex(,deodexed,deodexing)
    odexをdexに変換すること。また返還された状態。
    odexは環境依存性がある(汎用性がない)ので、いろいろしたい場合にdexに変換する事。
  • カスタムROMでは、一般的にdeodexされている。ただインストールする立場としては、deodexedというより最初からdexという気もするが…。