Android ndk visual studio

Android NDK

Android NDK позволяет реализовывать части приложений Android с помощью C и C++. Вы можете использовать клиентскую библиотеку Google бреакпад для приложений Android, чтобы получать допустимые трассировки стека в машинном коде. Трассировки стека могут содержать только адреса памяти. Они не показывают имена классов, методы, имена файлов и номера строк, которые необходимы для чтения и понимания сбоев. Чтобы получить адреса памяти, преобразованные для приложения Android NDK, необходимо отправить символы приложения для каждой сборки.

Сведения об отучении отчетов о сбоях в NDK см. в документации по пакет SDK для Android для приложений Android или в документации по пакету SDK Unity для приложений Unity.

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

Сбои унсимболикатед

Сбои унсимболикатед отображаются в разделе диагностики центра приложений, поэтому можно просмотреть некоторые сведения даже перед отправкой символов. Недостающие символы из этих сбоев будут показаны на вкладке «унсимболикатед». Если отсутствующие символы отправлены, Группа аварийного завершения унсимболикатед будет заменена группой проведения результативного Crash.

Центр приложений не поддерживает символы кадров, которые поступают из системных библиотек. Учитывая высокую степень фрагментации двоичных файлов системы для Android и других платформ, которые могут различаться при любом заданном сочетании устройства или версии ОС, центр приложений не предоставляет символы для системных двоичных файлов и автоматически пропускает кадры из системных двоичных файлов в символах.

Создать ZIP-файл для отправки

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

Вариант 1. Передача собственных двоичных файлов

Помещайте все файлы из obj/local/$ABI/ каталога проекта в ZIP-файл.

Вариант 2. Отправка Бреакпад символов

  1. Выведите дамп символов с помощью Бреакпад цепочки инструментов, как описано в документации бреакпад в разделе «получение отладочных символов».
  2. Создайте файл symbols.zip со следующей структурой:

Если вы отправляете символы из macOS, необходимо очистить символы из всех лишних папок, например, __MACOS создается и удаляется, можно использовать zip -d __MACOSX/\* .

Отправка символов

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

Портал центра приложений

  1. Войдите в центр приложений и выберите свое приложение.
  2. В меню слева перейдите к разделу Диагностика , а затем — проблемы.
  3. Если приложение еще не сообщило о сбое, необходимо использовать API или CLI для отправки символов Бреакпад.
  4. Если приложение уже сообщило об ошибках, требующих символов, проверьте вкладку унсимболикатед и убедитесь в наличии группы версий с отсутствующими символами, щелкните ее, чтобы открыть меню для отправки файла.
  5. После индексации символов по центру приложений сбои будут проведения результативного.

API центра приложений

Процесс передачи символов через API-интерфейс включает ряд трех вызовов API: один — для выделения пространства на нашей серверной части, один — для отправки файла, а другой — для обновления состояния отправки. Тело первого вызова API должно иметь значение symbol_type Breakpad .

  1. Активируйте POST запрос к API symbol_uploads. Этот вызов выделяет место в нашей серверной части для вашего файла и возвращает symbol_upload_id свойство и upload_url .
  1. Используя upload_url свойство, возвращенное на первом шаге, выполните PUT запрос с заголовком «x-ms-blob-type: BlockBlob» и укажите расположение файла на диске. Этот вызов передает файл в наши серверные учетные записи хранения. Дополнительные сведения о заголовках запросов на добавление BLOB-объектов .
  1. Выполните PATCH запрос к API symbol_uploads , используя свойство, symbol_upload_id возвращенное на первом шаге. В тексте запроса укажите, следует ли установить состояние отправки committed (успешно завершено) в процессе отправки или aborted (неуспешное завершение).
Читайте также:  Лучшие гонки для андроид для детей

API отправки символов не работает для файлов размером более 256 МБ. Используйте интерфейс командной строки центра приложений для отправки этих файлов. Вы можете установить интерфейс командной строки центра приложений, следуя инструкциям в репозитории CLI центра приложений.

Интерфейс командной строки центра приложений

Можно также использовать CLI для передачи файлов символов:

Пропуск символов

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

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

Источник

Android NDK

Android NDK allows you to implement parts of your Android apps using C and C++. You can use the Google Breakpad client library for your Android apps to receive valid stack traces in native code. The stack traces may only contain memory addresses. They don’t show class names, methods, file names, and line numbers which are needed to read and understand the crashes. To get the memory addresses translated for your Android NDK app, you must upload application symbols for each build.

