2010-03-04 3 views
9

On m'a demandé d'évaluer la plate-forme Android pour notre produit et je regarde diverses options, je suis juste juste de gratter la surface tout à l'heure et la seule chose qui est me dérange est que je ne peux pas voir comment compiler le code comme code ARM droit (pas de pouce), je sais que le pouce tourne plus lentement et nous aurons besoin de la performance dans les sections clés de notre code.Android NDK - prend-il en charge le code ARM ou juste Thumb

Je pense que il devrait simplement être positionner le drapeau -march dans le LOCAL_CFLAGS du fichier Android.mk, mais je ne peux pas que pour travailler ...

Quelqu'un peut-il aider?

Répondre

16

La spécification de l'indicateur suivant pour un module dans Android.mk compilera le code ARM droit.

LOCAL_ARM_MODE := arm 

optimisation L'activation peut aussi aider à:

LOCAL_CFLAGS := -O3 
16

Vous pouvez construire dans ARM, Thumb, ou un mélange des deux.

Dans le fichier makefile, dans LOCAL_SRC_FILES, où vous répertoriez MyFile.c, spécifiez MyFile.c.arm (ne renommez pas le fichier sur le disque, faites-le dans la liste des fichiers source). Cette convention est utilisée dans tout Android pour le code qui est critique pour la performance (ou doit juste être ARM pour une raison quelconque). Les notes habituelles s'appliquent, bien sûr: Le code du pouce a tendance à exiger plus d'instructions pour accomplir quelque chose, mais chaque instruction est la moitié de la taille, donc le code est généralement un peu plus lent mais aussi un peu plus petit. Dans certaines situations, la taille plus petite permet un meilleur ajustement avec les caches (minuscules) dans les processeurs ARM, et pourrait même être plus rapide.