Описание тега dexopt
Система Android поставляется с оптимизатором и верификатором для приложений. Это средство называется dexopt. Его основная задача - проверить байт-код dalvik приложений и оптимизировать байт-код для эффективного выполнения. Dexopt - это собственная программа, которая использует libdex / dvm [1] для анализа файла dex и интерпретации байт-кода dalvik. Он будет вызываться для каждого приложения при установке на устройстве Android. Если проверка не удалась, приложение отклоняется и не устанавливается на устройство. После проверки приложений dexopt генерирует его оптимизированную версию. Это будет сохранено для последующего выполнения в каталоге dalvik-cache. Эти два шага также будут выполнены при загрузке устройств для всех приложений, которые ранее не были оптимизированы.
Проверка - это прежде всего не функция безопасности! Его легко обойти в большинстве случаев, когда это не рекомендуется разработчикам приложений. Dexopt проверяет структуру файла dex и выполняет подробный анализ байт-кода. Благодаря этому процесс установки может отклонять сломанные приложения раньше, чем они будут выполнены. Проверка байт-кода имеет еще одно очень важное преимущество. Механизм оптимизации может предполагать гораздо более строгие предварительные условия для байт-кода, что приводит к лучшей оптимизации.
На данный момент нас больше интересует анализ / оптимизация байт-кода dalvik. Dexopt анализирует все методы для всех классов в файле dex. Это будет сделано с помощью алгоритма линейной развертки, который повторяет байт-код. Для каждой инструкции будут выполняться разные шаги проверки / оптимизации.