Как установить ndk linux

Обновлено: 07.07.2024

Что нужно сделать, чтобы установить Android SDK / ADT Bundle в Ubuntu?

Каждый из шагов в ответ был найден на каком-то другом форуме, так как я столкнулся с препятствиями для начала работы с моим Android SDK и впоследствии разместил вопросы на соответствующих форумах. Поэтому я подумал, что это будет полезно, поскольку это универсальное решение на случай, если когда-нибудь понадобится переустановить Ubuntu и установить Android SDK / ADT Bundle с нуля!

Шаг 1

Проверьте в Системных настройках -> Подробности, является ли ваша Ubuntu 32-битной или 64-битной

Шаг 2

(Используя центр программного обеспечения или командные строки) Если ваша Ubuntu является 32-битной ОС, установите libgl1-mesa-dev

В случае установки 64-битной ОС ia32-libs (Ubuntu 13.04 или более ранняя версия), или libgl1-mesa-dev:i386 (Ubuntu 13.10 и выше)

Шаг 3

Шаг 4

Загрузите инструменты командной строки Android SDK здесь (они расположены внизу страницы) и разархивируйте их в место, где вы можете оставить их, пока вам нужен Android SDK, /opt/ например.

Шаг 5

Убедитесь, что в разархивированной папке ADT Bundle (или папке Android SDK, в зависимости от обстоятельств) есть папки tools а также platform-tools , Если platform-tools папка отсутствует, вы можете установить ее из менеджера виртуальных устройств Android, который можно запустить, набрав команду

в терминале. В этих папках хранятся некоторые важные команды. Добавьте их в свой исполняемый путь. Добавить их в путь можно следующим образом:

Сначала выполнить gedit

/.pam_environment , Файл открывается. Просто добавьте эти строки в этот файл:

Здесь вы должны заменить /path/to/tools а также /path/to/platform-tools по абсолютным путям в зависимости от того, где вы разархивировали SDK или загрузку пакета ADT. Теперь все команды adb , android , emulator и т.д. можно просто выполнить в терминале без указания абсолютных путей. То есть вы не получите ошибку "команда не найдена", если вы указали ее без абсолютного пути.

Шаг 6

Тип android в терминал и, если шаг 5 был выполнен правильно, запустится пакет Android SDK Package Tool, где вы сможете завершить установку.

Оригинал: Why should you need to pick Android NDK for your next project
Автор: Harigovind Thoyakkat
Дата публикации: 28 марта 2017 г.
Перевод: А.Панин
Дата перевода: 28 апреля 2017 г.

Почему стоит использовать Android NDK в вашем следующем проекте

Android NDK (Native Development Kit) является очень популярным инструментарием, используемым для разработки приложений для мобильных устройств. Многие приложения из магазина приложений Android Market используют компоненты, разработанные с использованием языков программирования, отличных от Java, для достижения максимальной производительности. Исходя из этого NDK является инструментарием, помогающим разработчикам создавать компоненты для своих приложений с использованием компилируемых языков программирования для различных целей, начиная с достижения оптимальной производительности и заканчивая упрощением используемого кода.

Для чего и как используется бинарный код

Мы все знаем о том, что процесс разработки приложений для Android тесно связан с использованием языка программирования Java, а также о том, что использование данного языка программирования значительно упрощает жизнь разработчиков, ведь они могут использовать элегантную объектно-ориентированную модель Java. Приложения или алгоритмы, реализованные на языке Java, преобразуются в специальный байткод, который выполняется аналогичным образом на всех поддерживаемых платформах. При этом виртуальная машина Java или JVM (Java Virtual Machine) ответственная за JIT-компиляцию и исполнение байткода Java, доступна практически для всех существующих платформ, начиная с мэйнфреймами и заканчивая мобильными телефонами.

