Практически все, кто сталкивался с прошивкой своего Android планшета или телефона обращали внимание на то, что прошивки бывают odexed и deodexed.  И мало кто понимает, что скрывается за этими понятиями, и какие преимущества и недостатки несет с собой тот или иной тип прошивки.

Что такое odex и deodex

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

 

Если вы заглянете в папку с системными приложениями на планшете или телефоне со стоковой (заводской) прошивкой, то заметите, что каждое приложение имеет кроме apk-файла, его двойник, odex-файл. Например, файлу applikatoin.apk соответствует файл applikatoin.odex.

Зачем же нужен этот odex-файл? Если кратко (и упрощенно), то каждая программа состоит из набора инструкций, благодаря которым она работает, и вспомогательных данных, например,  картинок, которые отображаются на экране. Так вот, в файле odex и хранится сам код программы.

Все приложения в системе Android написаны (закодированы) на языке Java и для того, чтобы мозг устройства – его процессор смог выполнить этот Java код, он переводится на понятный для процессора язык виртуальной Java-машиной "Dalvik".

 

В деодексированной прошивке код находится внутри apk файла. Apk файлы упакованы так же, как и обычный zip файлы, поэтому деодексированная прошивка обычно имеет меньший размер.

Но код, содержащийся в файле odex оптимизирован для конкретного устройства, а код, хранящийся в apk файле может выполняться на любом устройстве.

Вы уже, наверное, и сами поняли, в чем преимущество odexed прошивки. Ее системные приложения уже оптимизированы для работы на конкретном оборудовании.

 

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

 

Система Android при первом запуске системных приложений deodexed прошивки, извлекает из них код, перекомпилирует и сохраняет в специальном месте: в папке dalvik-cache и потом берет уже готовый код для нужного apk-файла из этой папки. Поэтому и рекомендуется при перепрошивке планшета или телефона делать очистку dalvik-cache (clear dalvik-cache) – программа в новой прошивке может измениться, а система будет при ее запуске использовать старый код. И поэтому так долго запускаются deodexed прошивки первый раз после их установки на устройство и очистки dalvik-cache.

 

Кроме того, считается, что odexed прошивки работают быстрее, чем аналогичные но, деодексированные.

 


Похожие материалы:

Что такое ClockworkMod Recovery. Полная инструкция.

Прошивка. Что это такое и зачем она нужна.

Изучаем Android. Ядро (Kernel) - что это такое.

Изучаем Android. Launcher (лончер) что это такое и зачем он нужен

Изучаем Android. Виджет – что это такое и как его добавить на рабочий стол.