Библиотека arm для android x86

Библиотека arm для android x86

Android OS на x86

В этой теме обсуждаются вопросы общие для всех Андроидов на платформе x86, конкретно проект портирования Android-х86, а также его братья, не имеющие отдельных тем обсуждения на нашем форуме.
Android в виртуальную машину | Сайт и Форум проекта Android-х86 | Android от Intel

Вопросы, касающиеся только проектов Phoenix OS , Remix OS x86 и Bliss-x86 , обсуждаются в своих темах.
За работоспособность ваших устройств ответственность несёте исключительно Вы. Задавая вопрос, постарайтесь указать следующую информацию .

    Hardware List — список совместимого оборудования
      Если Вы не нашли в шапке или в листе совместимости версию для вашего компьютера/ноутбука (модификации железа), то следует попробовать разные версии и опытным путём подобрать оптимальную.

  • Графическое ускорение нормально работает на видеоадаптерах от AMD и Intel (кроме GMA 500, GMA 600, GMA 3600, GMA 3650, т.к. они основаны на PowerVR).
    Графика nVidia поддерживается начиная с Android-x86 4.4-R3; новое поколение начинает поддерживаться после выхода следующего.
  • Ситуация с поддержкой планшетов, Критическое замечание о звуке.
  • Чипы, которые реализуют одновременно и WiFi, и Bluetooth работают хуже, чем отдельные.

    Загрузочную флешку или диск необходимо записать с помощью Rufus, UNetbootin, LiLi, или WinImage. UltraISO использовать не рекомендуется потому, что созданные им флешки мало где грузятся.

Раздел под Android рекомендуется форматировать в ext3 или ext4 (для версии 5.0 Lollipop и новее) чтобы иметь >4ГБ места под свои нужды и избежать проблем с SuperSU и другим софтом. Форматирование раздела лучше произвести до установки Android сторонним ПО (Acronis, GParted, др.): родной установщик не всегда справляется с этой задачей.

title Android-x86 5.1-rc1
kernel /android-5.1-rc1/kernel quiet root=/dev/ram0 androidboot.hardware=android_x86 SRC=/android-5.1-rc1
initrd /android-5.1-rc1/initrd.img

title Android-x86 5.1-rc1 (Debug mode)
kernel /android-5.1-rc1/kernel root=/dev/ram0 androidboot.hardware=android_x86 DEBUG=2 SRC=/android-5.1-rc1
initrd /android-5.1-rc1/initrd.img

title Android-x86 5.1-rc1 (Debug nomodeset)
kernel /android-5.1-rc1/kernel nomodeset root=/dev/ram0 androidboot.hardware=android_x86 DEBUG=2 SRC=/android-5.1-rc1
initrd /android-5.1-rc1/initrd.img

title Windows
rootnoverify (hd0,1)
chainloader +1

Тут default указывает номер пункта, котоый будет выбран автоматически после истечения timeout секунд. root и rootnoverify указывают с какого диска, и с какого его раздела загружать выбраную операционную систему. Как и в случае с default, нумерация начинается с нуля. Параметры загрузки прописываются в конец строки, которая начинается со слова kernel. Такими параметрами можно повлиять на многие аспекты работы Андроида с железом. К примеру настроить работу с внешним монитором.

GRUB 2 — следующая версия GRUB. Разработчики писали GRUB 2 «с нуля», чтобы добиться переносимости и модульности.
Используется в образах Android-x86 для компьютеров с новым UEFI-BIOS.
Может хранить свои настроки в файле grub.cfg либо menu.lst. Обычно этот файл лежит на отдельном системном разделе EFI (ESP). Типичное содержимое:

set timeout=60
set gfxmode=1024×768
terminal_output gfxterm

Источник

Перекомпиляция Android библиотек под х86. JavaCV и Alljoyn

Получение х86 версии JavaCV под Android

