В чем разница между одексированными и деодексированными ПЗУ ? Какие стандартные (стандартные) ПЗУ используются на корабле?
В чем разница между одексированными и деодексированными ПЗУ ? Какие стандартные (стандартные) ПЗУ используются на корабле?
Ответы:
.dex
Файл в основном скомпилированные версии байткод из приложения , который был построен для Dalvik VM , какие приложения Android, работать на. Я полагаю, что это коротко для исполняемого файла Dalvik, но я не уверен, правильно ли я это помню.
.odex
Файл представляет собой оптимизированный .dex
файл (отсюда и «о»), что означает , что он в основном был предварительно скомпилированных для конкретной платформы. Преимущество этого состоит в том, что время запуска намного быстрее, поскольку виртуальная машина не должна выполнять какую-либо оптимизацию во время запуска / выполнения. Недостатки: 1) что оно занимает некоторое дополнительное пространство и 2) одексированное приложение не будет работать должным образом, если оно будет помещено на другое устройство, и для его .odex
запуска должен быть связан соответствующий файл.
ПЗУ обычно выпускаются в деодексированной форме, потому что их можно довольно легко тематизировать и модифицировать, в то время как тематическое / модифицированное одексированное ПЗУ в принципе невозможно (в лучшем случае все вылетает как сумасшедший). Некоторые люди также предпочитают выпускать свои ПЗУ в одексированных версиях для людей, которые предпочли бы повышение производительности.
Я полагаю, что большинство стоковых ПЗУ, которые я видел, являются одексированными, потому что носители / производители хотят повышения производительности. У них также нет каких-либо официальных методов создания тем, поэтому, возможно, им все равно, если вы не можете изменить цвета значков состояния, текста вашей системы или еще чего-нибудь. Кроме того, у них есть преимущество, заключающееся в том, что они знают, на каком устройстве они хотят, чтобы их система работала, так что .odex
, я думаю , они могут очень легко предварительно скомпилировать файлы. В качестве дополнительного бонуса, это затрудняет извлечение .apk
файлов с устройства и передачу их людям.
Изменить: Так как я только что понял, что я не очень ясно о разнице здесь - «odexed» ROM является тем, где приложения были предварительно скомпилированы, и, таким образом, содержат связанные .odex
файлы, которые являются внешними по отношению к .apk
файлам. «Деодексированное» ПЗУ - это то, где данные, которые будут оптимизированы в .odex
файлах, были более или менее объединены обратно в .apk
файлы (то есть они не оптимизированы, но в основном .apk
не зависят от платформы), таким образом, файлы являются автономными и отсутствуют .odex
файлы. , Обычно это делается с помощью утилиты деодексирования, такой как smali / baksmali .
Я лично хотел узнать ответ на это некоторое время назад. Вот что я придумал:
Одексед и Деодексед
Предполагается, что стандартное ПЗУ предназначено для выпуска, что обеспечивает более плавную и быструю загрузку приложений в память. Каждый .apk имеет соответствующий .odex. Когда приложение используется системой или пользователем, .odex используется для запуска загрузки приложения. У деодексированного ПЗУ есть только файл .apk. Когда приложение вызывается в память только из-за извлечения данных из его .apk, это занимает больше времени из-за того, что не оптимизировано для более легкого извлечения из системы.
Общие вопросы, которые мне задают слишком часто:
Чтобы ответить на эти вопросы, все сводится к одному слову - themability. Если вы поговорите с кем-либо из ПЗУ с темами, они скажут, что деодексировать ПЗУ очень просто. Поскольку мы начали использовать деодексированные ПЗУ, разработчики теперь могли создавать темы для применения к ПЗУ, а не утомительным вариантом для темы самого ПЗУ (выпустить пользовательское ПЗУ для темы). Если вы используете odexed ROM и пытаетесь применять темы, это не сработает или только создаст темы с некоторыми визуальными аспектами, которые предоставят вам ужасный пользовательский интерфейс.
Деодекс Минусы
Бьюсь об заклад, вы теперь задаетесь вопросом, почему ... почему даже есть возможность загрузить пользовательский ROM, который odexed? Ответ на это - скорость. Помните, как я сказал, что файлы odexed оптимизированы для облегчения поиска? Проще говоря ... он оптимизирован (как индексирование таблицы данных), чтобы система могла быстрее открывать .apk.
Деодекс и Зипалайн
Все так быстро хотели получить лучшее из обоих миров после того, как тенденция деодексирования начала достигать своего пика, эти опытные разработчики ПЗУ придумали решение zipalign при загрузке. Это оптимизирует каждый .apk при каждой перезагрузке, что позволяет системе более эффективно и быстрее получать доступ к приложениям. Конечно, недостатком является немного более медленное время загрузки.
Резюме
Если у вас есть выбор, чтобы загрузить пользовательское ПЗУ с odexed или deodexed, я бы просто пошел с deodex ROM. Вы никогда не знаете, когда захотите попробовать тему или внести некоторые изменения самостоятельно, и было бы неплохо иметь простые опции, а не перепрограммировать целый новый ROM. На более новых устройствах вы можете даже не увидеть заметной разницы с zipalign при загрузке. Если ваше устройство довольно медленное и устаревшее, то я бы посоветовал подумать об этом немного сложнее. Могу поспорить, что некоторые из вас предпочли бы получить хорошее минимальное оптимизированное (odexed) ПЗУ для лучшей производительности и скорости по сравнению с настройкой пользовательского интерфейса.
Если вы новичок в теме, вы можете найти некоторые общие термины в моей первоначальной статье здесь: http://codeversed.com/deodexed-vs-odexed-rom
В противном случае вышеизложенное показывает вам все, что вам нужно знать. Если я что-то пропустил, пожалуйста, дайте мне знать :)
Файл .dex (исполняемый dalvik) в основном похож на файлы .exe Windows (за исключением языка Dalvik VM вместо скомпилированного кода). По сути, .odex (оптимизированный исполняемый файл dalvik) и deodex (де-оптимизированный исполняемый файл dalvik) относятся к тому, как файлы ресурсов обрабатываются в приложениях. .Odex - это файл .dex, который был оптимизирован программой dexopt: http://www.netmite.com/android/mydroid/dalvik/docs/dexopt.html.
преимущество
Недостаток