Шаги установки пакета Android

Я просто хочу знать все шаги.
Android просто копирует пакет приложения в другое место?
когда запускать приложение, каждый раз пакет приложения Android распаковывает?

Я не понимаю вашего вопроса. Вы можете уточнить?
Я думаю, это то, что он пытается сказать: «Как Android обрабатывает apk-файл, когда он установлен? запускает приложение, оно каждый раз распаковывает файл apk?"
да! Мэтт. Процесс

Ответы (1)

Нет, он не распаковывает пакет каждый раз. Dalvik-cache — это место, где хранится кеш файлов dex (исполняемых файлов dalvik).

Я знаю, что системные приложения кешируются при первой загрузке устройства, если кеш не существует. Пользовательские приложения, если бы мне пришлось угадывать, будут выполняться при установке или первом запуске.

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

edit
Я хочу немного развить это. Я только что очистил свой далвик-кэш и перезагрузил свое устройство. Наблюдение за логарифмом устройства через DDMS во время его загрузки показывает, что оно выполняет системные приложения и «пользовательские» приложения при загрузке.

PackageManager «собирает» сертификаты apk. затем он распаковывает apk. PackageParser хранит все разрешения, которые есть у APK.

Так что эти действия выполняются при загрузке устройства (если apks менялись с момента последней загрузки, или был очищен dalvik-cache). Но этот же процесс будет завершен, когда APK будет установлен, поскольку PackageManager и PackageParser обрабатывают этот процесс.

edit2
Это не просто процесс «запуска», это то, что происходит, когда приложение установлено. Dalvik-кэш действует как своего рода «регистрация» приложения. Но во время установки приложение также регистрирует в системе все имеющиеся у него «приемники». Это как слушатели для определенных действий, которые происходят, какие типы ссылок он обрабатывает и тому подобное. Там нет реестра, как в реестре Windows, но да, ОС отслеживает установленные приложения и действия, которые могут запустить приложение.

спасибо, теперь я знаю, как запустить приложение. тогда каков процесс установки? Нравится ли винда, которая копирует файлы и обновляет системный рег? Есть ли системный рег в андроиде?