Оглавление:
Кларк пишет,
Что, черт возьми, означает «одекс» и «деодекс»? Я вижу термины, упомянутые почти в каждой пользовательской ветке ПЗУ, и не могу найти ответ, который могу понять. Я надеюсь, что Android Central может помочь.
Отличный вопрос, Кларк. И один, я думаю, мы можем ответить с точки зрения, что большинство людей поймут. Как вы заметили, во многих сообщениях на форумах вы видите термины odex и deodexed, посвященные пользовательским ПЗУ или различным способам взлома телефонов и планшетов. Разработчикам требуется много работы для создания деодексированных ПЗУ из «стандартных» ПЗУ, подобных тем, которые предлагаются как OEM, так и Google.
Для начала нам нужно знать, что такое файл odex. Это часть приложения (файл.apk), которая была предварительно скомпилирована, чтобы виртуальная машина Dalvik загружала ее быстрее, используя меньше ресурсов. Если вы посмотрите в папку / system / app / на своем телефоне или планшете Android, то увидите, что почти в каждом приложении есть как файл.apk, так и файл.odex. Эти файлы работают вместе через виртуальную машину Dalvik, чтобы приложения работали должным образом на наших устройствах. Давайте разберемся с этим после перерыва.
Дальвик В.М.
Dalvik VM является большой частью системы Android. Это компонент, который позволяет сторонним приложениям, написанным на Java, запускаться на вашем телефоне или планшете. Система сама запускает DVM, и когда вы нажимаете, чтобы запустить приложение, оно начинает работать. Он берет данные внутри файлов.apk и, используя компилятор Just-in-time (JIT), собирает информацию в программу, а затем запускает ее. Части кода, уже оптимизированные и встроенные в файл, который может работать DVM, ускоряют процесс и используют меньше ресурсов. Вот что такое файл odex.
Файлы Odex
Файлы odex, которые вы видите в вашей системной папке, создаются теми людьми, которые написали и создали само приложение. Приложения для Android написаны на Java, а затем преобразованы в байт-код. Затем они преобразуются из стандартных.class-файлов, совместимых со стандартной виртуальной машиной Java, в файл специального типа, который может прочитать виртуальная машина Dalvik. Это так называемые.dex файлы. Когда эти файлы.dex размещаются вне остальной части кода (который находится в файле.apk), у вас остается отдельный файл.odex.
Есть много веских причин иметь отдельные файлы.odex. Они ускоряют загрузку (особенно первую загрузку), создавая Dalvik-кэш по мере загрузки системы. Они также экономят место, указывая, когда это возможно, на платформу Android и позволяют разработчику приложения оптимизировать свои программы. Но наличие отдельных файлов.odex не очень удобно для хакеров.
Deodexing
Деодексировать файлы означает взять отдельный файл.odex и файл.apk и перестроить их так, чтобы вся эта предварительно собранная информация о приложении содержалась в файле.apk, а не в его собственном файле. Предварительно созданные данные для виртуальной машины Dalvik теперь находятся в файле classes.dex внутри файла.apk, как показано на рисунке выше. Это делает файлы.apk немного больше, и они не могут быть предварительно загружены при запуске системы. Но они могут быть взломаны хакерами и фанатами.
Со всем кодом и данными для программы в одном месте, вы можете использовать инструменты, чтобы «отстроить» приложение и редактировать его, как вам нравится. Так создаются темы и настройки, такие как процент заряда батареи для «стандартных» ПЗУ. После того, как разработчик внес свои изменения, он перестраивает файл.apk, и изменения могут выполняться. Это не повлияет на любую другую часть системы, поскольку ни один код или данные не передаются другим приложениям.
Какой из них выбрать?
Это действительно зависит от вас, и каковы будут ваши потребности, но я советую перепрограммировать деодексную версию, когда это возможно. Да, odex ROM загружаются быстрее, но вы действительно заметите это только при первой загрузке, когда все системные приложения предварительно кэшируются виртуальной машиной Dalvik. Вы также можете сэкономить немало места, используя файлы odex, но это место находится в системном разделе и не даст вам места для дополнительных приложений, если ваш телефон или планшет использует отдельный раздел приложений. С современными современными телефонами и их многоядерными процессорами и огромными банками оперативной памяти вы даже не заметите более быстрое время загрузки приложений.
Если вы хотите сделать такие вещи, как изменение строки состояния, темы TouchWiz или Sense, вам понадобится деодекс ПЗУ. Вам также понадобится деодексальное ПЗУ, чтобы сделать некоторые действительно крутые глубокие системные настройки, такие как изменение меню настроек или редактирование каркаса. Короче говоря, если вы уже разблокировали загрузчик и получили root-права и готовы к пользовательскому ПЗУ, выбор деодексированной версии, вероятно, будет лучшим выбором. Вы будете поражены тем, что могут придумать эти сумасшедшие разработчики, и вы наверняка столкнетесь с некоторыми из них, которые хотите попробовать сами.