Какой процесс происходит при оптимизации системы?

Мой вопрос следующий: не так давно я перемещал apk, данные и файлы . dexфайлы в каталоги / data, и они не показывали приложения, которые я установил вручную, если не до тех пор, пока я не перезагрузил устройство и не появилось сообщение «оптимизировать систему» ​​с того момента, как мне стало любопытно.

Моя цель — узнать, что происходит в этом процессе, и узнать, как повторить это вручную.

Если вы что-то знаете об этом, буду рад вашим комментариям и ответам.

Чтобы повторить этот процесс, установите файл APK, как обычно. Odex-ing является частью процесса установки.
Может ввести в заблуждение то, что файлы /data/dalvik-cache/имеют расширение .dex, потому что их фактический формат odexотличается от того, что вы извлекаете из APK.

Ответы (1)

Что делает Android, когда говорит «оптимизация приложений/системы»?

По сути, система Android будет создавать оптимизированную версию каждого приложения. Этот процесс ускоряет запуск каждого приложения в новой версии Android.

Несмотря на то, что написано «оптимизация», операционная система создает файлы «odex» для ваших приложений с нуля. В качестве простого объяснения, файлы odex могут помочь системе загружаться быстрее и сократить время, необходимое для запуска приложений.

Файлы Apk и файлы odex

Более длинная история заключается в том, что когда файл APK добавляется в вашу систему Android, на самом деле он не сохраняется таким образом. Он преобразуется в нечто, называемое файлом «odex».

ОС Android не хранит приложения в том виде, в каком они есть после установки (т. е. в виде одного APK-файла). Оптимизированная версия приложения хранится в кеше Dalvik — так называемом odexфайле».

Что такое файл Odex?

В файловой системе Android приложения поставляются в виде пакетов с расширением .apk. Эти пакеты приложений или APK содержат определенные .odex(оптимизированные исполняемые файлы Dalvik) файлы, предполагаемая функция которых заключается в экономии места. Эти odexфайлы на самом деле представляют собой наборы частей приложения, которые оптимизируются перед загрузкой. Это ускоряет процесс загрузки, поскольку предварительно загружает часть приложения. С другой стороны, это также затрудняет взлом этих приложений, потому что часть кода уже была извлечена в другое место перед выполнением.

Деодекс

Деодексация — это, по сути, переупаковка этих APK определенным образом, так что они снова собираются в classes.dexфайлы (Dalvik EXecutable).

При этом все части пакета приложения снова собираются в одном месте, что избавляет от беспокойства о том, что модифицированный APK конфликтует с некоторыми отдельными одексированными частями.

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

Есть несколько объяснений того, как это работает:

В Android приложения поставляются в виде пакетов с расширением .apk. Эти пакеты приложений или APK содержат определенные .odexфайлы, предполагаемая функция которых заключается в экономии места. Эти файлы «odex» на самом деле представляют собой наборы частей приложения, которые оптимизируются перед загрузкой. Это ускоряет процесс загрузки, поскольку предварительно загружает часть приложения.

ОС Android использует виртуальную машину на основе Java для запуска приложений, называемую виртуальной машиной Dalvik. Деодексированный или .dexфайл содержит кеш, используемый этой виртуальной машиной (называемый Dalvik-кэшем) для программы, и он хранится внутри APK. Файл .odex, с другой стороны, представляет собой оптимизированную версию того же файла .dex, который хранится рядом с APK, а не внутри него. Android по умолчанию применяет эту технику ко всем системным приложениям. Теперь, когда система на базе Android загружается, кэш давлика для ВМ давлика строится с использованием этих.odexфайлов, что позволяет ОС заранее узнать, какие приложения будут загружены, и, таким образом, ускоряет процесс загрузки. Деодексируя эти APK, разработчик фактически помещает файлы .odex обратно в соответствующие пакеты APK. Поскольку весь код теперь содержится в самом APK, становится возможным модифицировать любой пакет приложения, не конфликтуя со средой выполнения операционной системы.

Как сделать процесс вручную;

Если вы хотите вручную оптимизировать свои APK-файлы, есть несколько вариантов:

Благодарности

Спасибо за информацию, но у меня другой вопрос, я уже скопировал dex в директорию dalvik-cache, однако иконка приложения не отображается в лаунчере андроида.
Поскольку .dexон не будет «встроен» в виртуальную машину dalvik, как описано выше, и этот процесс происходит во время загрузки, поэтому вам необходимо перезагрузить компьютер после перемещения файла dex, чтобы он сначала был оптимизирован в кеше, а связанные части перемещены в соответствующие места. .
Но нет возможности активировать этот процесс в любое время без перезагрузки устройства. Спасибо
Тем не менее, помогло ли объяснение понять, что происходит, когда Android говорит «система оптимизируется»? Судя по всему, это был главный вопрос, прошу прощения, если неправильно процитировал
Вы не правы мои любопытства, они меня увели от темы. Спасибо
Ссылка, которую вы предоставили для Lucky Patcher , не является официальным сайтом. Он может содержать вредоносные программы. Эта ссылка (выше) верна.