Pregunta

Se me ha pedido para evaluar la plataforma Android para nuestro producto y lo estoy estudiando varias opciones, estoy hecho más que arañar la superficie en este momento y la única cosa que me está molestando es que no puedo ver cómo compilar código como código brazo recto (sin el pulgar), sé que corre más lento pulgar y necesitaremos el rendimiento en las secciones clave de nuestro código.

pensar sólo se debe establecer el indicador -march en el LOCAL_CFLAGS del archivo Android.mk, pero no puedo conseguir que funcione ...

¿Alguien puede ayudar?

¿Fue útil?

Solución

Especificación de la siguiente bandera para un módulo en Android.mk compilará el código brazo recto.

LOCAL_ARM_MODE := arm

Activación de optimización puede también ayuda:

LOCAL_CFLAGS := -O3

Otros consejos

Se puede construir en ARM, Pulgar, o una mezcla de los dos.

En el makefile, en LOCAL_SRC_FILES, donde enumeraría MyFile.c, especifique MyFile.c.arm (no cambie el nombre del archivo en el disco, sólo lo hacen en la lista de archivos de origen). Esta convención se utiliza a través de Android para el código que es el rendimiento crítico (o sólo tiene que ser ARM por alguna razón).

Se aplican las notas habituales, por supuesto: Código Pulgar tiende a requerir más instrucciones para lograr algo, pero cada instrucción es la mitad del tamaño, por lo que el código es por lo general un poco más lento, pero también una feria poco más pequeño. En algunas situaciones el tamaño más pequeño permite un mejor ajuste con los (pequeños) cachés de la CPU ARM, y en realidad podría ser más rápido.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top