ПЗУ с деодексированными программами быстрее или медленнее, чем одексированные?

8

Я немного смущен эффектом деодексирования (или даже терминологией).

Основываясь на ответах на вопрос «В чем разница между одексированными и деодексированными ромами? »:

«Деодексированное» ПЗУ - это то, где файлы .odex были более или менее объединены в .apk.

Похоже, что это подразумевает, что «деодексированное» ПЗУ - это ОДЕКСИРОВАННОЕ (то есть предварительно скомпилированное / оптимизированное) ПЗУ, в котором пакет .apk содержит материал .odex вместо того, чтобы находиться в отдельном файле.

Однако тот же ответ имеет, казалось бы, противоположную цитату:

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

Эта вторая цитата, по-видимому, подразумевает, что деодексированное ПЗУ НЕ имеет прироста производительности одексированного ПЗУ (основываясь на последнем предложении) - я предполагаю, потому что оно полностью удаляет информацию .odex для переносимости / создания тем; в то время как первая цитата говорит о том, что деодексированное ПЗУ оптимизировано так же, как и odexed, но по-разному упаковано.

Какое из этих значений является правильным? Что мне не хватает?

Пример:

  • Fission Vanilla: «ROM имеет root и был деодексирован, а zip выровнен»
DVK
источник

Ответы:

8

В деодексированных ПЗУ нет файлов .odex, интегрированных в .apk, они удаляются. В своем ответе на другой вопрос eldareathis имел в виду, что зависимость .apk от файлов .odex удалена; некоторая информация интегрируется обратно в .apk, но не в сам файл .odex. На этой странице есть некоторые технические детали.

Из-за этого деодексированные ПЗУ могут быть немного медленнее; однако я считаю, что, поскольку кеш Dalvik создается с использованием ПЗУ, разрыв в производительности сводится к минимуму.

Мэтью Рид
источник
Спасибо! Сможете ли вы уточнить, что такое «разрыв в производительности минимизируется»? Означает ли это, что разрыв полностью исключается для любого .apk после первого использования (и mimized применяется к «не каждому .apk создан кеш сразу), или это означает, что для данного .apk odexed версия все равно будет Быть быстрее, чем деодексирован, даже после того, как будет построен каркас?
DVK
@DVK В общем, я думаю, что .odex все равно будет быстрее, но кэширование файлов .dex избавляет от необходимости переводить все .apk при каждом запуске. Я думаю, что в большинстве случаев издержки, вероятно, гораздо более значительны, чем оптимизация.
Мэтью Прочитал
2
@DVK: я вижу, как это было неясно в моем предыдущем ответе, поэтому я вернулся и попытался уточнить немного. Спасибо что подметил это. Относительно этого вопроса все, что сказал Матфей в своем ответе, абсолютно правильно.
eldarerathis