JavaCV представляет собой обертку (wrapper) для библиотек OpenCV и ffmpeg. В то время как эти библиотеки отлично совместимы с х86 версией Android, JavaCV не имеет соответствующих скриптов сборки и не интегрирован в бинарники х86.
Хотя компиляция подходящих х86 версий пакетов JavaCV и не займет много времени, для самых торопливых сразу же приведем ссылки:

  • javacv-0.7-bin-android-x86.zip
  • javacv-0.7-cppjars-android-x86.zip

Теперь давайте посмотрим, что нам потребовалось для сборки. Вам понадобятся традиционные средства сборки (gcc, make, …), а также maven.
Для начала необходимо перекомпилировать cppjars

Перекомпилирование cppjars (OpenCV и ffmpeg)

Этого легко достичь, используя скрипты сборки, прилагаемые к пакету cppjars:

Скрипты сборки для Android: build_opencv-android-arm.sh и build_ffmpeg-android-arm.sh. Нам нужно создать эквивалентные build_opencv-android-x86.sh и build_ffmpeg-android-x86.sh. Для этого в -х86 копиях заменим:

  • arm-linux-androideabi- на i686-linux-android- (префикс бинарника toolchain)
  • arm-linux-androideabi- на x86- (toolchain)
  • -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mfpu=neon… на -mtune=atom -mssse3 -mfpmath=sse (флаги компилятора)
  • arm-linux на i686-linux
  • прочие суффиксы -arm на -x86

Не делайте этого вслепую – все будет работать лучше, если вы понимаете, что делаете 🙂

Вот что в результате у меня получилось в файле build_ffmpeg-android-x86.sh:

Здесь ffmpeg-$FFMPEG_VERSION-android-x86.patch точно тот же самый, что и в arm версии, можете его просто скопировать.
А вот файл build_opencv-android-x86.sh:

Здесь я удалил вызов -arm патча, который генерировал другой android.mk файл и положился на platforms/android/android.toolchain.cmake, предоставляемый OpenCV, а также добавил некоторые специфичные флаги для большей оптимизации:

Теперь если вы выполните:

То получите ffmpeg-2.1.1-android-x86.jar и opencv-2.4.8-android-x86.jar.
Теперь мы, наконец, можем собрать пакет JavaCV.

Сборка х86 версии JavaCV

Сначала скачайте и установите JavaCPP:

После скачайте исходники JavaCV:

Теперь вы можете собрать android-x86 версию JavaCV, установив свойство android-x86 в JavaCPP:

Вы найдете собранные пакеты в папке target/:

Добавление х86 версии в ваше приложение

Из пакетов, скачанных по ссылкам в начале статьи или из тех, что вы только что собрали, вы можете скопировать сгенерированные файлы .so, находящиеся внутри javacv-android-x86.jar, ffmpeg-2.1.1-android-x86.jar и opencv-2.4.8-android-x86.jar в папку /lib/x86/ вашего Android пакета, точно так же, как и arm версии в папку /lib/armeabi-v7a/.

х86 версия Alljoyn для Android

Alljoyn – это кросс-платформенная библиотека для peer-to-peer связи между различными устройствами с использованием различных транспортов.
Библиотека имеет открытый исходный код (лицензия Apache), изначально она создана в Qualcomm Innovation Center. Проект присоединился к AllSeen Alliance и теперь хостится здесь.
Даже в том случае, если прекомпилированная х86 версия отсутствует на официальном вебсайте, компилирование из исходников прекрасно поддерживается.
Когда вы скачаете пакет под Android, то увидите следующее:

Если вы используете Java обвязку alljoyn.jar, то обнаружите liballjoyn_java.so в каталоге lib/armeabi/. Бинарники (файлы .so/.a) из этого пакета предназначены только для ARMv5, но отлично собираются из исходников под другие платформы.
По этой ссылке вы можете скачать х86 версию, которую я скомпилировал для вас. Она имеет ту же архитектуру, что и версия для ARMv5.
Если вы просто используете AllJoyn .jar под Android, вы можете взять liballjoyn_java.so и поместить его в каталог lib/x86 вашего Android приложения.
Если же вы желаете сами скомпилировать бинарник и узнать больше об этом процессе, вот описание того, что я сделал.

