В старых версиях Android некоторые системные компоненты и JVM активно считывали большие объёмы случайных чисел из псевдоустройства /dev/random
. Это устройство предоставляет интерфейс к системному генератору случайных чисел (ГСЧ), который выводит шумы из драйверов устройств и других источников в «хаотичный» пул. На старых версиях Android иногда возникали проблемы с наполнением пула случайных чисел. В случае опустошения пула возникали лаги UI, пока пул не наполнялся. В новых версиях Android проблему с лагами UI решили, но не до конца: всё-таки иногда возникают характерные задержки.
Многие пользователи считали, что лаги интерфейса объясняются недостаточной производительностью CPU, на самом деле это не так.
Один из разработчиков с форума XDA-Developers перекомпилировал rngd
, так что пул случайных чисел каждую 1 секунду пополняется из пула псевдослучайных чисел /dev/urandom
. Результат — потрясающее ускорение интерфейса Android с почти полным исчезновением лагов! Chrome, карты и другие тяжеловесные приложения теперь мгновенно переключаются между задачами.
Читать полностью »