Как часто Android должен распаковать APK APK и OBB приложения? -- applications поле с участием internal-storage поле с участием apk поле с участием system пол android Связанный проблема

How often does Android have to decompress an app's APK and OBB files?


1
vote

проблема

русский

Согласно одному из величайших Ответы для этот вопрос , Android должен декомпрессировать файлы APK и OBB каждой приложения до того, как приложение может быть запущено.

Это декомпрессия выполняется каждый раз, когда приложение запускается приложение, предполагая, что он был выдвинут из кэша процесса Android?

Английский оригинал

According to one of great answers to this question, Android has to decompress each application's APK and OBB files before the app can be run.

Is this decompression performed each and every time an app is run, assuming it has been pushed out of Android's process cache?

           
 
 

Список ответов

1
 
vote

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

[Side Note, именно поэтому первая загрузка телефона занимает больше времени, так как система должна создавать файлы ODEX для любого приложения, который не имеет файла ODEX. Системные приложения, как правило, сделаны, чтобы иметь ODEX по производителю]

APK имеет предопределенную структуру, включая списки файлов, ресурсы, активы, библиотеки, DEX (файлы классов Java, преобразованные в исполняемый формат Dalvik) и т. Д. Система распакована и читает эти файлы в память и следует за кодом внутри. Этот код сообщает это, когда разбавить и загрузить другие файлы.

Это никогда не попадает в жесткий диск, идет прямо в память.

 

Yes, and no. Android apps are not decompressed into the file system when it needs to run. Instead, they are selectively decompressed and read into memory/ram by the Dalvik virtual machine. This decompression is a very simple, quick, non-processor-intensive process, so it does not add any real overhead to the system. On first install, there is some optimization by the Dalvik VM, mainly linking to native libraries on the Android system to the internal APK libraries, and this is saved into the Dalvik-cache as an optimized dex file (.odex)

[Side note, this is why the first boot of a phone takes longer, as the system has to create odex files for any app that does not have an odex file. System Apps are typically made to have an odex by the manufacturer]

An APK has a predefined structure, including file lists, resources, assets, libraries, dex (Java Class files converted into Dalvik Executable Format) etc. The system decompresses and reads these files into memory, and follows the code inside. That code tells it when to decompress and load the other files.

It never hits the hard drive, goes right into memory.

 
 
     
     

Связанный проблема

7  Каково эффект изменения максимального приложения VM размером кучи?  ( What is the effect of changing the maximum application vm heap size ) 
Меню настроек в CM6 позволяет изменять максимальный размер кучи для каждого процесса (внутренне, это код <код> dalvik.vm.heapsize свойство). Каковы практичес...

0  «Система» пытается получить доступ к Интернету  ( System is trying to access internet ) 
Я использую OnePlus 3T, Android 9. Недавно я установил приложение под названием «Noroot Firewall», чтобы предотвратить доступ к приложениям доступа к Интернет...

9  Как набор путь по умолчанию?  ( How is the default path set ) 
На другой системе Linux, которую я могу ожидать, чтобы найти файл .profile или что-то в / etc, используемый по умолчанию. Я не могу определить, что устанавлив...

-2  Как я могу сделать системную папку с записью без укоренения?  ( How can i make the system folder writable without rooting ) 
Мое устройство <код> Sprint Samsung Galaxy S III Номер модели: <Код> SPH-L710 Я хочу сделать это, потому что я хочу остановить звук затвора камеры. И я ...

0  Samsung Galaxy S5 SM-G901F V5.0.2 Переместите приложение от пользователя в систему  ( Samsung galaxy s5 sm g901f v5 0 2 move an app from user to system ) 
У меня есть Samsung Galaxy S5 SM-G901F Android: 5.0.2 (я живу во Франции), и я хотел бы переместить пользовательское приложение в систему приложения. Я уже Do...

4  Как я могу установить дополнительные аудио / видео кодеки на Android?  ( How can i install additional audio video codecs on android ) 
Разделяет ли Android модуль между видеоплеерным и видеокодеком? Если это так, как мы устанавливаем больше кодека в систему? ...

1  Как часто Android должен распаковать APK APK и OBB приложения?  ( How often does android have to decompress an apps apk and obb files ) 
Согласно одному из величайших Ответы для этот вопрос , Android должен декомпрессировать файлы APK и OBB каждой приложения до того, как приложение может быт...

0  Почему мой (развернутый) / раздел данных выглядит пустым?  ( Why my unrooted data partition appears to be empty ) 
У меня есть Некоторые выпуски с разделом My / Data. Среди прочего, когда я просматриваю его содержимое с приложением ASTRO, оно пусто. Телефон никогда не бы...

1  Что такое значок треугольника [Samsung Galaxy S9 +]?  ( What is this triangle icon samsung galaxy s9 ) 
Это появилось недавно. И я даже не могу себе представить, что это. скриншот (нажмите изображение для большего варианта) ...

1  Установка ADB включена настройка с zip  ( Install adb enabled setting from zip ) 
Можно ли сделать zip-файл, похожий на тот, который устанавливает GAPPS, которые хранят режим отладки ADB в качестве настройки системы? Может быть, как-то изме...