Как установить android ndk в linux?
Я загрузил android NDK отсюда:http://developer.android.com/tools/sdk/ndk/index.html
для Linux 64-разрядная версия (x86) android-ndk-r10c-linux-x86_64.бункер. Как я его устанавливаю? Инструкции не работают. Моя ОС
6 ответов
Стандартный Путь
NDK Android теперь поставляется как самораспаковывающийся исполняемый файл. Вероятно, вам нужно установить исполняемый бит:
вышеуказанное приведет к извлечению NDK в текущий рабочий каталог.
Извлечение Инструкцию
Так .bin файл действительно Просто 7-Zip самораспаковывающийся архив, вы можете вручную извлечь содержимое, если нужны:
7-Zip доступен в Ubuntu, например, через apt-get:
обновление
Как минимум r14b на страница загрузки NDK, мы вернулись к стандартным архивам ZIP.
вы можете установить NDK с помощью диспетчера SDK из Android Studio
в открытом проекте выберите инструменты > Android > SDK Manager в строке меню. Перейдите на вкладку Инструменты SDK. Установите флажки рядом с LLDB, CMake и NDK. Применить
перейдите в каталог, в который вы его загрузили. Затем выполните:
Он должен распаковать прямо там. Цепочка инструментов будет находиться в Android-ndk-r10c-linux-x86_64/toolchains. Корневая папка может иметь несколько другое имя.
Я сделал, как показано ниже
установить 7-Zip через apt-get такой
перейдите в папку, где находится ваш NDK bin, а затем выполните команду
Ubuntu будет ошибка:bash: ./андроид-НДК-r10c-ОС Linux-x86_64 с.ОГРН: нет такого файла или каталога
slove: apt-get install p7zip-full
у меня есть androidBBQ, который основан на archlinux, установленный с помощью vmware. Но я думаю мои инструкции должны быть одинаковыми для любого дистрибутива Linux. Я использовал встроенный менеджер SDK AndroidStudio, чтобы попытаться установить NDK. Не удалось загрузить, потому что в /tmp не было места. Оказывается, большинство дистрибутивов Linux имеют ramdisk baesd tmpfs (временная файловая система в ОЗУ, которая монтируется в /tmp) и нет отдельного раздела, который можно было бы расширить. / tmp установлен обычно с помощью 50% доступной оперативной памяти.
установите NDK с помощью встроенного SDK-менеджера Android Studio ->не так удобно
a) расширить / tmp
Я отредактировал свою fstab как root, используя эту команду:
Я добавил эту строку к моей fstab
Примечание: если такой строки не существует, добавьте строку выше в конце fstab. Если такая линия существует, это означает, что вы уже расширил ваш /tmp, и он все еще был недостаточным. Таким образом, измените значение «размер», подняв его на несколько GBs.
Затем я перезагрузился. Как только я это сделал, мой /tmp был расширен до размера 8GB. Для целей развития, я думаю мы должны легко расширить наш / tmp потому что нам все равно придется сделать это через некоторое время. Размер /tmp не зависит от свободного места на нашем жестком диске (виртуальном или физическом).
b) запустите NDK install еще раз
Я побежал NDK снова устанавливается из AndroidStudio. Он должен был загрузить NDK zip заново. Unfrotunate, что нет функции resume/recheck для восстановления сломанных установок. Моя скорость загрузки была медленной, поэтому я свернул окно виртуального linux и продолжил читать новости. Позже, я думаю, произошел обмен памятью / страницей. Ошибка загрузки. Я перезапустил Linux и перезапустил NDK install таким же образом. На этот раз я позволил виртуальной машине Linux остаться на переднем плане. NDK установлен нормально с этим журналом :
ручная установка NDK в Linux (предпочтительно) Я поражен, что официальный раздел Android dev не потрудился указать точное местоположение установки Android NDK. Android Studio ищет NDK по адресу:
Источник
How to install android ndk in linux?
I have downloaded android NDK from here: http://developer.android.com/tools/sdk/ndk/index.html
for Linux 64-bit (x86) android-ndk-r10c-linux-x86_64.bin. How I do install it? The instructions don’t work. My OS is
8 Answers 8
The Standard Way
Android’s NDK now ships as an self extracting executable. You likely need to set the executable bit:
The above will cause the NDK to extract into the current working directory.
Manual Extraction
Since the .bin file is really just a 7-Zip self extracting archive, you can manually extract the contents if needed:
7-Zip is available in Ubuntu for example via apt-get:
Update
As of at least r14b on the NDK download page, we’re back to standard ZIP archives.
If you already have AndroidStudio installed:
You can install NDK using the SDK Manager from within Android Studio
From an open project, select Tools > Android > SDK Manager from the menu bar. Click the SDK Tools tab. Check the boxes next to LLDB, CMake, and NDK. Apply
Another way to download and install (unpack) it (size of zip is
820MB, unzipped is
2.9G):
Go to the directory where you downloaded it. Then execute:
It should unpack right there. The toolchain will be in android-ndk-r10c-linux-x86_64/toolchains. The root folder might have a slightly different name.
I have done like below
Install 7-Zip via apt-get like this
go to folder where your ndk bin is and then execute the command
I have androidBBQ which is archlinux based, installed using vmware. But I guess my instructions should be the same for any linux distribution. I used AndroidStudio’s built-in SDK manager, to try installing NDK. Download failed because there was no space in /tmp. Turns out that most Linux distros have ramdisk baesd tmpfs (temporary file system in RAM which is mounted at /tmp) and there is no separate partition which could be extended. /tmp is mounted usually by using 50% of available RAM.
Install NDK using Android Studio’s built-in SDK manager ->not so convenient
a) Extend /tmp
I edited my fstab as root, using this command :
I appended this line to my fstab
Note: If no such line exists, add above line at end of fstab. If any such line exists, it means you had already extended your /tmp and it was still insufficient. So, only change the «size» value, by raising it by a few GBs.
Then I rebooted. Once I did, my /tmp was extended to 8GB size. For development purposes, I guess we should readily extend our /tmp because we will have to do it anyway some time later. Size of /tmp is not dependent on free space in our hard disk (whether virtual or physical).
b) run NDK install again
I ran the NDK install from within AndroidStudio again. It had to download the NDK zip afresh. Unfrotunate that there is no resume/recheck function to resurrect broken installs. My download speed was slow, so I minimized the virtual linux’s window and continued to read news. Later, I guess memory/page swapping occurred. The download failed. I restarted Linux and restarted NDK install the same way. This time, I let the virtual Linux machine stay on foreground. NDK installed fine with this log :
Manual NDK install in Linux (preferable) I am amazed that official Android dev section did not bother indicating exact install location of Android NDK. Android Studio looks for NDK at:
Источник
Как установить Android ndk в Linux?
Я скачал Android NDK здесь: http://developer.android.com/tools/sdk /ndk/index.html
для Linux 64-битная (x86) android-ndk-r10c-linux-x86_64.bin. Как мне это установить? Инструкции не работают. Моя ОС
6 ответов
Стандартный путь
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. Применить
Перейдите в каталог, где вы его скачали. Затем выполните:
Он должен распаковать прямо здесь. Набор инструментов будет находиться в android-ndk-r10c-linux-x86_64 /toolchains. Корневая папка может иметь немного другое имя.
Я сделал, как показано ниже
Установите 7-Zip через apt-get вот так
перейдите в папку, где находится ваш ndk bin, а затем выполните команду
Ubuntu выдаст ошибку: bash: ./android-ndk-r10c-linux-x86_64.bin: нет такого файла или каталога
SLOVE: apt-get install p7zip-full
У меня есть androidBBQ на основе archlinux, установленный с помощью vmware. Но я думаю, мои инструкции должны быть одинаковыми для любого дистрибутива Linux . Я использовал встроенный менеджер SDK AndroidStudio, чтобы попытаться установить NDK . Загрузка не удалась, потому что в /tmp не было места. Оказывается, в большинстве дистрибутивов Linux есть ramdisk baesd tmpfs (временная файловая система в ОЗУ, которая монтируется в /tmp), и нет отдельного раздела, который можно было бы расширить. /tmp монтируется обычно с использованием 50% доступной оперативной памяти.
Установить NDK с помощью встроенного в Android Studio SDK manager — -> не очень удобно
а) Расширить /tmp
> Я отредактировал свой fstab как root, используя эту команду:
Я добавил эту строку в свой fstab
Примечание. Если такой строки не существует, добавьте строку выше в конце fstab. Если такая строка существует, это означает, что вы уже расширили /tmp, но ее все еще недостаточно. Поэтому измените только значение размера, увеличив его на несколько ГБ.
Затем я перезагрузился. Как только я это сделал, мой /tmp был расширен до размера 8 ГБ. В целях разработки, я думаю, мы должны с готовностью расширить наш /tmp , потому что нам все равно придется это делать через некоторое время. Размер /tmp не зависит от свободного места на нашем жестком диске (виртуальном или физическом).
b) снова запустите установку NDK
Я снова запустил установку NDK из AndroidStudio. Он должен был скачать ZDK Zip заново. Разверните, что нет функции возобновления /перепроверки для восстановления неработающих установок. Моя скорость загрузки была низкой, поэтому я свернул окно виртуального linux и продолжал читать новости. Позже, я думаю, произошла перестановка памяти /страниц. Загрузка не удалась. Я перезапустил Linux и перезапустил установку NDK таким же образом. На этот раз я позволил виртуальной машине Linux остаться на переднем плане. NDK нормально установлен с этим журналом:
Установка NDK вручную в Linux (предпочтительно) Я поражен тем, что официальный раздел разработчиков Android не удосужился указать точное место установки Android NDK. Android Studio ищет NDK по адресу:
Источник
Сборка open-source библиотек на Android NDK
В процессе работы с Android NDK я столкнулся с проблемой сборки уже существующих Linux библиотек на Android NDK. Так как материала не слишком много в этой статье поделюсь своим опытом. В Андроиде я новичек, так что если найдете ошибки — пишите:)
Чтобы пример был не самым простым и при том полезным — возьмём библиотеку libFLAC. Этот даст возможность декодировать .flac файлы. По данному мануалу, я надеюсь, соберутся большинство других библиотек.
Кроме неё нам понадобится:
- Android NDK, r5b (http://developer.android.com/sdk/ndk/index.html)
- libOgg (http://www.xiph.org/downloads/)
- libVorbis (там же, где и libOgg).
Создание проекта
Создаём стандартный Android проект, в нем создаём папку jni и распаковываем туда libogg, libvorbis, libflac.
Сборка
Приступим к первому этапу. Для сборки я использовал такой скрипт:
Для libVorbis придется его немного изменить:
LDFLAGS будет таким:
Для libflac изменим добавим в libs -lvorbis.
Рассмотрим структуру скрипта по порядку. Строка export CC — путь к компилятору Android NDK. Тут: export LDFLAGS можем задавать директории, где искать библиотеки, а в LIBS подключать их. В этой строке: export CPPFLAGS подключаем headers дополнительных библиотек.
Выполняете нужные скрипты в корне каждой из библиотек. После сборки, если все прошло успешно вы получаете библиотеки, которые уже можно компилировать на NDK.
Подготовка Android.mk
Итак, для начала создадим Android.mk, вида:
include $(all-subdir-makefiles)
В папках: jni, jni/libogg, jni/libflac, jni/libvorbis
Этот скрипт означает, что будут подключены все Android.mk в поддиректориях.
Для создания Android.mk в папках jni/libogg/src, jni/libvorbis/lib, jni/libflac/src будем использовать все Makefile.am в тех же папках.
jni/libogg/src
В Makefile.am ищем строки:
libogg_la_SOURCES = framing.c bitwise.c — это все что нам надо. Получаем стандартный Android.mk вида:
Думаю тут объяснять ничего не надо. Идём дальше.
jni/libvorbis/lib
Тут тоже все просто. Находим строку: libvorbis_la_SOURCES и подулючаем все файлы, что там есть. Получаем такой Android.mk:
jni/libflac/src
Процесс тот же, но файлов намного больше и они в поддиректориях. Я решил все что есть собрать в одну библиотеку, чтоб было проще, поэтому получил такой скрипт:
NDK BUILD
Выполняем ndk-build (этот скрипт находится в папке NDK) и видим что все компилируется, но flac даёт следующую ошибку:
/home/user/workspace/w/testOGG/jni/flac-1.2.1/src/libFLAC/format.c:60: error: ‘VERSION’ undeclared here (not in a function)
/home/user/workspace/w/testOGG/jni/flac-1.2.1/src/libFLAC/format.c:66: error: expected ‘,’ or ‘;’ before ‘VERSION’
make: *** [/home/user/workspace/w/testOGG/obj/local/armeabi/objs/FLAC/libFLAC/format.o] Ошибка 1
Проблема в том, что константа VERSION определена в makefile, который мы не подключали. Самым простым выходом я вижу создать эту константу в самом format.c вот так:
#define VERSION «1.2.1»
Все теперь ошибок нет. При компиляции получаем:
Install : libFLAC.so => libs/armeabi/libFLAC.so
Install : libogg.so => libs/armeabi/libogg.so
Install : libvorbis.so => libs/armeabi/libvorbis.so
В каталогах должны появится такие файлы и папки:
Теперь осталось последнее — протестировать все ли работает. Я переделал на скорую руку из стандартных примеров декодирования аудио через libflac. Декодировал из flac файла в wav. Так как код скрипт великоват вы можете протестировать работу на этом apk:тестовый apk файл
(чтоб все сработало, надо чтоб в sdcard был файл output.flac с:
05-20 14:18:42.783: INFO/FLAC(427): sample rate: 44100 Hz
05-20 14:18:42.783: INFO/FLAC(427): channels: 2 Hz
05-20 14:18:42.783: INFO/FLAC(427): bits: 16 Hz, он будет перекодирован в test2.wav. При работе программы ничего писать не будет (только в логи). Протестировано на эмуляторе, HTC Wildfire и Samsung galaxy tab (везде Android 2.2). Процесс занял не более минуты при работе с 20 мегабайтным flac файлом. По окончанию работы отобразится Hello world.
Вот исходники всего проекта:
исходники
Удачи!
Источник