Однако, в случае системы Android, которая используется главным образом на смартфонах и планшетных компьютерах, ключевым фактором становится достижение максимальной производительности приложения на используемом аппаратном обеспечении. Исходный код Java, как говорилось выше, предварительно преобразуется в байткод. Это именно тот байткод, который исполняется с небольшими отличиями на платформах, для которых доступна виртуальная машина Java. В конце концов все приложение исполняется в рамках виртуальной машины на устройстве, работающем под управлением Android.

Что касается разработки приложений для Android, описанный выше фактор является незначительным недостатком. Но программирование на языке Java может оказаться достаточно сложным ввиду постоянного усложнения кода и затруднения его понимания. Более того, использование мультиплатформенного байткода и виртуальной машины обуславливает значительные затраты вычислительных ресурсов устройства.

Другим важным фактором, который требует внимания, является мультиплатформенный код. Если нам нужно создать программу для множества аппаратных платформ, мы можем переписать большую часть кода, относящегося к контроллеру и отображению, для каждой из платформ, что является не самым разумным решением. Но весь код, относящийся к контроллеру, должен быть обязательно портирован на языки C и C++, так, как практически все мобильные платформы поддерживают их; таким образом, если нам удастся реализовать логику в рамках библиотек на языках C и C++ и впоследствии использовать ее на нескольких платформах, нам удастся максимально сократить потери производительности приложения. В подобных случаях мы будем использовать код на языках C и C++ вместе с привычным кодом на языке Java или "мультиплатформенным кодом".

При использовании компилируемого языка программирования исходный код компилируется непосредственно в машинный код для центрального процессора, а не в промежуточное представление, такое, как в языке Java. Таким образом разработчики приложений могут создавать приложения с оптимальной производительностью для различных Android-устройств. Фрагменты компилируемого кода могут быть структурированы в рамках одной разделяемой библиотеки, функции из которой могут вызываться из кода на языке Java. Отдельная разделяемая библиотека должна создаваться для каждой из поддерживаемых архитектур центральных процессоров. Большая часть ее исходного кода при этом может оставаться неизменной. Скомпилированные разделяемые библиотеки должны быть добавлены в файл .apk вашего приложения. С учетом всего вышесказанного, фундаментальная модель приложений Android не изменится.

Использование Android NDK

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

Android NDK интегрирован с инструментами из набора компонентов для разработки программного обеспечения (Android SDK), а также с интегрированной средой разработки Android Studio или устаревшей средой разработки Eclipse ADT. Однако, NDK не может использоваться отдельно.

Принцип работы Android NDK

Сердцем пакета Android NDK является сценарий ndk-build , который отвечает за автоматический обход файлов проекта Android (разработка каждого нового приложения для Android с помощью интегрированной среды разработки, такой, как Android Studio или Eclipse начинается с создания файлов нового проекта) и собирает информацию о том, какие компоненты нужно компилировать. Данный сценарий также ответственен за генерацию бинарных файлов и копирование этих бинарных файлов в директорию файлов проекта приложения.

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

Также в процессе сборки проекта создаются разделяемые библиотеки (Native Shared Libraries, с расширением .so ) и статические библиотеки (Native Shared Libraries, с расширением .a ), которые могут связываться с другими библиотеками. Бинарный интерфейс приложения (Application Binary Interface, ABI) использует разделяемые библиотеки с расширением .so для исполнения машинного кода в системе в процессе работы приложения.

Весь компилируемый код исполняется посредством интерфейса под названием Java Native Interface (JNI), который позволяет связать друг с другом компоненты на языках Java и C/C++.

Для сборки проекта с помощью сценария ndk-build нам придется создать два файла: Android.mk и Application.mk . Оба этих файла должны размещаться в директории JNI . Файл Android.mk описывает модуль и его имя, флаги сборки, используемые библиотеки файлы исходного кода, которые должны компилироваться, а файл Application.mk - бинарные модули, необходимые для работы приложения.

Установка и использование Android NDK в Ubuntu

