Android 为什么在EclipseADT中同时编译arm和thumb?

Android 为什么在EclipseADT中同时编译arm和thumb?,android,eclipse,android-ndk,arm,thumb,Android,Eclipse,Android Ndk,Arm,Thumb,我正在使用ndk和EclipseADT为Android构建应用程序,它运行良好。然而,我想知道为什么构建过程需要同时编译arm和thumb,即每次修改源文件时,它都会重新编译arm和thumb。有必要吗?如果不是,我如何告诉构建器只编译并链接armabi-V7a?这将除以2我的构建过程时间…你可能是说,对于ARMV6和ARMV7A?两者都可以编译为ARM或THUMB。这由Android.mk中的本地_ARM_模式控制。要禁用armeabi,请设置 APP_ABI=armeabi-v7a 在应用

我正在使用ndk和EclipseADT为Android构建应用程序,它运行良好。然而,我想知道为什么构建过程需要同时编译arm和thumb,即每次修改源文件时,它都会重新编译arm和thumb。有必要吗?如果不是,我如何告诉构建器只编译并链接armabi-V7a?这将除以2我的构建过程时间…

你可能是说,对于ARMV6和ARMV7A?两者都可以编译为ARM或THUMB。这由Android.mk中的本地_ARM_模式控制。要禁用armeabi,请设置

APP_ABI=armeabi-v7a

应用程序中.mk。这不仅可以减少构建时间,还可以减少APK的大小。

目前,android库倾向于混合使用ARM和THUMB指令-内部功能通常是THUMB,而外部链接挂钩是ARM。我找到了答案。我使用Juce framework,它会自动生成Android.mk文件,其中包含如下测试:ifeq($(TARGET\u ARCH\u ABI),armeabi-v7a)LOCAL\u ARM\u MODE:=ARM endif Juce中有一个默认设置,其中要求同时使用armeabi和armeabi-v7a库。我将其改为仅使用armeabi-V7a,不再使用双构建过程(arm+thumb)。但是你的回答帮助我找到了正确的位置,因此+1…:)我说不出他们为什么不喜欢ARMV7A上的thumb代码,但即使删除了ifeq,仍然有双重构建,如果只针对现代设备,这是一个麻烦。