2014-09-30 35 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