Вивчаємо Android

odex

Сьогодні я спробую простими словами пояснити, що ж таке odex і deodex, і навіщо воно потрібне.

Навіщо потрібен цей odex-файл? Якщо коротко (і спрощено), кожна програма складається з набору інструкцій, завдяки яким вона працює, і допоміжних даних, наприклад, картинок, що відображаються на екрані. Так от, у файлі odex і зберігається сам код програми.

Всі додатки в системі Android написані (закодовані) мовою Java і для того, щоб мозок пристрою - його процесор зміг виконати цей Java код, він перекладається зрозумілою для процесора мовою віртуальної Java-машиною "Dalvik".

У деодексованій прошивці код знаходиться всередині apk файлу. Apk файли упаковані так само, як і звичайний zip файли, тому деодексована прошивка зазвичай має менший розмір.

Але код, що міститься у файлі odex, оптимізований для конкретного пристрою, а код, що зберігається в apk файлі, може виконуватися на будь-якому пристрої.

Ви вже, мабуть, і самі зрозуміли, у чому перевага odexed прошивки. Її системні програми вже оптимізовані для роботи на конкретному устаткуванні.

Натомість код, який міститься в деодексованому додатку, може запускатися на будь-якому android пристрої та такі програми простіше модифікувати. Наприклад, щоб замінити в ньому зображення, достатньо розпакувати apk файл, як звичайний zip архів, замінити картинки та запакувати програму знову. З odexed програмами такий номер не пройде – після подібних змін програма може перестати запускатися взагалі.

Крім того, вважається, що odexed прошивки працюють швидше, ніж аналогічні але, деодексовані.