В чем разница между одексированными и деодексированными ПЗУ?


43

В чем разница между одексированными и деодексированными ПЗУ ? Какие стандартные (стандартные) ПЗУ используются на корабле?

Ответы:


39

.dexФайл в основном скомпилированные версии байткод из приложения , который был построен для Dalvik VM , какие приложения Android, работать на. Я полагаю, что это коротко для исполняемого файла Dalvik, но я не уверен, правильно ли я это помню.

.odexФайл представляет собой оптимизированный .dexфайл (отсюда и «о»), что означает , что он в основном был предварительно скомпилированных для конкретной платформы. Преимущество этого состоит в том, что время запуска намного быстрее, поскольку виртуальная машина не должна выполнять какую-либо оптимизацию во время запуска / выполнения. Недостатки: 1) что оно занимает некоторое дополнительное пространство и 2) одексированное приложение не будет работать должным образом, если оно будет помещено на другое устройство, и для его .odexзапуска должен быть связан соответствующий файл.

ПЗУ обычно выпускаются в деодексированной форме, потому что их можно довольно легко тематизировать и модифицировать, в то время как тематическое / модифицированное одексированное ПЗУ в принципе невозможно (в лучшем случае все вылетает как сумасшедший). Некоторые люди также предпочитают выпускать свои ПЗУ в одексированных версиях для людей, которые предпочли бы повышение производительности.

Я полагаю, что большинство стоковых ПЗУ, которые я видел, являются одексированными, потому что носители / производители хотят повышения производительности. У них также нет каких-либо официальных методов создания тем, поэтому, возможно, им все равно, если вы не можете изменить цвета значков состояния, текста вашей системы или еще чего-нибудь. Кроме того, у них есть преимущество, заключающееся в том, что они знают, на каком устройстве они хотят, чтобы их система работала, так что .odex, я думаю , они могут очень легко предварительно скомпилировать файлы. В качестве дополнительного бонуса, это затрудняет извлечение .apkфайлов с устройства и передачу их людям.

Изменить: Так как я только что понял, что я не очень ясно о разнице здесь - «odexed» ROM является тем, где приложения были предварительно скомпилированы, и, таким образом, содержат связанные .odexфайлы, которые являются внешними по отношению к .apkфайлам. «Деодексированное» ПЗУ - это то, где данные, которые будут оптимизированы в .odexфайлах, были более или менее объединены обратно в .apkфайлы (то есть они не оптимизированы, но в основном .apkне зависят от платформы), таким образом, файлы являются автономными и отсутствуют .odexфайлы. , Обычно это делается с помощью утилиты деодексирования, такой как smali / baksmali .


Последнее редактирование, делающее вещи более явными, было очень полезным. +1
rbrito

7

Я лично хотел узнать ответ на это некоторое время назад. Вот что я придумал:

Одексед и Деодексед

Предполагается, что стандартное ПЗУ предназначено для выпуска, что обеспечивает более плавную и быструю загрузку приложений в память. Каждый .apk имеет соответствующий .odex. Когда приложение используется системой или пользователем, .odex используется для запуска загрузки приложения. У деодексированного ПЗУ есть только файл .apk. Когда приложение вызывается в память только из-за извлечения данных из его .apk, это занимает больше времени из-за того, что не оптимизировано для более легкого извлечения из системы.

Общие вопросы, которые мне задают слишком часто:

  1. Почему пользовательские ПЗУ деодексированы?
  2. Должен ли я использовать odexed или deodexed ROM?

Чтобы ответить на эти вопросы, все сводится к одному слову - themability. Если вы поговорите с кем-либо из ПЗУ с темами, они скажут, что деодексировать ПЗУ очень просто. Поскольку мы начали использовать деодексированные ПЗУ, разработчики теперь могли создавать темы для применения к ПЗУ, а не утомительным вариантом для темы самого ПЗУ (выпустить пользовательское ПЗУ для темы). Если вы используете odexed ROM и пытаетесь применять темы, это не сработает или только создаст темы с некоторыми визуальными аспектами, которые предоставят вам ужасный пользовательский интерфейс.

Деодекс Минусы

Бьюсь об заклад, вы теперь задаетесь вопросом, почему ... почему даже есть возможность загрузить пользовательский ROM, который odexed? Ответ на это - скорость. Помните, как я сказал, что файлы odexed оптимизированы для облегчения поиска? Проще говоря ... он оптимизирован (как индексирование таблицы данных), чтобы система могла быстрее открывать .apk.

Деодекс и Зипалайн

Все так быстро хотели получить лучшее из обоих миров после того, как тенденция деодексирования начала достигать своего пика, эти опытные разработчики ПЗУ придумали решение zipalign при загрузке. Это оптимизирует каждый .apk при каждой перезагрузке, что позволяет системе более эффективно и быстрее получать доступ к приложениям. Конечно, недостатком является немного более медленное время загрузки.

Резюме

Если у вас есть выбор, чтобы загрузить пользовательское ПЗУ с odexed или deodexed, я бы просто пошел с deodex ROM. Вы никогда не знаете, когда захотите попробовать тему или внести некоторые изменения самостоятельно, и было бы неплохо иметь простые опции, а не перепрограммировать целый новый ROM. На более новых устройствах вы можете даже не увидеть заметной разницы с zipalign при загрузке. Если ваше устройство довольно медленное и устаревшее, то я бы посоветовал подумать об этом немного сложнее. Могу поспорить, что некоторые из вас предпочли бы получить хорошее минимальное оптимизированное (odexed) ПЗУ для лучшей производительности и скорости по сравнению с настройкой пользовательского интерфейса.

Если вы новичок в теме, вы можете найти некоторые общие термины в моей первоначальной статье здесь: http://codeversed.com/deodexed-vs-odexed-rom

В противном случае вышеизложенное показывает вам все, что вам нужно знать. Если я что-то пропустил, пожалуйста, дайте мне знать :)


1

Файл .dex (исполняемый dalvik) в основном похож на файлы .exe Windows (за исключением языка Dalvik VM вместо скомпилированного кода). По сути, .odex (оптимизированный исполняемый файл dalvik) и deodex (де-оптимизированный исполняемый файл dalvik) относятся к тому, как файлы ресурсов обрабатываются в приложениях. .Odex - это файл .dex, который был оптимизирован программой dexopt: http://www.netmite.com/android/mydroid/dalvik/docs/dexopt.html.

преимущество

  • одекс быстрее
  • это облегчает тему

Недостаток

  • деодекс медленнее при первом запуске
  • файлы .odex затрудняют тематику

«Деодекс» не означает неоптимизированный .dex, это означает удаление файлов .odex (по сути, удаление файлов .odex). Эльдарерат, у него все в порядке.
Мэтью Читал

Спасибо за предоставление критически важной информации о ресурсах! Тем не менее, сравнение exe не велико.
Пол
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.