2014-10-17 70 views
6

據NDK的官方下載頁面:http://goo.gl/vI7Oek 有兩個目標版本:Android本機 - 何時使用64位NDK?

  • 86目標
  • 64目標

,我想知道(如NDK的東西一個新手)這是否意味着在編譯裝有x64處理器的設備的應用程序時,我應該使用x64 NDK?

如果我只需要一個「.apk」文件,如何使它包含x86 & x64版本? (如果可能的話)

回答

19

更新:現在的問題有點過時了。從版本10cNDK is distributed in a single package for all target platforms again開始。答案已經更新以反映這一事實。


首先,應該把設備的架構,你的應用程序將運行區分(可以是ARM(多種),32位或64位,MIPS 32位或64位,而英特爾在x86/x64 )以及構建機的體系結構/操作系統(可以是運行在Intel x86/x64處理器上的Windows,Linux或Mac)。

所以假設你有Windows 64位。然後(因爲現在最新版本是10d),您應該下載android-ndk-r10d-windows-x86_64.exe。它將允許您爲NDK支持的所有目標平臺(32位和64位)構建。

如果您爲32位目標設備構建,則應用程序也將在64位設備上運行,因爲所有列出的64位體系結構均向後兼容其32位對應設備。

但是,如果您要使用64位目標架構的特定功能,則應該使用64位工具鏈。如果您只爲64位構建,則應用程序將無法在32位體系結構上運行。

如果您有支持多個目標(如ARM和英特爾的x86),在你的Application.mk您可以指定您希望您的本機代碼,爲構建目標(谷歌APP_ABI),所以你會建立多個版本本地庫,系統將在運行時加載相應的庫。同樣,您可以爲同一架構系列的32位和64位版本提供單獨的二進制文件,因此您可以對它們進行微調。

您可以進一步閱讀NDK包內的文檔,它們非常詳盡。

+0

非常感謝,所有我需要知道的 – 2014-10-17 12:41:45