Android NDK поставляется в формате самораспаковывающегося архива. По этой причине нам придется лишь установить бит исполнения и распаковать его:

В результате компоненты NDK будут сохранены в текущей рабочей директории.

Распаковка в ручном режиме

Ввиду того, что файл с расширением .bin является ничем иным, как самораспаковывающимся архивом формата 7-Zip, мы можем извлечь его содержимое вручную с помощью следующей команды:

Пакет с компонентами архиватора 7-Zip доступен из официального репозитория Ubuntu и может быть установлен, к примеру, с помощью команды apt-get:

Установка с помощью Android Studio

Мы можем установить Android NDK с помощью компонента SDK Manager непосредственно из Android Studio.

Для этого после открытия проекта следует осуществить переход в рамках главного меню окна Tools > Android > SDK Manager . После этого нужно установить флажки напротив названий компонентов LLDB , CMake и NDK . Далее нужно просто применить изменения с помощью соответствующей кнопки.

Создание или импорт проекта с бинарными компонентами

После настройки Android Studio мы можем создать новый проект с поддержкой языков программирования C/C++. Однако, если нам понадобится добавить или импортировать существующий код на этих языках в проект Android Studio, мы будем вынуждены выполнить описанные ниже действия.

Для начала следует создать новые файлы исходного кода с использованием упомянутых языков программирования и добавить их в проект, открытый в Android Studio. Мы можем пропустить этот шаг, если в проекте уже имеются подобные файлы или нам нужно импортировать в него предварительно скомпилированную библиотеку.

Сценарий сборки CMake позволяет сообщить одноименной системе сборки о том, как нужно осуществлять компиляцию файлов исходного кода и сборку результирующей бинарной библиотеки. Этот файл также необходим для импорта и связывания с нашей библиотекой существующих или поставляемых в комплекте NDK библиотек. Мы также можем без каких-либо последствий пропустить данный шаг в том случае, если в комплекте поставки нашей существующей бинарной библиотеки уже содержится файл сценария сборки CMakeLists.txt или она использует компонент ndk-build и в ее комплекте поставки содержится файл сценария сборки Android.mk .

Далее следует сообщить Gradle о существовании нашей бинарной библиотеки путем указания пути к файлу сценария сборки CMake или ndk-build . Gradle использует указанный сценарий сборки для импорта исходного кода в проект Android Studio и упаковки результирующей бинарной библиотеки (файла с расширением .so ) в файл пакета формата APK.

Важное замечание: если в рамках проекта используется устаревший инструмент ndkCompile , нам придется открыть файл build.poperties и удалить из него следующую строку кода перед настройкой Gradle с целью использования CMake или ndk-build:

Теперь мы можем собрать и выполнить наше приложение путем нажатия на кнопку Run . Gradle будет рассматривать процесс CMake или ndk-build в качестве зависимости, которая должна быть собрана, осуществлять сборку бинарной библиотеки и упаковывать ее в файл пакета формата APK.

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

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

Процесс создания простого приложения на основе Android NDK не связан с какими-либо сложностями. Однако, каждому разработчику следует уяснить один важный момент: набор программных компонентов Android NDK разрабатывался для использования в определенных случаях и не должен применяться при разработке любых приложений.

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

В качестве заключения следует сказать о том, что не существует незыблемых правил, регламентирующих возможные случаи использования NDK, поэтому вам всегда стоит обращаться к своими знаниям, опыту и интуиции.

Android NDK теперь поставляется как самораспаковывающийся исполняемый файл. Вероятно, вам нужно установить исполняемый бит:

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

Ручная экстракция

Так как .bin файл - это всего лишь 7-Zip-самораспаковывающийся архив, вы можете вручную извлечь содержимое, если необходимо:

7-Zip доступен в Ubuntu, например, с помощью apt-get:

Обновление

По крайней мере r14b на странице NDK, мы вернемся к стандартным ZIP-архивам.

