Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Xamarin.Android поддерживает несколько архитектур ЦП, включая 32-разрядные и 64-разрядные устройства. В этой статье объясняется, как нацелить приложение на одну или несколько архитектур ЦП, поддерживаемых Android.
Обзор архитектур ЦП
При подготовке приложения к выпуску необходимо указать, какую архитектуру ЦП платформы поддерживает ваше приложение. Один APK-файл может содержать код для нескольких различных архитектур. Каждая коллекция кода для конкретной архитектуры связана с двоичным интерфейсом приложения (ABI). Каждый ABI определяет, как этот машинный код должен взаимодействовать с Android во время выполнения. Дополнительные сведения о том, как это работает, см. в разделе "Устройства с несколькими ядрами" и Xamarin.Android.
Указание поддерживаемых архитектур
Как правило, вы явно выбираете архитектуру (или архитектуры) при настройке приложения для выпуска. Если приложение настроено для отладки, включены параметры "Использовать общую среду выполнения" и "Использовать быстрое развертывание", которые отключают явный выбор архитектуры.
В Visual Studio щелкните проект правой кнопкой мыши в Обозреватель решений и выберите "Свойства". На странице "Параметры Android" проверка разделе "Свойства упаковки" и убедитесь, что использование общей среды выполнения отключено (это позволяет явно выбрать, какие ABis поддерживать). Нажмите кнопку "Дополнительно" и в разделе "Поддерживаемые архитектуры" проверка архитектуры, которые требуется поддерживать:
Xamarin.Android поддерживает следующие варианты архитектуры:
- armeabi — процессоры на основе ARM, поддерживающие по крайней мере набор инструкций ARMv5TE. Обратите внимание, что
armeabiне является потокобезопасной и не следует использовать на устройствах с несколькими ЦП.
Примечание.
По состоянию на Xamarin.Android 9.2 больше armeabi не поддерживается.
armeabi-v7a — процессоры на основе ARM с аппаратными операциями с плавающей запятой и несколькими устройствами ЦП (SMP). Обратите внимание, что
armeabi-v7aкомпьютерный код не будет работать на устройствах ARMv5.arm64-v8a — процессоры на основе 64-разрядной архитектуры ARMv8.
x86 — процессоры, поддерживающие набор инструкций x86 (или IA-32). Этот набор инструкций эквивалентен тому, что из Инструкций Изумиры, включая MMX, SSE, SSE2 и SSE3.
x86_64 ЦП, поддерживающие 64-разрядный набор инструкций x86 (также называемый набором инструкций x64 и AMD64).
Xamarin.Android по умолчанию используется armeabi-v7a для сборок выпуска . Этот параметр обеспечивает значительно лучшую производительность, чем armeabi. Если вы нацелены на 64-разрядную платформу ARM (например, Nexus 9), выберите arm64-v8a. Если вы развертываете приложение на устройстве x86, выберите x86. Если целевое устройство x86 использует 64-разрядную архитектуру ЦП, выберите x86_64.
Назначение нескольких платформ
Чтобы выбрать несколько архитектур ЦП, можно выбрать несколько ABI (за счет большего размера APK-файла). Чтобы создать отдельный пакет для каждой поддерживаемой архитектуры, можно использовать один пакет (.apk) для выбранного параметра ABI (описано в разделе "Задать свойства упаковки").
Вам не нужно выбирать arm64-v8a или x86_64 для 64-разрядных устройств; 64-разрядная поддержка не требуется для запуска приложения на 64-разрядном оборудовании. Например, 64-разрядные устройства ARM (например , Nexus 9) могут запускать приложения, настроенные для armeabi-v7a. Основное преимущество включения 64-разрядной поддержки заключается в том, чтобы приложение пользовалось большей памятью.
Примечание.
Начиная с августа 2018 г. новые приложения должны будут использовать API уровня 26, а с августа 2019 г. будет необходимо выпускать 64-разрядные версии приложений в дополнение к 32-разрядным.
Дополнительная информация
В некоторых ситуациях может потребоваться создать отдельный APK для каждой архитектуры (чтобы уменьшить размер APK или так как приложение имеет общие библиотеки, относящиеся к определенной архитектуре ЦП). Дополнительные сведения об этом подходе см. в разделе "Сборка API для конкретных ABI".

