Главное Авторские колонки Вакансии Образование
Выбор редакции:
6 618 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-файлы. С их помощью мы улучшаем работу нашего сайта и ваше взаимодействие с ним.