2014-09-30 28 views
0

我使用ndk和Eclipse ADT来为Android构建应用程序,并且工作正常。不过,我想知道为什么构建过程涉及编译arm和拇指,即每次我在源文件中进行修改时,都会重新编译arm和thumb。有必要吗 ?如果不是,我怎么能告诉建设者只编译和链接armabi-V7a?这将除以2构建处理时间...为什么arm和thumb在Eclipse ADT中编译?

+0

目前,android库倾向于使用混合的ARM和THUMB指令 - 内部功能通常是THUMB,而外部链接钩子是ARM。 – 2014-09-30 18:28:39

回答

1

你可能是指,对于武装V6和武装V7A?两者都可以编译为ARM或THUMB。这由LOCAL_ARM_MODE在Android.mk控制。要禁用armeabi,在设置

APP_ABI=armeabi-v7a 

Application.mk。这不仅会缩短您的构建时间,还会缩短APK的大小。

+1

我找到了答案。我用JUCE框架,它会自动生成Android.mk用这样的测试文件中它: IFEQ($(TARGET_ARCH_ABI),armeabi-V7A) LOCAL_ARM_MODE:=手臂 ENDIF 有一个在JUCE它默认设置要求armeabi和armeabi-V7a库。我改变了这只是armeabi-V7a,并没有得到双重构建过程(手臂+拇指)了。 但你的答案帮助我看在正确的地方,因此+1 ... :) – DrMad 2014-10-01 07:51:11

+0

我不明白他们为什么不喜欢手臂v7a上的拇指代码,但即使您删除** ifeq **,你仍然有双重构建,如果你只瞄准现代设备,这是一个麻烦。 – 2014-10-01 08:48:36