Главное Свежее Вакансии Образование
Выбор редакции:
6 393 1 В избр. Сохранено
Авторизуйтесь
Вход с паролем

С++ в Android. Часть 1 - Введение

В первой части - введении, обсудим роль NDK и причины его использования для разработки под Android.

Android NDK.

Для разработки под Android, помимо SDK (Standart Development Kit) разработчику доступен инструмент под названием NDK (Native Development Kit), который позволяет использовать язык С++ для написания отдельных модулей приложения.

Архитектура ОС Android и роль NDK.

Операционную систему Android можно разделить на логические части - компоненты. На данный момент эти компоненты:
  • Linux Kernel - ядро операционной системы Android
  • Hardware Abstraction Level (HAL) - уровень, на котором реализуется интерфейс между hardware устройства и более высокими уровнями системы, такими как
  • Native C/C++ Libraries - уровень библиотек Android, на котором, в частности, основывается компонент ART. Здесь расположены, например, библиотеки для работы с графикой и звуком.
  • Android Runtime (ART) - среда исполнения байт-кода в операционной системе Android.
  • Java API Framework - набор модулей и компонентов для реализации приложений в Android.
  • System apps - приложения, написанные прикладными разработчиками.

Большинство приложений пишутся с использованием SDK. В этом случае код компилируется в специальный байт-код, который исполняется в ART. Такой подход позволяет не зависеть от архитектуры процессоров, на которых будет выполняться ваше приложение, однако это накладывает отпечаток на производительность и скорость выполнения кода. (Причины этого общедоступны, но это не тема данной статьи).

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

Необходимость использования NDK.

На данный момент, инструмент SDK предоставляет все необходимые средства для написания приложения под Android. В силу этого, нет никакой необходимости использовать С/С++ в повседневной работе. В большинстве случаев это не требуется, потому что при правильном подходе, производительности, которую обеспечивает ART будет достаточно. Однако его NDK незаменим в таких ситуациях как:

  • Работа с графикой и звуком
  • Использование сторонних библиотек
  • Низкоуровневая разработка - все, что выходит за рамки ART

Заключение

В этой части статьи мы рассмотрели краткое описание сути NDK, его роли при разработке в Android и причин его использования. В следующей части, рассмотрим практический пример подключения и использования C/C++ в Android. До новых встреч!

--

Александр Чех

CTO MobileDev

0
В избр. Сохранено
Авторизуйтесь
Вход с паролем
Комментарии
Выбрать файл
Блог проекта
Расскажите историю о создании или развитии проекта, поиске команды, проблемах и решениях
Написать
Личный блог
Продвигайте свои услуги или личный бренд через интересные кейсы и статьи
Написать

Spark использует cookie-файлы. С их помощью мы улучшаем работу нашего сайта и ваше взаимодействие с ним.