Как собственный код Android может работать с несколькими типами процессоров?

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

Но что произойдет, если я хочу создать приложение, содержащее собственный код, но предназначенный для нескольких процессоров?

Должен ли я создавать несколько приложений, по одному для каждой архитектуры? Или есть способ поставить несколько версий собственного кода в одном приложении, выбрав тот, который соответствует процессору устройства, на котором он работает?

Android Native Development Kit представляет собой набор кросс-компиляторов и библиотек поддержки, которые могут использоваться для создания файлов общих объектов (.so), ориентированных на одну или несколько официально поддерживаемых архитектур Android.

Программный пакет zip-файлов с программным пакетом приложений (.apk) позволяет включать отдельные собственные библиотеки для более чем одной архитектуры.

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

Обычно это называется кросс-компиляцией. Т.е. вам нужен компилятор, чем компилирует X, ваш текущий код для Y. Он генерирует код для CPU Y, а не X, как это обычно бывает.

Вам нужно настроить множественную архитектуру процессора только в том случае, если вы разрабатываете приложение NDK. Создайте файл под именем «Application.mk» в папке jni. Добавьте этот параметр APP_ABI = Пример: APP_ABI: = x86 armv7eabi mips, или вы все можете сделать это APP_ABI: = all (в котором он создаст apk для всей поддерживаемой архитектуры), но при этом вы создадите двоичный файл FAT и Google Play Заботиться о фильтрации соответствующего apk для другой базовой архитектуры, когда пользователь устанавливает ваше приложение.