To learn how to report NDK crashes, refer to the Android SDK documentation for Android apps, or Unity SDK documentation for Unity apps.

If you want to send Breakpad crashes from other platforms to App Center, see the upload custom crashes documentation.

Unsymbolicated crashes

Unsymbolicated crashes are displayed in the App Center Diagnostics section so you can view some details even before uploading symbols. The missing symbols from these crashes will be shown in the «unsymbolicated» tab. If the missing symbols are uploaded, the unsymbolicated crash group will be replaced by a symbolicated crash group.

App Center doesn’t support symbolication of frames which come from system libraries. Given the high fragmentation of system binaries for Android and other platforms – which might be different on any given device/OS version combination – App Center doesn’t provide symbols itself for system binaries and automatically skips frames from system binaries in symbolication.

Generate a .zip file to upload

There are two ways for App Center to retrieve the symbols necessary for symbolication. App Center can generate them from the native binaries used in your project, or you can upload the Breakpad symbols directly.

Option 1: Upload native binaries

Put all .so files from the project’s obj/local/$ABI/ directory into a .zip file.

Option 2: Upload Breakpad symbols

  1. Dump the symbols using the Breakpad toolchain as described in the Breakpad documentation under section «Get the debugging symbols».
  2. Create a symbols.zip file with the following structure:

If you’re uploading your symbols from macOS, then you must clean your symbols of any extraneous folders, e.g. __MACOS gets generated and to delete this you can use zip -d __MACOSX/\* .

Читайте также:  Naruto psp для андроид

Uploading symbols

The App Center Build and Distribution service can automatically forward symbols to the Diagnostics service. If you use App Center to build and auto distribute your app to your end users, you don’t need to manually obtain and upload the symbol files as detailed in the steps below.

App Center Portal

  1. Log into App Center and select your app.
  2. In the left menu, navigate to the Diagnostics section, then Issues.
  3. If your application hasn’t reported any crash yet, you’ll need to use the API or CLI to upload Breakpad symbols.
  4. If your application already has reported crashes that need symbols, check the Unsymbolicated tab and there should be a version group with missing symbols, click on it to reveal the menu to upload the file.
  5. After the symbols are indexed by App Center, crashes will be symbolicated for you.

App Center API

The process for uploading symbols through the API involves a series of three API calls: one to allocate space on our backend, one to upload the file, and one to update the status of the upload. The body of the first API call should set symbol_type to Breakpad .

  1. Trigger a POST request to the symbol_uploads API. This call allocates space on our backend for your file and returns a symbol_upload_id and an upload_url property.
  1. Using the upload_url property returned from the first step, make a PUT request with the header: «x-ms-blob-type: BlockBlob» and supply the location of your file on disk. This call uploads the file to our backend storage accounts. Learn more about PUT Blob request headers .
  1. Make a PATCH request to the symbol_uploads API using the symbol_upload_id property returned from the first step. In the body of the request, specify whether you want to set the status of the upload to committed (successfully completed) the upload process, or aborted (unsuccessfully completed).

The symbol uploads API doesn’t work for files that are larger than 256MB. Use the App Center CLI to upload these files. You can install the App Center CLI by following the instructions in our App Center CLI repo.

App Center CLI

You can also use the CLI to upload symbol files:

Ignoring symbols

When App Center doesn’t have all the symbol files to fully symbolicate crash reports, the crashes are listed in the Unsymbolicated tab. The required symbols are uploaded from this page if you have access to them.

If you can’t upload the symbols, you can mark them as Ignored by selecting rows in the table and clicking the Ignore versions button. This button tells App Center to process the crashes and symbolicate them as fully as possible with the symbols on file. Once they’ve finished processing, they’ll appear in the Crashes tab partially symbolicated. New crashes that also depend on those same symbol IDs marked as ignored will bypass the Unsymbolicated tab as they come in and flow through the system.

Источник

Создание приложения 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.

Читайте также:  Штатное головное устройство для toyota android

Требования

Прежде чем создавать приложение 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.

Эмулятор является отдельным процессом, который продолжает выполняться. Вы можете изменять, компилировать и развертывать код несколько раз в одном эмуляторе.

Источник

Оцените статью