Компиляция Alljoyn для x86 платформы под Android

Первым делом скачайте исходники:

Затем возьмите libcrypto.so и libssl.so с реального x86 устройства или x86 эмулятора и поместите их в папку build/android/x86/release/dist/cpp/lib/:

Теперь вы можете собрать библиотеку для х86, как описано в документации; самое скучное в этом процессе – необходимость иметь копию исходников AOSP:

Источник

Библиотека arm для android x86

Android OS на x86

В этой теме обсуждаются вопросы общие для всех Андроидов на платформе x86, конкретно проект портирования Android-х86, а также его братья, не имеющие отдельных тем обсуждения на нашем форуме.
Android в виртуальную машину | Сайт и Форум проекта Android-х86 | Android от Intel

Вопросы, касающиеся только проектов Phoenix OS , Remix OS x86 и Bliss-x86 , обсуждаются в своих темах.
За работоспособность ваших устройств ответственность несёте исключительно Вы. Задавая вопрос, постарайтесь указать следующую информацию .

    Hardware List — список совместимого оборудования
      Если Вы не нашли в шапке или в листе совместимости версию для вашего компьютера/ноутбука (модификации железа), то следует попробовать разные версии и опытным путём подобрать оптимальную.

  • Графическое ускорение нормально работает на видеоадаптерах от AMD и Intel (кроме GMA 500, GMA 600, GMA 3600, GMA 3650, т.к. они основаны на PowerVR).
    Графика nVidia поддерживается начиная с Android-x86 4.4-R3; новое поколение начинает поддерживаться после выхода следующего.
  • Ситуация с поддержкой планшетов, Критическое замечание о звуке.
  • Чипы, которые реализуют одновременно и WiFi, и Bluetooth работают хуже, чем отдельные.

    Загрузочную флешку или диск необходимо записать с помощью Rufus, UNetbootin, LiLi, или WinImage. UltraISO использовать не рекомендуется потому, что созданные им флешки мало где грузятся.

Раздел под Android рекомендуется форматировать в ext3 или ext4 (для версии 5.0 Lollipop и новее) чтобы иметь >4ГБ места под свои нужды и избежать проблем с SuperSU и другим софтом. Форматирование раздела лучше произвести до установки Android сторонним ПО (Acronis, GParted, др.): родной установщик не всегда справляется с этой задачей.

title Android-x86 5.1-rc1
kernel /android-5.1-rc1/kernel quiet root=/dev/ram0 androidboot.hardware=android_x86 SRC=/android-5.1-rc1
initrd /android-5.1-rc1/initrd.img

title Android-x86 5.1-rc1 (Debug mode)
kernel /android-5.1-rc1/kernel root=/dev/ram0 androidboot.hardware=android_x86 DEBUG=2 SRC=/android-5.1-rc1
initrd /android-5.1-rc1/initrd.img

title Android-x86 5.1-rc1 (Debug nomodeset)
kernel /android-5.1-rc1/kernel nomodeset root=/dev/ram0 androidboot.hardware=android_x86 DEBUG=2 SRC=/android-5.1-rc1
initrd /android-5.1-rc1/initrd.img

title Windows
rootnoverify (hd0,1)
chainloader +1

Тут default указывает номер пункта, котоый будет выбран автоматически после истечения timeout секунд. root и rootnoverify указывают с какого диска, и с какого его раздела загружать выбраную операционную систему. Как и в случае с default, нумерация начинается с нуля. Параметры загрузки прописываются в конец строки, которая начинается со слова kernel. Такими параметрами можно повлиять на многие аспекты работы Андроида с железом. К примеру настроить работу с внешним монитором.

GRUB 2 — следующая версия GRUB. Разработчики писали GRUB 2 «с нуля», чтобы добиться переносимости и модульности.
Используется в образах Android-x86 для компьютеров с новым UEFI-BIOS.
Может хранить свои настроки в файле grub.cfg либо menu.lst. Обычно этот файл лежит на отдельном системном разделе EFI (ESP). Типичное содержимое:

set timeout=60
set gfxmode=1024×768
terminal_output gfxterm

Источник

Создание пакетов APK x86 и ARM APK с помощью компилятора Intel® и GNU gcc

Существуют устройства Android на процессорах с архитектурами наборов инструкций (ISA) ARM или x86. Различные архитектуры наборов инструкций не имеют двоичной совместимости, поэтому приложение, содержащее нативный код, должно содержать нативные библиотеки для каждой архитектуры. Одним из механизмов распространения таких приложений являются так называемые «толстые» пакеты приложений Android («толстые» APK).

В этой статье содержатся пошаговые инструкции по созданию такого «толстого» пакета APK, включающего независимые от архитектуры файлы для виртуальной машины Dalvik (Dalvik, 2013), а также библиотеки для разных архитектур. В статье описывается сборка нативной библиотеки приложения x86 с помощью Intel Integrated Native Developer Experience (INDE).

Для демонстрации используем пример hello-jni из дистрибутива NDK r10 (входящий в состав установки Intel INDE).

Подготовка среды сборки

2) для program files (x86).
3. Создайте новую переменную среды:
JAVA_HOME=[jdk7-dir].
4. Установите:
пакет Intel Integrated Native Developer Experience должен быть установлен в [inde-dir].
5. Добавьте эту папку в переменную среды PATH:
каталог [ant-dir]\bin для использования средства ant (расположение [ant-dir] по умолчанию: [inde-dir]\IDEintegration)

Сборка из командной строки

В этом разделе содержатся инструкции по созданию пакетов APK для поддержки устройств Android с архитектурой ARM и x86 в среде сборки с командной строкой.
Откройте окно командной строки или окно терминала в Linux; перейдите в папку примеров Android NDK «hello-jni» [ndk-dir]\samples\hello-jni; выполните следующие действия.
Примечание. Все средства, перечисленные в разделе выше, должны быть доступны из этого окна.

1. Настройка приложения
Выполните следующую команду в папке hello-jni для создания файла build.xml, который будет впоследствии использован для сборки примера.

Примечание. —target android-19 соответствует версии Android 4.4 (KITKAT).

2. Очистка рабочей области приложения
Используйте следующую команду для очистки всей рабочей области, включая библиотеки, для всех архитектур ISA.

Примечание: V=1: печать всех команд по мере их выполнения. APP_ABI=all: принудительная очистка всех промежуточных файлов для всех целевых платформ. Если не указать этот параметр, будет очищен только файл для целевой платформы armeabi.

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

Примечание: APP_ABI=armeabi-v7a: настройка компиляции для целевой платформы ARM. NDK_TOOLCHAIN=arm-linux-androideabi-4.8: вместо используемого по умолчанию GNU gcc 4.6, используется gcc 4.8.
Двоичный файл приложения (libhello-jni.so) создается по адресу .\libs\armeabi-v7a\libhello-jni.so.

4. Сборка двоичных файлов для архитектуры x86 с помощью компилятора Intel
Используйте указанную ниже команду для сборки двоичного файла приложения для архитектуры x86 с помощью компилятора Intel.

Примечание: APP_ABI=x86: настройка компиляции для архитектуры x86. NDK_TOOLCHAIN=x86-icc: замена используемого по умолчанию компилятора gcc 4.6 на компилятор Intel C/C++ для Android. NDK_APP.local.cleaned_binaries=true: отмена удаления библиотеки в каталоге libs/armeabi. См. примечания ниже.
Двоичный файл приложения (libhello-jni.so) создается по адресу .\libs\x86\libhello-jni.so.

5. Подготовка пакета приложения (APK)
После сборки всех двоичных файлов для каждой целевой платформы Android убедитесь, что папка libs\[targetabi] содержит требуемые библиотеки для каждой целевой архитектуры.
Чтобы упростить создание пакета и избежать его подписания, используйте следующую команду для создания отладочного пакета.

