android - v7a - procesador arm en celulares
Android NDK: ¿admite código ARM directo o simplemente Thumb? (2)
Especificando el siguiente indicador para un módulo en Android.mk
compilará código ARM directo.
LOCAL_ARM_MODE := arm
Permitir la optimización también puede ayudar:
LOCAL_CFLAGS := -O3
Se me ha pedido que evalúe la plataforma Android para nuestro producto y estoy buscando varias opciones, solo estoy arañando la superficie y lo único que me molesta es que no puedo ver cómo compilar el código como código ARM directo. (no Thumb), sé que Thumb funciona más despacio y necesitaremos el rendimiento en secciones clave de nuestro código.
Creo que solo debería establecer el indicador de LOCAL_CFLAGS
en LOCAL_CFLAGS
del archivo Android.mk
, pero no puedo hacer que funcione ...
¿Alguien puede ayudar?
Puedes construir ARM, Thumb o una combinación de los dos.
En el archivo MAKE, en LOCAL_SRC_FILES
, donde incluiría MyFile.c
, especifique MyFile.c.arm
(no cambie el nombre del archivo en el disco, simplemente hágalo en la lista de archivos de origen). Esta convención se usa en todo Android para código que es crítico para el rendimiento (o simplemente necesita ser ARM por alguna razón).
Las notas habituales se aplican, por supuesto: el código de pulgar tiende a requerir más instrucciones para lograr algo, pero cada instrucción es de la mitad del tamaño, por lo que el código suele ser un poco más lento pero también un poco más pequeño. En algunas situaciones, el tamaño más pequeño permite un mejor ajuste con los cachés (pequeños) en las CPU ARM, y en realidad podría ser más rápido.