Country not specified
Unknown website Share

Apps4all

Страна: -
Город: -
Был онлайн: -
О себе:
 
08-07-2016, 11:04
Apps4all

Разработка игр с помощью Android NDK и инструментов Intel

Android NDK (Native Development Kit) – это пакет инструментов, которые позволяют вам использовать нативные языки вроде Cили C++ для реализации частей вашего приложения. В игровых приложениях Android NDK чаще всего используется для реализации чувствительных к производительности частей или для повторного использования существующего кода и библиотек. Android NDK поддерживает платформу x86.

Вы можете загрузить Android NDK здесь:  https://developer.android.com/tools/sdk/ndk/index.html

В этой статье я покажу пример того, как скомпилировать приложение, используя стандартный Android NDK. После этого я продемонстрирую, как создать оптимизированные библиотеки для x86, используя компилятор Intel® C++ для Android.

Создание тестового приложения при помощи Android NDK

Тестовое приложение, который я буду использовать, называется san-angeles и расположен он в директории шаблонов Android NDK:

$ANDROID_NDK/samples/san-angeles

Нативный код расположен в директории jni/ :

$ANDROID_NDK/samples/san-angeles/jni

Нативный код компилируется под специфическую CPU-архитектуру (или архитектуры). Android-приложения могут содержать библиотеки для нескольких архитектур в одном apk-файле.

Чтобы установить целевую архитектуру, вам необходимо создать файл Application.mk в директории jni/. Следующая строка скомпилирует нативные библиотеки под все поддерживаемые архитектуры:

APP_ABI := all

Иногда лучше определить перечень целевых архитектур. Эта строка компилирует библиотеки под архитектуры x86 и ARM:

APP_ABI := x86 armeabi armeabi-v7a

Выполните следующую команду внутри директории с шаблонами, чтобы собрать библиотеки:

cd $ANDROID_NDK/samples/san-angeles

$ANDROID_NDK/ndk-build

После успешного завершения сборки, откройте образец в Eclipse как Android-приложение и нажмите «Выполнить». Выберите эмулятор или подсоединенное устройство Android, где вы планируете запустить приложение.

Для поддержки всех возможных устройств, вам нужно скомпилировать приложения для всех архитектур. Если размер apk-файла со всеми библиотеками для всех архитектур слишком велик, рассмотрите возможность использования опции Google Play Multiple APK Support для создания отдельных apk-файлов для каждой платформы. 

Проверка поддерживаемых архитектур

Чтобы убедиться, что архитектуры включены в apk-файл, используйте команду:

aaptdumpbadgingfile.apk

Следующая строка показывает список всех архитектур:

native-code: 'armeabi', 'armeabi-v7a', 'x86'

Другой метод – открыть apk-файл как zip-файл и просмотреть подкаталоги в директории lib/.

Если приложение установлено на устройстве, вы можете использовать приложение ApkInfo для проверки всех поддерживаемых архитектур. Обратите внимание, если вы использовали опцию GooglePlayMultipleAPKSupport и уже опубликовали ваше приложение, вы можете не увидеть все поддерживаемые архитектуры.

<p> <strong>Intel® Integrated Native Development Experience (Intel®INDE)</strong> </p>

Intel® Integrated Native Development Experience (Intel®INDE) – это набор инструментов и библиотек для нативной разработки приложений. Intel INDE интегрируется в популярные интерфейсы IDE, обеспечивая полный и совместимый набор C++- и Java-инструментов, библиотек и шаблонов для настройки среды, создания кода, компиляции, отладки и анализа для приложений на устройствах с архитектурой Intel и с выборочными возможностями - на Android-устройствах на базе ARM. Главное преимущество использования IntelINDE – это возможность загружать обновления инструментов по мере их доступности.  

Компилятор Intel C++ для Android

Компилятор Intel C++ для Android включен в пакет IntelINDE. Компилятор интегрируется в Android NDK и обеспечивает оптимизированную альтернативу для компиляции библиотек x86.

Загрузите и установите компилятор Intel C++ для Android. Укажите путь к директории NDK в процессе установки, чтобы интегрировать компилятор Intel C++ в Android NDK.

После завершения установки Intel C++ Compiler будет автоматически интегрирован в цепочку инструментов Android NDK и будет компилировать оптимизированные библиотеки для архитектуры x86.

Чтобы убедиться в том, что Intel C++ Compiler для Android используется, проверьте выходные данные с помощью этой команды и задайте опцию V=1 для отображения подробных выходных данных:

cd $ANDROID_NDK/samples/san-angeles

$ANDROID_NDK/ndk-build --always-make V=1

Android NDK должен использовать бинарный код iccили icpc для построения библиотек x86.

По умолчанию NDK сконфигурирован с целью создания отладочных версий приложения с полностью отключенными оптимизациями. Когда код готов к использованию, вы должны скомпилировать его для производительности. Для компиляции библиотек x86 с оптимизацией добавьте эти строки в файл Application.mk:

APP_ABI := x86

APP_OPTIM := release

APP_CFLAGS := -xATOM_SSSE3 -O3 –ipo

Обратите внимание, эти опции действительны только при компиляции для x86 ABI.

Документация по началу работы содержит детальные инструкции по использованию компилятора Intel C++ для Android.

Компилятор Intel C++ для Android создает оптимизированные бинарные значения для архитектуры x86. Для измерения производительности игровых приложений вы можете использовать Intel® Graphics Performance Analyzers (Intel® GPA) System Analyzer. Системный анализатор Intel GPA полезен для сбора различных метрик: FPS, загрузки CPU и др.

Дополнительная информация

Статья NDK Android* Application Porting Methodologies предоставляет больше информации о переносе приложений на архитектуру Intel.

Для создания высококачественных приложений очень важно регулярно тестировать приложение на реальных устройствах со всеми поддерживаемыми архитектурами. Статья Automated Android* Application Testing демонстрирует различные подходы к созданию систем автоматического тестирования для Android-приложений. Существует много сервисов, которые могут протестировать ваше приложение на сотнях реальных физических устройств. Если вы хотите собирать метрики производительности из игрового приложения автоматически, рассмотрите возможность использования Intel GPA Console Client. Инструкции по ее использованию можно найти здесь: https://software.intel.com/en-us/android/articles/using-intel-graphics-performance-analyzers-console-client-for-android-application

 
Intel
разработчикам
0 0 0

Чтобы оставлять комментарии вам необходимо зарегистрироваться