2013-08-14 1 views
0

Я использую в настоящее время -mfloat-abi=softfp -mfpu=vfpМожно ли скомпилировать Android-библиотеку для ARMV6 и опционально с VFP?

Я думаю, что вышеуказанная строка требует устройства ARMV6 с реальной поддержкой VFP.

Что делать, если я использую -mfloat-abi=soft? Будет ли это работать на устройствах ARMV6 без реальной поддержки VFP, но быть быстрее, чем даже не указывать mfloat-abi?

(я не хочу, чтобы создать толстую бинарный с 2 ​​.so файлов)

+0

Что такое vfp? это другая архитектура? –

+0

Как вы знаете, некоторые устройства имеют чип, который вычисляет вычисления с плавающей запятой, и это ускоряет процессы на основе математики, такие как кодирование/декодирование. Если это отсутствует на устройствах ARMv6, мое приложение не будет работать плавно, потому что вычисления программного обеспечения с большими плавающими точками будут использовать больше процессора и замедлить работу приложения. Я пытался выяснить, есть ли способ имитировать VFP на стороне программного обеспечения, но, насколько я вижу, он не существует и, вероятно, не имеет смысла. – frankish

+0

я вижу. спасибо, что научил меня об этом. что означает VFP? последние слова, вероятно, с плавающей точкой, но что такое V? –

ответ

0

ССАГПЗА Информации о странице говорит:

Указание soft вызывает НКУ для создания вывода, содержащей библиотеке вызовов для плавающего - точечные операции. softfp позволяет генерировать код с использованием аппаратных команд с плавающей запятой, но по-прежнему использует соглашения о вызове soft-float. hard позволяет создавать инструкции с плавающей запятой и использовать специальные соглашения о назначении FBU .

Таким образом, используя soft, вы не хотите, чтобы цели были с FPU.

Большинство устройств, работающих в настоящее время, имеют ARMv7-A или лучший процессор, поэтому, если вы не ориентируетесь на конкретное устройство, я не уверен, сколько стоит в построении двух общих библиотек.

Обновление: На самом деле существует множество устройств, поставляемых с более старыми процессорами. Все материалы высокого класса - ARMv7-A, но в устройствах младшего класса есть большой объем.

ARMv6 + VFP не является конфигурацией, поддерживаемой Play Store - целью было сохранить как можно меньше набор конфигураций. Вам нужно будет использовать жирный бинарный файл (или, как вам кажется, вы это делаете), тщательно настройте свою сборку и перечислите определенные устройства в Play Маркете.

+0

Имея Galaxy S3, просто для поддержки Android 2.2+ я купил новый Samsung Galaxy Ace для тестирования. Он имеет ARMV6 (и VFP). Поскольку я не знаю список устройств ARMV6 без VFP, я не могу принять решение. Тем временем я пытаюсь отфильтровать ARMV6 без VFP-устройств из Android Play Store. – frankish

+0

Я принял этот ответ, так как он действительно отвечает на главный вопрос: смогите ли мы имитировать VFP на программном обеспечении и сделать его быстрее, чем среда, отличная от VFP? Ответ - нет – frankish