Android NDK 配置:
網上有很多教程,但大部分是舊版本的內容,最新版本的已經改變,為了讓大家少走彎路,在這里針對r9的配置進行記錄分享。
要玩NDK,你或多或少要用到以下一些東西,所以先做一下准備
- 有關Eclipse下的Android與NDK配置,請網上搜,不再描述,不用Eclipse的同學請忽略。簡單提示一下:網上凡是用Help>Install New Software的方法基本正確;
- 有關NDK的下載,當然是google官方的,搜索Android NDK即可,我都懶得貼出地址了;
- 如果在Windows下,會用到Cygwin,模擬Linux/Unix/Mac命令行,不管你愛不愛,必須下載安裝,地址我也懶得貼出了。方法也是網上搜即可,簡單提示下:Cygwin的setup-x86xxx.exe 其實是個包管理器,想要安裝或卸載組件隨時打開它,記得安裝Devel組件,很重要。Cygwin的安裝也很費時間,主要是下載需組件要時間,其home目錄在Cygwin安裝目錄下,各盤符號表示為cygdrive/<小寫盤符>形式,如E盤: cygdrive/e 沒用過unix命令? 你要學一下,可能會花上一到兩個小時時間。
上面步驟准備好了嗎?Android NDK r9的配置就是不用配置,呵呵。好吧,我再說詳細一點,其實網上說的一些設置啊,make啊,都已經不需要,直接把下載回來的包解壓即可。存放目錄不要有空格,這點很重要,讓你省去很多麻煩,信我。
在r4版本之前,要求你進行
- build/host-setup.sh
現在已經沒有了,即使你要找也找不到這個腳本;
在Cygwin里記得設置好ndk目錄變量,例如輸入cd $NDK就直達NDK目錄,很方便,信我,你會在之后經常用到它。
NDK怎么使用?
先要在Android項目下新建jni目錄,把c或c++腳本寫成組件,例如mymodule.c,同時寫一個Android.mk來描述它,mymodule.c和Android.mk其實都是文本文件,用你喜歡的編輯器編輯它們,但具體怎么弄,看別人寫的:《關於Android NDK中調用第三方的動態庫》
http://android100.cnblogs.com/p/android-sdk-config.html
或者網上找找,學會寫這兩個文件和寫Java接口就可以了。
編譯C組件
完成上一步后,才可到達這里,相信你在網上其它地方看到很多教程方法並且實踐了,來到里是很不容易的,但如果沒有,你看到這里是沒有意義的。
編譯C組件的方法其實也很簡單,如果只是入門,只要把c文件和mk文件放在Eclipse項目下的jni即可,不要放到別的地方,至少目前不要。方法是:
通過Cygwin進入項目目錄,就是那個AndroidManifest.xml所在的項目根目錄。在Cygwin上一個一個輸入目錄名很費時,教你一個快捷方法,把目錄拖到Cygwin中就可以得到正確的字符串,cd進去就可。記住,一定要進入項目根目錄,然后,執行ndk目錄下的ndk-build,因為上面設置了目錄別名,所以我只要這樣即可:
- $NDK/ndk-build
接着就會出現類似
Compile xxxxxx
的信息,沒錯誤的話,項目根目錄下會生成libs/libxxxx.so文件。
非ARM架構CPU的編譯
運行項目用的如果是Genymotion或者非ARM架構CPU的模擬器,會報錯,不怕,只要編譯時加上APP_ABI=x86 即可:
- $NDK/ndk-build APP_ABI=x86
結語
至此,ndk的使用就是如此簡單,關鍵還是$NDK/ndk-build 腳本。過程可能會出現一些錯誤,多做一些功課和給些耐心是都可以解決的。