- Создание приложения Android Native Activity
- Требования
- Создание проекта Native Activity
- Создание и запуск приложения Android Native Activity по умолчанию
- Сборка и запуск приложения Native Activity по умолчанию
- Native Window
- Summary
- Enumerations
- Typedefs
- Functions
- Structs
- Enumerations
- ANativeWindowTransform
- ANativeWindow_ChangeFrameRateStrategy
- ANativeWindow_FrameRateCompatibility
- ANativeWindow_LegacyFormat
- Typedefs
- ANativeWindow
- ANativeWindow_Buffer
- Functions
- ANativeWindow_acquire
- ANativeWindow_getBuffersDataSpace
- ANativeWindow_getFormat
- ANativeWindow_getHeight
- ANativeWindow_getWidth
- ANativeWindow_lock
- ANativeWindow_release
- ANativeWindow_setBuffersDataSpace
- ANativeWindow_setBuffersGeometry
- ANativeWindow_setBuffersTransform
- ANativeWindow_setFrameRate
- ANativeWindow_setFrameRateWithChangeStrategy
- ANativeWindow_tryAllocateBuffers
- ANativeWindow_unlockAndPost
Создание приложения Android Native Activity
После установки кроссплатформенной рабочей нагрузки Разработка мобильных приложений на языке C++ Visual Studio можно использовать для создания полнофункциональных приложений Android Native Activity. Пакет Android Native Development Kit (NDK) — это набор средств, с помощью которых можно реализовывать большинство возможностей приложения Android, используя чистый код C или C++. Для обеспечения взаимодействия кода C или C++ с Android используется определенный код Java JNI, выступающий в роли связующего. В Android NDK появилась возможность создавать приложения Native Activity с помощью API Android уровня 9. Код Native Activity популярен для создания игровых приложений и приложений с интенсивным использованием графики на основе Unreal Engine или OpenGL. В этом пошаговом руководстве показано создание простого приложения Native Activity, в котором используется OpenGL. В дополнительных разделах последовательно рассматриваются такие этапы жизненного цикла разработки, как редактирование, сборка, отладка и развертывание кода Native Activity.
Требования
Прежде чем создавать приложение Android Native Activity, необходимо убедиться, что вы выполнили все системные требования и установили рабочую нагрузку Разработка мобильных приложений на языке C++ в Visual Studio. Дополнительные сведения см. в статье Установка Visual C++ для разработки кроссплатформенных мобильных приложений на языке C++. Убедитесь, что необходимые сторонние инструменты и пакеты SDK включены в установку, а также что установлен эмулятор Android.
Создание проекта Native Activity
В этом руководстве вы сначала создадите новый проект Android Native Activity, а затем создадите и запустите приложение по умолчанию в эмуляторе Android.
в Visual Studio выберите файл создать Project.
В диалоговом окне Новый проект в меню Шаблоны последовательно выберите Visual C++ Кроссплатформенное приложение, а затем выберите шаблон Приложение Native-Activity (Android).
Присвойте приложению имя, например MyAndroidApp, а затем нажмите OK.
Visual Studio создаст новое решение и откроет обозреватель решений.
в Visual Studio выберите файл создать Project.
В диалоговом окне Создание нового проекта выберите шаблон Приложение Native-Activity (Android), а затем нажмите Далее.
В диалоговом окне Настроить новый проект введите имя, например MyAndroidApp в разделе Имя проекта, а затем выберите Создать.
Visual Studio создаст новое решение и откроет обозреватель решений.
В новое решение приложения Android Native Activity входят два проекта.
MyAndroidApp.NativeActivity содержит ссылки и связующий код для запуска приложения как приложения Native Activity на Android. Реализация точек входа из связывающего кода находится в Main. cpp. Предкомпилированные заголовки находятся в PCH. h. Этот проект приложения с собственным действием компилируется в общую библиотеку . файл, который забирается проектом упаковки.
MyAndroidApp.Packaging создает файл с расширением MyAndroidApp.Packaging для развертывания на устройстве или в эмуляторе Android. Он содержит ресурсы и файл AndroidManifest.xml , в которых задаются свойства манифеста. Он также содержит файл build.xml , который управляет процессом сборки Ant. По умолчанию он задан как начальный проект, который можно развернуть и запустить непосредственно из Visual Studio.
Создание и запуск приложения Android Native Activity по умолчанию
Разработайте и запустите приложение, созданное шаблоном, чтобы проверить установку и настройку. Для первоначального теста запустите приложение в одном из профилей устройств, установленных эмулятором Android. Если вы предпочитаете тестировать приложение на другой платформе, загрузите целевой эмулятор или подключите устройство к компьютеру.
Сборка и запуск приложения Native Activity по умолчанию
Выберите x86 из раскрывающегося списка платформы решения , если он еще не выбран.
Если список Платформы решения не отображается, щелкните пункт Платформы решения из раскрывающегося списка Добавить или удалить кнопки и выберите свою платформу.
В строке меню выберите Сборка собрать решение.
В окне «Выходные данные» отобразятся выходные данные процесса сборки для двух проектов в решении.
Выберите один из профилей эмулятора Android в качестве цели развертывания.
Если вы установили другие эмуляторы или подключили устройство Android, то можете выбрать их в раскрывающемся списке платформы развертывания.
Нажмите клавишу F5 , чтобы начать отладку, или клавишу F5 , чтобы начать без отладки.
Вот как выглядит приложение по умолчанию в эмуляторе Android.
Visual Studio запускает эмулятор, который за несколько секунд загружает и развертывает код. После запуска приложения можно задать точки останова и использовать отладчик для проверки кода, языковых стандартов и контрольных значений.
Для остановки отладки нажмите SHIFT F5.
Эмулятор является отдельным процессом, который продолжает выполняться. Вы можете изменять, компилировать и развертывать код несколько раз в одном эмуляторе.
Источник
Native Window
ANativeWindow represents the producer end of an image queue.
Summary
It is the C counterpart of the android.view.Surface object in Java, and can be converted both ways. Depending on the consumer, images submitted to ANativeWindow can be shown on the display or sent to other consumers, such as video encoders.
Enumerations
ANATIVEWINDOW_TRANSFORM_IDENTITY = 0x00,
ANATIVEWINDOW_TRANSFORM_MIRROR_HORIZONTAL = 0x01,
ANATIVEWINDOW_TRANSFORM_MIRROR_VERTICAL = 0x02,
ANATIVEWINDOW_TRANSFORM_ROTATE_90 = 0x04,
ANATIVEWINDOW_TRANSFORM_ROTATE_180 = ANATIVEWINDOW_TRANSFORM_MIRROR_HORIZONTAL | ANATIVEWINDOW_TRANSFORM_MIRROR_VERTICAL,
ANATIVEWINDOW_TRANSFORM_ROTATE_270 = ANATIVEWINDOW_TRANSFORM_ROTATE_180 | ANATIVEWINDOW_TRANSFORM_ROTATE_90
>
WINDOW_FORMAT_RGBA_8888 = AHARDWAREBUFFER_FORMAT_R8G8B8A8_UNORM,
WINDOW_FORMAT_RGBX_8888 = AHARDWAREBUFFER_FORMAT_R8G8B8X8_UNORM,
WINDOW_FORMAT_RGB_565 = AHARDWAREBUFFER_FORMAT_R5G6B5_UNORM
>
Typedefs
Functions
Structs
Struct that represents a windows buffer.
Enumerations
ANativeWindowTransform
Transforms that can be applied to buffers as they are displayed to a window.
Supported transforms are any combination of horizontal mirror, vertical mirror, and clockwise 90 degree rotation, in that order. Rotations of 180 and 270 degrees are made up of those basic transforms.
Properties | |
---|---|
ANATIVEWINDOW_TRANSFORM_IDENTITY | |
ANATIVEWINDOW_TRANSFORM_MIRROR_HORIZONTAL | |
ANATIVEWINDOW_TRANSFORM_MIRROR_VERTICAL | |
ANATIVEWINDOW_TRANSFORM_ROTATE_180 | |
ANATIVEWINDOW_TRANSFORM_ROTATE_270 | |
ANATIVEWINDOW_TRANSFORM_ROTATE_90 |
ANativeWindow_ChangeFrameRateStrategy
Change frame rate strategy value for ANativeWindow_setFrameRate.
Properties | ||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ANATIVEWINDOW_CHANGE_FRAME_RATE_ALWAYS |
Properties | |||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ANATIVEWINDOW_FRAME_RATE_COMPATIBILITY_DEFAULT |
Properties | ||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
WINDOW_FORMAT_RGBA_8888 |
Details | |||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Returns |
Details | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Returns |
Details | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Returns |
Details | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Returns |
Details | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Returns |
Details | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parameters |
|