Я пытаюсь понять, сколько памяти выделяется для каждого процесса в Android. Насколько я понимаю, для каждого процесса приложения существует отдельный экземпляр процесса Zygote, и Zygote будет форкнуть Dalvik VM.
Я написал небольшой пример java-приложения, которое просто печатает «привет, мир» в цикле. Позже вызвал Dalvik VM через оболочку ADB. Теперь команда Procrank показывает, что
PID Vss Rss Pss Uss cmdline 9374 7556K 7556K 3600K 3384K dalvikvm
USS, который показан здесь, составляет 3384k.
Позже я написал небольшую программу для Android с одним действием и TextView. Теперь прокран показывает
PID Vss Rss Pss Uss cmdline 6540 37256K 35124K 4387K 3392K com.example.helloworld
Мои вопросы:
- Если каждый процесс приложения содержит виртуальную машину Dalvik, не потребуется ли для этого больше памяти?
- Откуда мы знаем, какой объем памяти занимает ВМ и сколько занимает Java-процесс?
Мое понимание может быть неверным в отношении Dalvik и того, как он вызывается, и памяти, занимаемой виртуальной машиной в каждом процессе.
Любые идеи приветствуются.
Спасибо.