讀古今文學網 > Android程序設計:第2版 > 第19章 Android本地開發工具箱 >

第19章 Android本地開發工具箱

Java本地接口(Java Native Interface,JNI)是Java標準的一部分,它支持開發人員使用其他語言(如C和C++)編寫本地方法,並從Java代碼中調用這些方法。當你想要使用平台特定的功能或使用平台中的硬件資源,比如利用FPU指令集的擴展優勢實現更快的數值計算,或者使圖形計算密集型的代碼充分利用OpenGL API時,該接口顯得尤其有用。本章介紹的是JNI的基礎,介紹使用Android NDK所必需的基礎知識。關於JNI的更多信息,可查看Java本地接口規範(Java Native Interface Specification)(http://download.oracle.com/javase/1.5.0/docs/guide/jni)。

為了使Java編程人員開發起來更簡單,JNI使得本地方法使用Java對象就和Java代碼使用這些對像一樣。在本地方法中,可以創建和使用Java對象。支持訪問和使用Java對像這一特性,使得本地方法可以通過Java應用傳遞的對象的引用來使用其他Java對象。

當你希望使用平台特定的功能或者充分利用平台硬件(且不能通過Android API來訪問)時,JNI就特別有用,比如利用FPU指令實現更快速的數值計算。圖形計算密集的代碼會廣泛使用OpenGL API,這是使用JNI的另一種方式。

本章將涵蓋使用Android本地開發工具箱(NDK)的編程人員會涉及的一些JNI基礎知識。NDK使得編譯Android程序可用的代碼變得更加簡單。

當你在考慮是否需要使用本地代碼來開發時,先斟酌一下你的需求,看看Android SDK提供的功能是否已經滿足了你的需求。使用JNI會使程序調試變得更費勁,並且和NDK支持的CPU類型關聯,目前只有兩種:ARM和x86。