Android NDK – 它支持直接的ARM代码还是仅支持Thumb

我被要求评估我们的产品的Android平台,我正在寻找各种select,我只是刚刚抓到表面,困扰着我的一件事是,我不能看到如何将代码编译为直接的ARM代码(没有拇指),我知道拇指运行速度较慢,我们将需要在我们的代码的关键部分的性能。

认为它应该只是在Android.mk文件的LOCAL_CFLAGS设置-march标志,但我不能得到这个工作…

谁能帮忙?

Solutions Collecting From Web of "Android NDK – 它支持直接的ARM代码还是仅支持Thumb"

Android.mk为模块指定以下标志将编译直接的ARM代码。

 LOCAL_ARM_MODE := arm 

启用优化也可能有助于:

 LOCAL_CFLAGS := -O3 

你可以用ARM,Thumb或者两者的组合来构build。

在makefile中的LOCAL_SRC_FILES ,列出MyFile.c ,指定MyFile.c.arm (不要重命名磁盘上的文件,只需在源文件列表中执行)。 在整个Android中,这个约定用于对性能至关重要的代码(或者由于某种原因只需要是ARM)。

通常的注意事项当然适用:Thumb代码往往需要更多的指令才能完成,但是每个指令只有一半的大小,所以代码通常会慢一点,但也要小一点。 在某些情况下,较小的尺寸可以更好地适应ARM CPU中的(微小)caching,实际上可以更快。