Будут ли бинарные файлы, построенные для ARM, работать на процессорах Intel? [Андроид]


Используя NDK, я построил двоичные файлы для процессора ARM, но из-за некоторых зависимостей я не могу построить их для x86. Есть ли шанс использовать этот двоичный файл на архитектуре x86 или MIPS?

3 5

3 ответа:

Есть ли шанс использовать этот двоичный файл на архитектуре x86 или MIPS?

Я не могу комментировать MIPS.

X86 устройства, которые поставляются с libhoudini будет иметь возможность использовать ваши двоичные файлы NDK на основе ARM. AFAIK, это большинство устройств текущего поколения x86, как и некоторые планшеты Samsung. Если вы отправляете через Play Store, libhoudini-оборудованные устройства должны иметь возможность загружать и устанавливать ваше приложение без каких-либо изменений с вашей стороны.

Заметьте, однако, что libhoudini запускает двоичные файлы ARM намного медленнее, чем двоичные файлы x86. Это похоже на то, как эмулятор Android запускает образы эмулятора ARM намного медленнее, чем это делает эмулятор x86.

Оба устройства x86 и MIPs способны выполнять двоичную трансляцию ARM, используя магический код на MIPs и Houdini на x86. Однако и то, и другое имеет свою цену, и ни одно из них, скорее всего, не будет долгосрочным решением (обе компании, скорее всего, захотят, чтобы они ушли раньше, чем позже).

Вы упомянули, что из-за некоторых проблем с зависимостями вы не смогли построить lib для x86? Это все еще так? Я так понимаю, вы используете какой-то lib, который не включает x86 версия?

Для дальнейшего использования, если вы хотите построить для x86 native, процесс чрезвычайно прост, все, что вам нужно сделать, это добавить APP_ABI+=x86 или добавить x86 в существующий список APP_ABI.....и....вот и все. Действительно.

Нет абсолютно никаких шансов, что сборка для процессора будет понята другим.

Набор инструкций отличается, например, это было бы похоже на интерпретацию французского текста ( кода ) с английским словарем (cpu ).