Недавно я написал клиент ПК, который может отображать и контролировать экран телефона Android в режиме реального времени с помощью adb. Я использую обезьяну для управления устройством, и он отлично работает. Проблема заключается в том, как захватить экран телефона и отобразить его плавно.
Первое решение, с которым я столкнулся, состоит в том, чтобы постоянно захватывать framebuffer
через adb
(например, функцию захвата экрана DDMS). Теперь, когда я это делаю, производительность совершенно неприемлема. Частота кадров, снятая с framebuffer
, составляет всего 5 в секунду (размер кадра - 800 * 480). Моя программа выглядит как ее икает, когда я нахожусь на телефоне.
Моя программа написана в java, используя ddmslib
для захвата framebuffer
.
добавить:
Мне было очень медленно кодировать необработанные данные framebuffer
в формат .png
, иначе это будет быстрый способ передачи сжатого исходного изображения.
Как повысить скорость захвата экрана до плавного уровня?