Ядро Linux и JVM должны рассматриваться как яблоки и апельсины.Смешение двух может привести к катастрофическим последствиям.
Например, виртуальная память ядра Linux - это, по сути, файл подкачки, и он не устанавливает ограничений на размер отдельного процесса, что приводит к "перебоям" или бесконечной перестановке, когда файлfull.
В отличие от этого, jvm (который является просто еще одним процессом linux) устанавливает общий максимальный размер для своих приложений (например, 256 МБ).Приложения Android, как правило, запускаются в своих собственных jvms, предотвращая «порку» любого данного jvm.Скорее, сборщик мусора выбросит OOM и завершит работу.
Android будет дополнительно уничтожать приложения (jvms, содержащие задачи, которые представляют собой группы потоков операций) при исчерпании виртуальной памяти ядра, и при необходимости перезапускать их позже.Он все еще может зависать (трэш), но не так часто, как, например.необслуживаемая база данных Linux или веб-сервер.
Решение для молотого (замороженного) андроида точно такое же, как для молотого сервера Linux.Отказов (цикл питания).Потому что это сервер linux.
Глубоко предположить, что Android подарил миру миллионы полностью подключенных, но в основном простаивающих широко распространенных серверов linux, которые могут принимать бесконечные потоки многопоточных процессов (jvms - это только один тип),
В нем заложен суперкомпьютерный компьютер, который затмевает даже самый сложный центр обработки данных.
Это даже не говорит о том, что большинство андроидов имеют параллельные процессоры (GPU), которые в 100 раз быстрее, чем их процессоры, опять же, просто бездействуя.За исключением нескольких геймеров, которые знают, как их запустить.
Просто задуманный как обзор, в этой теме уже есть отличные ссылки.