После этого новый пакет HelloJni-debug.zip появится в папке .\bin. Его можно запустить в имитаторах x86 или ARM, поддерживающих API уровня 19 или выше, содержащихся в Android SDK.
Пакет HelloJni-debug.zip содержит библиотеки для двух целевых платформ: ARM EABI v7a и x86.

Сборка в интегрированной среде разработки Eclipse

1. Откройте Eclipse и загрузите пример [inde-dir]/IDEintegration/NDK/samples/hello-jni.
В меню выберите File > New > Project > Android.
Нажмите кнопку Android Project from Existing Code.
В поле Root Directory нажмите кнопку Browse. и выберите папку [ndk-dir]/samples.
Затем щелкните Deselect All и выберите только нужный проект: hello-jni
Снимите флажок Copy projects into workspace.
Нажмите кнопку Finish.

2. Добавьте в проект поддержку нативного кода.
Щелкните имя проекта правой кнопкой мыши и выберите Android Tools > Add Native Support.
Нажмите кнопку Finish.
Примечание. Если после этого шага на консоли появляется сообщение об ошибке Unable to launch cygpath, этот шаг можно пропустить, что не повлияет на проект.

3. Создайте отдельную конфигурацию сборки для каждой целевой платформы, задайте команду сборки.
Щелкните проект правой кнопкой мыши и выберите Project properties -> C/C++ Build -> Manage configurations.
Щелкните New. , чтобы добавить новые конфигурации на основе конфигурации по умолчанию.
Имя: x86_icc Описание: для целевой платформы x86 с помощью компилятора Intel icc
Имя: arm_gcc Описание: для целевой платформы ARM с помощью компилятора GNU gcc

В этом же окне свойств проекта установите для параметра Configuration значение x86_icc.
Снимите флажок Use default build command.
Добавьте следующий текст в поле Build command: ndk-build APP_ABI=x86 NDK_TOOLCHAIN=x86-icc.
Щелкните Apply.
В этом же окне свойств проекта установите для параметра Configuration значение arm_gcc.
Снимите флажок Use default build command.
Добавьте следующий текст в поле Build command: ndk-build APP_ABI=armeabi-v7a NDK_TOOLCHAIN=arm-linux-androideabi-4.8.
Нажмите кнопку Apply, затем нажмите кнопку ОК.

4. Очистка всей рабочей области приложения
Если файл Application.mk существует в папке [eclipse-workspace-dir]\HelloJni\jni, убедитесь, что он не содержит следующую строку.
NDK_APP.local.cleaned_binaries=true
Щелкните проект правой кнопкой мыши и выберите Build configurations > Clean all….

5. Создайте файл Application.mk в папке [eclipse-workspace-dir]\HelloJni\jni, если он не существует, и убедитесь, что он содержит следующую строку.
NDK_APP.local.cleaned_binaries=true

6. Соберите двоичный файл для целевой архитектуры ARM* с помощью gcc и для целевой архитектуры x86 с помощью компилятора Intel.
Щелкните проект правой кнопкой мыши и выберите Build Configurations > Build Selected.
Выберите arm_gcc и x86_icc.
Нажмите кнопку ОК.
Проверьте выходные двоичные файлы по следующим адресам.
[eclipse-workspace-dir]\HelloJni\libs\armeabi-v7a\libhello-jni.so
[eclipse-workspace-dir]\HelloJni\libs\x86\libhello-jni.so

7. Создание неподписанных пакетов приложений
Щелкните проект правой кнопкой мыши и выберите Android Tools > Export Unsigned Application Package.

Примечание о невыполнении очистки двоичных файлов в .\libs\[targetabi]

Параметр NDK_APP.local.cleaned_binaries=true для отключения удаления собранных ранее библиотек может не работать в будущих версиях NDK. См. [ndk-dir]/build/core/setup-app.mk для получения информации о том, как отключить действия удаления для установленных двоичных файлов.

Прочие статьи по теме и ресурсы

Дополнительные сведения о средствах Intel для разработчиков Android см. на сайте Intel Developer Zone for Android.

Источник

Читайте также:  Simply piano для андроид
Оцените статью