Если у вас уже установлена AndroidStudio:

Вы можете установить NDK с помощью SDK Manager из Android Studio

В открытом проекте выберите "Сервис"> "Android"> "SDK Manager" в строке меню. Нажмите вкладку Инструменты SDK. Установите флажки рядом с LLDB, CMake и NDK. Применять

ответил(а) 2017-01-10T13:31:00+03:00 4 года, 10 месяцев назад

Перейдите в каталог, в который вы его загрузили. Затем выполните:

Он должен распаковываться прямо там. Инструментальная цепочка будет в android-ndk-r10c-linux-x86_64/toolchains. Корневая папка может иметь несколько другое имя.

Я сделал, как показано ниже

Установите 7-Zip через apt-get следующим образом

перейдите в папку, где находится ваш ndk bin, а затем выполните команду

У меня есть androidBBQ, основанный на archlinux, установленный с помощью vmware. Но я полагаю, что мои инструкции должны быть одинаковыми для любого дистрибутива Linux. Я использовал AndroidStudio встроенный менеджер SDK, чтобы попытаться установить NDK. Ошибка загрузки, поскольку в /tmp не было места. Оказывается, что большинство дистрибутивов Linux имеют ramdisk baesd tmpfs (временная файловая система в ОЗУ, которая монтируется в /tmp ), и нет отдельного раздела, который можно было бы расширить. /tmp устанавливается обычно с использованием 50% доступной ОЗУ.

Установить NDK с помощью встроенного менеджера SDK для Android Studio → не очень удобно
a) Расширить /tmp

Я отредактировал fstab как root, используя эту команду:

Я добавил эту строку в свой fstab

Примечание: Если такой строки нет, добавьте выше строку в конце fstab. Если какая-либо такая линия существует, это означает, что вы уже расширили ваш /tmp, и этого было недостаточно. Итак, измените значение "размер", подняв его на несколько ГБ.

Затем я перезагрузился. Как только я это сделал, мой /tmp был расширен до 8 ГБ. Для целей развития, я думаю, мы должны легко расширить наш /tmp , потому что нам придется это делать в любом случае через некоторое время. Размер /tmp не зависит от свободного места на нашем жестком диске (будь то виртуальный или физический).

b) снова запустите NDK

Ручная установка NDK в Linux (предпочтительнее)
Я поражен тем, что официальная секция Android dev не беспокоила указание точного места установки Android NDK. Android Studio ищет NDK по адресу:

Стандартный Способ

Android-е NDK теперь поставляется в виде самораспаковывающегося исполняемого файла. Вероятно, вам нужно установить исполняемый бит:

Вышеизложенное приведет к извлечению NDK в текущий рабочий каталог .

Ручная Экстракция

Поскольку файл .bin на самом деле является просто самораспаковывающимся архивом 7-Zip, вы можете вручную извлечь его содержимое, если это необходимо:


7-Zip доступен в Ubuntu, например, через apt-get:

Обновление
По крайней мере, с r14b на странице загрузки NDK мы возвращаемся к стандартным архивам ZIP.

Если у вас уже установлен AndroidStudio:

Вы можете установить NDK с помощью менеджера SDK из Android Studio

В открытом проекте выберите в строке меню Сервис > Android > SDK менеджер. Перейдите на вкладку SDK инструменты. Установите флажки рядом с LLDB, CMake и NDK. Применять

Перейдите в каталог, где вы его скачали. Затем выполнить:

Он должен распаковать вещи прямо здесь. Цепочка инструментов будет находиться в android-ndk-r10c-linux-x86_64/toolchains. Корневая папка может иметь немного другое имя.

Я пытаюсь найти где-нибудь ссылку для загрузки android-ndk-r9-linux-x86 , но, к сожалению, все мои попытки потерпели неудачу. Может ли кто-нибудь предоставить мне рабочую ссылку, чтобы я мог скачать Android NDK R9 для linux x86 .

