背景介紹
這幾天學習了一下Android NDK開發,在學習的過程中參考了一些資料,但最後總結時卻發現沒有一份資料能夠起到按照步驟一步步來可以完成整個開發過程的,即,從開發環境的搭建到自己建立一個簡單的Android NDK項目,倒是Google官方的介紹文檔起到了重要的作用。基於此,我就把我在這個過程中遇到的情況寫出來。
在我看來,NDK只是一種技術,這種技術提供了在Android應用中使用C/C++進行開發的途徑,真正關鍵的是C/C++。
開發環境搭建
我是在Windows XP下搭建的NDK開發環境,整個開發環境的搭建有兩個重要的部分,第一個是Cygwin的安裝與配置,第二個是Android NDK的安裝。
需要記錄的是,在對Cygwin進行配置時,現在的版本只需要在/home/用戶名/.bash_profile文件的最後添加
NDKROOT=/cygdrive/你的NDK根目錄
export NDKROOT
即可,配置完成保存後,重新打開Cygwin,輸入$NDKROOT,當回顯所配置的路徑時,則說明配置成功。
而現在的ndk中,所提供的實例則放置在samples文件夾下。
導入所提供的實例
配置構造器
從頭建立Android NDK項目
首先,新建Android Project,在src下新建.java源文件,通過native關鍵字聲明本地方法,然後,通過命令行進入項目的bin文件夾下,輸入命令:
javah -classpath classes -d jni 包名.class文件名
注意沒有.class後綴,即可生成.h頭文件。-classpath指定查找class文件的一個臨時路徑,-d jni意爲把生成的.h頭文件放入新建的jni文件夾下。
得到.h頭文件後,新建.c文件,把.h頭文件中的函數拷入.c文件,實現這些函數。
函數實現完成後,新建Android.mk文件,這時要注意該文件內容的格式,格式不對時會出現錯誤,具體如下:
這時拷過來一個格式正確的Android.mk文件,在此文件的基礎上做修改即可。
隨後就是爲你的ndk項目新建一個構造器,然後就可以創建所建立的java類的對象調用通過C語言實現的方法了。
以上就是我在學習android ndk時的一些有必要做總結的情況。
還是那句話,真正關鍵的是C/C++。