Articles of рука

Безопасно ли строить с помощью -fsigned-char с Android NDK?

Для согласованности с другими платформами мне нужно использовать signed char в некотором собственном коде, над которым я работаю. Но по умолчанию на Android NDK тип char unsigned . Я попытался явно использовать signed char тип signed char но он генерирует слишком много предупреждений, differ in signedness когда differ in signedness строковые константы / функции библиотеки, […]

Архитектура ARM для Android-процессоров

У нас есть код, зависящий от ОС Android, и я хотел бы узнать, сколько устройств, используемых клиентами, ARMv6 / ARMv7, если есть еще ARM v5, сколько из ARMv6 имеет VFP, каков процент Tegra или Neon. Какие-нибудь советы, по которым можно найти такую ​​статистику? BR STeN

SIGILL в коде Android NDK

У меня есть приложение NDK на рынке и получил собственный отчет о SIGILL сигнала SIGILL . (Я использую breakpad для создания собственных отчетов о сбоях.) Вот подробности: Мое приложение составлено для armeabi-v7a с поддержкой NEON. Он разбился на процессоре NVIDIA Tegra 2, который является ARM-7 (Cortex-A9). Это происходит каждый раз. (Связался с пользователем) Адрес аварии […]

Безопасно ли поддерживать только armeabi-v7a для Android 4 и выше?

Я разработал приложение, которое в основном находится на C ++ и скомпилировано NDK в .so библиотеки, как обычно. Мы знаем, что собственные приложения должны быть построены для каждой архитектуры процессора отдельно; Поэтому у меня разные файлы для armeabi и armeabi-v7a . (Я умышленно отказался от x86 и mips , так как не многие устройства Android […]

Почему код gcc emmiting выровнен с границей 2 байта для набора команд ARM?

Я проверяю вывод ассемблера программы C, которую я компилирую для платформы Android ARM, используя GCC (версия, включенная в Android NDK). Я указываю набор команд ARM длиной 4 байта, а не THUMB, но удивительно, что код языка ассемблерных ассемблеров совмещает функции с 2-байтовой границей! Вот пример сгенерированного кода, показывающий неправильную директиву .align: .Ltext0: .global __aeabi_dmul .global […]

Как скомпилировать и связать код ржавчины с пакетом приложений для Android

Я пытаюсь добавить код Rust в образец андроида NDK (native-activity); Всякий раз, когда я связываю код Rust (скомпилированный как .a) в .so, он не запускается. Я продолжал информацию отсюда, чтобы получить компилятор ржавчины с поддержкой android и «автономный инструментарий» https://github.com/mozilla/rust/wiki/Doc-building-for-android Кто-то предлагал на канале IRS Rust, что я должен упомянуть «большой палец» где-то; Есть ли […]

Использование архитектуры Android?

У меня есть несколько родных библиотек, которые довольно большие и раздувают бинарный размер приложения. Я просмотрел разбиение APK, но поддержка и QAing несколько APK – это не то, что я хочу сделать. Поэтому я хотел бы исключить неиспользуемые архитектуры в моем выпуске сборки сборки, используя свойство ndk.abiFilters Gradle. (Отладочные сборки я хочу оставить в покое, […]

Android ARMv6 / v7 и VFP / NEON

Я хотел бы больше понять процессор, используемый на телефонах Android. Причина в том, что мы создаем библиотеку C, у которой есть определенные флаги архитектуры процессора / математического процессора, которые мы можем установить. До сих пор мы обнаружили, что все процессоры Android-устройств являются ARM-дизайном и представляют собой ARMv6 (более старые устройства, нижние концы, Huawei, ZTE, small […]

Какой компилятор использует Android NDK?

Я пишу код ARM NEON для Android-приложения, и я боролся с некоторыми флагами компилятора, которые не распознаются. Позже я понял, что поддержка этих флагов была добавлена ​​совсем недавно и моя версия GCC старше. Я делаю все это в Windows и ограничусь тем, что могут предложить Cygwin. Вот мой вопрос: прежде чем я пойду и попытаюсь […]

Возможно ли скомпилировать библиотеки LLVM для android / ARM

Я увлечен Pure алгебраическим / функциональным языком . В интерпретаторе Pure используется LLVM JIT-компилятор. Я хотел бы скомпилировать Pure, чтобы он работал на Android (ARM). Pure имеет зависимость от LLVM JIT. Поэтому мне нужно скомпилировать источник LLVM для запуска Pure. Возможно ли скомпилировать источник LLVM для устройств Android (ARM)? Там действительно нет информации об этом […]