Я использую ndk-gdb из android-ndk-r9d-linux-x86 в ubuntu 12.04 для отладки android собственного приложения hello-jni, но он получает эту ошибку. WARNING: The shell running this script isn't bash. Although we try to avoid bashism in scripts, things can happen.

Другой способ скачать и установить (распаковать) его (размер zip составляет

820 МБ , распакованный -

2.9G ):

Я сделал так, как показано ниже

Установите 7-Zip через apt-get следующим образом

перейдите в папку, где находится ваш NDK bin, а затем выполните команду

Ubuntu will error:bash: ./android-ndk-r10c-linux-x86_64.bin: такого файла или каталога нет

слове: apt-get установить p7zip-full

У меня есть androidBBQ, который основан на archlinux, установленный с помощью vmware. Но я думаю, что мои инструкции должны быть одинаковыми для любого дистрибутива linux . Я использовал встроенный менеджер AndroidStudio SDK, чтобы попытаться установить NDK . Загрузка не удалась из-за отсутствия места в /tmp. оказывается, что большинство дистрибутивов Linux имеют ramdisk baesd tmpfs (временная файловая система в RAM, которая монтируется в /tmp) и нет отдельного раздела, который можно было бы расширить. /tmp монтируется обычно с помощью 50% из имеющихся RAM.

Установить NDK с помощью встроенного в Android Studio менеджера SDK - >не так удобно
а) продлить /tmp
Я отредактировал свою fstab как root, используя эту команду :

Я добавил эту строку в свой fstab

Примечание: если такой строки не существует, добавьте вышеуказанную строку в конце fstab. Если такая строка существует, это означает, что вы уже расширили свой /tmp, и этого все еще недостаточно. Итак, измените только значение "size", подняв его на несколько GBs.
Затем я перезагрузился. Как только я это сделал, мой /tmp был расширен до размера 8 ГБ. Для целей развития, я думаю, мы должны с готовностью расширить наш /tmp, потому что нам все равно придется сделать это некоторое время спустя. Размер /tmp не зависит от свободного места на нашем жестком диске (будь то виртуальном или физическом).

Ручная установка NDK в Linux (предпочтительно ) Я поражен, что официальный раздел Android dev не потрудился указать точное место установки Android NDK. Android Studio ищет NDK по адресу:

Похожие вопросы:

При попытке создать общую библиотеку с помощью android-ndk-r8b она показывает ошибку Your APP_BUILD_SCRIPT points to an unknown file /home/myLib/ndk1/jni/Android.mk Android NDK Aborting. .Stop Для.

Я изо всех сил пытаюсь установить Android NDK на windows в течение нескольких дней, может ли кто-нибудь объяснить простой способ с помощью учебника по изображениям и объяснений, как его установить.

Я пытаюсь найти где-нибудь ссылку для загрузки android-ndk-r9-linux-x86 , но, к сожалению, все мои попытки потерпели неудачу. Может ли кто-нибудь предоставить мне рабочую ссылку, чтобы я мог скачать.

Я использую ndk-gdb из android-ndk-r9d-linux-x86 в ubuntu 12.04 для отладки android собственного приложения hello-jni, но он получает эту ошибку. WARNING: The shell running this script isn't bash.

Кто-нибудь знает, как извлечь файл .bin в Linux Ubuntu ? Мне придется установить android NDK. Я скачал его с сайта разработчика, а файл загрузил как файл .bin. Я использую Eclipse IDE. Я не знаю,как.

У меня есть jenkins на ubuntu. Здание работало нормально, пока я не начал использовать android ndk. последняя версия ndk загружается и извлекается в /opt/android-sdk-linux/ndk-bundle В.

Я настраиваю среду разработки Android на своей работающей машине Windows 7. Я установил Android studio 3.3 и другие необходимые пакеты. при попытке установить Android NDK я получаю следующую ошибку.

Читайте также: