Вивчаємо Android

Сьогодні я спробую простими словами пояснити, що ж таке odex і deodex, і навіщо воно потрібне.
Навіщо потрібен цей odex-файл? Якщо коротко (і спрощено), кожна програма складається з набору інструкцій, завдяки яким вона працює, і допоміжних даних, наприклад, картинок, що відображаються на екрані. Так от, у файлі odex і зберігається сам код програми.
Всі додатки в системі Android написані (закодовані) мовою Java і для того, щоб мозок пристрою - його процесор зміг виконати цей Java код, він перекладається зрозумілою для процесора мовою віртуальної Java-машиною "Dalvik".
У деодексованій прошивці код знаходиться всередині apk файлу. Apk файли упаковані так само, як і звичайний zip файли, тому деодексована прошивка зазвичай має менший розмір.
Але код, що міститься у файлі odex, оптимізований для конкретного пристрою, а код, що зберігається в apk файлі, може виконуватися на будь-якому пристрої.
Ви вже, мабуть, і самі зрозуміли, у чому перевага odexed прошивки. Її системні програми вже оптимізовані для роботи на конкретному устаткуванні.
Натомість код, який міститься в деодексованому додатку, може запускатися на будь-якому android пристрої та такі програми простіше модифікувати. Наприклад, щоб замінити в ньому зображення, достатньо розпакувати apk файл, як звичайний zip архів, замінити картинки та запакувати програму знову. З odexed програмами такий номер не пройде – після подібних змін програма може перестати запускатися взагалі.
Крім того, вважається, що odexed прошивки працюють швидше, ніж аналогічні але, деодексовані.