Изучаем 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. Виджет – что это такое и как его добавить на рабочий стол.
Популярное прошлых лет
- Получение Root прав с помощью программы Z4root. Инструкция
- Изучаем Android. Как отключить ненужные системные программы или вредоносные приложения на телефоне или планшете (Android 4.0 и выше)
- Как вернуть старый Android Market
- Root для Samsung Galaxy Note 10.1 (Инструкция)
- Что такое Xposed Framework для Android. Как установить Xposed Framework на смартфон или планшет и как с ним работать (Инструкция)
- Как раздать интернет с ПК на Android планшет или смартфон. Инструкция.
- Скачать живые обои MyWaterlive от ASUS Eee Pad Transformer и еще десяток других в этом стиле для Honeycomb планшетов.
- Скачать новую версию Google Play Маркет 4.3.11
- Программа для чтения книг на Android устройствах FBReader теперь умеет читать книги вслух и имеет собственный API
- Установка Windows 8.1 на планшет Asus T100TA с использованием WIMBoot