Изучаем Android. Что такое odex и deodex
Практически все, кто сталкивался с прошивкой своего Android планшета или телефона обращали внимание на то, что прошивки бывают odexed и deodexed. И мало кто понимает, что скрывается за этими понятиями, и какие преимущества и недостатки несет с собой тот или иной тип прошивки.
Сегодня я попытаюсь простыми словами объяснить, что же такое 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. Виджет – что это такое и как его добавить на рабочий стол.
Свежие материалы:
Популярное прошлых лет
- Живые обои для Android. Гроза (Скачать)
- Что такое права доступа root для чего они нужны и как их получить.
- Обзор планшета Archos 80 G9
- Где Windows 10 хранит обои экрана блокировки и как установить их в качестве обоев на рабочий стол
- Программы для Android. Ищем приложения, созданные для планшетов с помощью Tablet Market
- Как заменить шрифт в Android с помощью Font Installer.
- Советы и подсказки. Как найти Параметры разработчика и отладку по USB в Android 4.2 и выше
- Обзор планшета Asus eee Pad Transformer
- Прошивка обновлений Android 4.0 для Archos 80 G9 и Archos 101 G9 вручную. Инструкция
- Как установить прошивку Android 4.1 Jelly Bean от Asus Transformer TF300 на планшет Asus Transformer Infinity TF700 (Инструкция)