Невозможное возможно: AIDA64 на Андроиде

15 Янв 2016

Запускаем AIDA64 на Android Virtual Device

Применением эмуляторов для разработки мобильных приложений под Android на PC-платформе уже давно никого не удивить. С этой точки зрения небольшой эксперимент, проведенный тестовой лабораторией «Компостера», не претендует на исключительность и экстремальность. Тем не менее, запуск Android-версии популярной диагностической утилиты AIDA64 на виртуальной машине Android Virtual Device поможет увидеть ряд скрытых свойств и возможностей эмулятора, виртуальной среды и выработать аргументированную позицию о возможности или невозможности непосредственного доступа приложений к аппаратным ресурсам мобильной платформы.

Приступаем к работе

Выбор модели и установка опций для эмулируемого устройства. В данном опыте в качестве платформы будем использовать любой виртуальный девайс из доступных в базе данных AVD:

Выбор модели и установка опций Android Virtual Device

Эту картинку придется наблюдать 5-10 минут, так как виртуальный ARM процессор работает достаточно медленно. Логично предположить, что при выборе X86 системы производительность будет выше в силу большего сходства набора инструкций эмулирующего и эмулируемого процессоров. Но для этого должен быть установлен пакет Intel HAXM (Hardware-Accelerated Execution Manager), который, в свою очередь требует поддержи технологии виртуализации Intel VT-x.

Запускаем виртуальный ARM-процессор

Хост платформа (ноутбук ASUS N750JK, процессор Intel Core i7-4700HQ) поддерживает эту технологию, но в целях безопасности, опыт проводится на виртуальной машине Oracle Virtual Box. Вот мы и ответили на вопрос: нужна ли аппаратная поддержка вложенной виртуализации?

Загружаем APK-файл на виртуальную машину

Для загрузки APK-файла на виртуальную машину потребуется утилита ADB:

Для загрузки APK-файла на виртуальную машину потребуется утилита ADB

После этого можно уже запустить диагностическую утилиту AIDA64 и получить доступ к ее меню.

Запускаем диагностическую утилиту AIDA64

AVD устройство идентифицируется как эмулятор из набора SDK. Задачу создания виртуальной платформы неотличимой от физического устройства, разработчики не ставили.

Виртуальное Андроид-устройство идентифицируется как эмулятор из набора SDK

Архитектура процессора, набор инструкций, ревизия, количество ядер и поддерживаемые интерфейсы ABI (Application Binary Interface) доступны для идентификации. Как видим, Android – это не только Java-машина. Попутно заметим, что утилизация процессора на все 100%: эмуляция ARM-процессора на x86 платформе дело утомительное…

В свойствах платформы доступны архитектура процессора, набор инструкций, ревизия и количество ядер

Разрешение экрана, геометрические характеристики, функциональные расширения OpenGL доступны для идентификации. А вот частота обновления экрана для виртуальной машины – параметр весьма условный.

Разрешение экрана и расширения OpenGL доступны для идентификации

Доступна информация о беспроводных коммуникацях и GSM-провайдерах мобильных услуг:

Доступна информация о GSM-провайдерах мобильных услуг

А здесь наблюдаем несуществующий объект, информация не коррелирует с состоянием батареи хост-платформы, а у виртуальной машины батареи нет. Требования совместимости обязывают сделать вид, что батарея есть и даже заряжается?

Виртуальный аккумулятор и заряжается виртуально

Достаточно подробная информация об операционной системе и виртуальной машине JAVA:

Информация об операционной системе и виртуальной JAVA-информация об операционной системе и виртуальной информация об операционной системе и виртуальной JAVA-машине

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

Набор устройств витуального Андроида и дисциплину доступа к ним

Температурных сенсоров не обнаружено, что в общем-то не совсем правильно, так как хост-платформа оснащена системой аппаратного мониторинга. Температура процессора для операционной среды доступна и может быть использована в качестве иллюстрации возможностей виртуального Андроида.

Температурных сенсоров не обнаружено

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

Механические, магнитные и температурные датчики, анализирующие параметры внешней среды

Резюме

Эмулятор Android SDK достаточно корректен для обеспечения запуска утилиты низкоуровневой диагностики, а утилита AIDA64 достаточно стабильна, для работы в виртуальной (экстремально медленной) среде. Все не так плохо в мобильной индустрии?

Теги: