
MAD RACERS
Оптимизация приложений при помощи утилит в комплекте Intel INDE Media Pack
Итак, не будем особо разглагольствовать и начнем.
Инструментарий, указанный выше - набор утилит в помощь разработчикам программного обеспечения. В его состав входит множество полезных штуковин, но я расскажу о той, которая здорово помогла оптимизировать наше приложение - System Analyzer.
System Analyzer
Очень удобная утилита с простым и понятным интерфейсом. На официальном сайте есть куча полезной информации по установке и настройке набора, но я постараюсь быстро и понятно объяснить, как установить, настроить и пользоваться конкретной утилитой.
Для начала приведу её интерфейс и покажу, что она может дать разработчику (клацните на скрин для увеличения):

Блок слева - параметры, доступные для мониторинга и несколько настроек для вмешательства в реальном времени в процесс обработки приложения.
Большой блок справа - шкалы состояний. Именно они показывают график загрузок/вольтажа/потребления и тому подобных метрик.
Для того, чтобы данные графики отобразились - просто тянем из левого блока в правый нужный параметр и, вуаля!
Под графиками находятся также конкретные значения параметров в данный момент времени.
Утилита достаточно проста в использовании, работает в режиме реального времени, просто подключаемся к устройству, запускаем приложение и мониторим.
С настройкой немного сложнее.
1. Для начала регистрируемся на сайте и качаем пакет (около 2 гигабайт)
https://software.intel.com/ru-ru/intel-inde
2. Затем ставим пакет с необходимыми настройками, эклиспс, студия либо андроид СДК. При выборе конкретного параметра, пакет установит дополнительные файлы (NDK, Eclipse и тд). В моем случае, Android SDK у меня уже был и я просто нажал "пропустить настройку"

3. Следующий шаг - установка ADB драйвера от Intel. Качаем и устанавливаем, без него скорее всего не запустится
https://software.intel.com/en-us/android/articles/intel-usb-driver-for-android-devices
4. Далее, нам необходимо настроить путь до инструментария, предоставленного в Android SDK - запускаем System Analyzer и жмем Ctrl+F1, появляется окно, в нем прописываем путь до platform-tools в составе Android SDK:

5. После всех вышеперечисленных действий в утилите должно появится поключенное устройство (вы ведь подключили его к компьютеру? ;)). Выбираем его и жмем Connect. Внимание! У меня возникли проблемы с подключением, причем несколько раз - различные ошибки, без паники! В данном случае:
а) Просто перезагружаем компьютер и устройство;
б) Если до сих пор не будет подключаться, открываем командную строку;
в) идем в папку, указанную вами в предыдущем пункте (переход на нужный диск - буква диска, двоеточие, энтер (D:), переход в целевую папку cd !!!ПУТЬ БЕЗ БУКВЫ ДИСКА!!!!)
г) отключаем девайс, вводим в командной строке: adb kill-server
д) подключаем девайс, вводим: adb devices и вновь подключаемся через утилиту
5.


6. Выбираем наше приложение. Внимание! Скорее всего, приложение будет периодически подвисать, не пугайтесь - это работа профиллера, нагрузка на устройство увеличивается. К примеру, я при первом запуске ждал 4 минуты.
Заключение
Установка и настройка пакета утилит оказалась очень простой (больше боялся и собирался, чем делал), а результатом стало повышение производительности и уменьшение потребления оперативной памяти. К примеру, во время загрузки карт, потребление памяти подскакивало с 300 мб до 500, из-за чего у слабые девайсы вылетали и не могли загрузить карту. Стандартный профайлер Unity не осиливал загрузку сцены и писал, что "кадр пропущен и я, дескать, даже не знаю что там было". Оптимизирвовав загрузку и понизив затраты памяти, мы избавились от плавающей баги и угодили пользователям.
Примечание: утилиты из данного набора можно использовать с любыми приложениями, единственное условие - при сборке необходимо указать, что оно собирается для тестирования (Debug mode). Поскольку наша игра создана при помощи Unity - мы просто выставили в настройке сборки галки "Development Build" и "Script Debugging".