android ndk開發之環境搭建
一:Cygwin的下載與安裝:
cygwin是一個在windows平台上運行的unix模擬環境,它對於學習unix/linux操作環境,或者從unix到windows的應用程序移植,或者進行某些特殊的開發工作,尤其是使用gnu工具集在windows上進行嵌入式係統開發,非常有用。簡單來說,我們直接用他來編譯我們的c/c++代碼,而不必放到Linux虛擬機或者Linux係統上去編譯我們的代碼,方便大家在windows上能直接開發並生成我們需要的.so庫文件。由於篇幅有限,Cygwin的安裝與下載大家可以參考網上的許多帖子。(建議不熟悉Cygwin的童鞋在下載的時候可以把所有的組件勾上,以免發生缺少依賴的軟件包情況而產生不愉快)
二:配置NDK環境變量
1、首先找到cygwin的安裝目錄,找到一個home\<你的用戶名>\.bash_profile文件,我的是:D:\Android\cygwin\home\bear\.bash_profile。(注意:若home文件夾下麵神馬都沒有或者沒有你用戶名的文件夾,解決 的辦法:首先打開環境變量,把裏麵的用戶變量中的HOME變量刪掉,在D:\Android\cygwin\home文件夾下建立名為你用戶名的文件夾,然後把D:\Android\cygwin\etc\skel\.bash_profile拷貝到該文件夾下;我這邊是第一次bash --login -i時他會自動創建用戶名文件夾)。2、打開bash_profile文件,添加NDK=/cygdrive/<你的盤符>/<android ndk 目錄> 如:
NDK=/cygdrive/d/Android/android-ndk-r8e
export NDK
3、打開cygwin,輸入cd $NDK,如果輸出上麵配置的/cygdrive/d/Android/android-ndk-r8e信息,則表明環境變量設置成功了。
1、現在我們用安裝好的NDK來編譯一個簡單的程序吧,我們選擇ndk自帶的例子hello-jni,我的位於D:\Android\android-ndk-r8e\samples\hello-jni(根據你具體的安裝位置而定)
2、運行cygwin,輸入命令cd /cygdrive/d/Android/android-ndk-r8e/samples/hello-jni,進入到hello-jni目錄。3、輸入$NDK/ndk-build,執行成功後,它會自動生成一個libs目錄,把編譯生成的.so文件放在裏麵。($NDK是調用我們之前配置好的環境變量,ndk-build是調用ndk的編譯程序)
4、此時去hello-jni的libs目錄下看有沒有生成的.so文件,如果有,你的ndk就運行正常啦!
5、把.so文件拷貝到項目中,並完成JNI調用。
1、 裝Eclipse的C/C++環境插件:CDT,這裏選擇在線安裝。
首先登錄https://www.eclipse.org/cdt/downloads.php,找到對應你Eclipse版本的CDT插件的在線安裝地址。
2、 然後點Help菜單,找到Install New Software菜單
3、 點擊Add按鈕,把取的地址填進去,出來插件列表後,選Select All,然後選擇下一步即可完成安裝
4、 安裝完成後,在eclispe中右擊新建一個項目,如果出現了c/c++項目,則表明你的CDT插件安裝成功啦
5、 或者可以直接在安裝ADT的時候勾選Android Native Development Tools,裏麵集成了c/c++的開發環境
1、打開eclipse,導入ndk自帶的hello-jni例子,右鍵單擊項目名稱,點擊Properties,彈出配置界麵,之後再點擊Builders,彈出項目的編譯工具列表,之後點擊New,新添加一個編譯器,點擊後出現添加界麵,選擇Program,點擊OK。
2、出現了添加界麵:
(1)首先給編譯配置起個名字,如:NDK_Builder
(2)設置Location為<你cygwin安裝路徑>\bin\bash.exe程序,例如:D:\Android\cygwin\bin\bash.exe,
(3)設置Working Directory為<你cygwin安裝路徑>\bin目錄,例如:D:\Android\cygwin\bin
(4)設置Arguments為:--login -c "cd /cygdrive/c/Users/Administrator/Desktop/AndroidProjects/hello-jni && $NDK/ndk-build"。
上麵的配置中的/cygdrive/c/Users/Administrator/Desktop/AndroidProjects/hello-jni是你當前要編譯的程序的目錄,$NDK是之前配置的ndk的環境變量,這兩個根據你具體的安裝目錄進行配置,其他的不用變,Arguments這串參數實際是給bash.exe命令行程序傳參數,進入要編譯的程序目錄,然後運行ndk-build編譯程序,其實就跟手動編譯的操作差不多,不過我們把它交給配置好的編譯器去做!。
3、 接著切換到Refresh選項卡,勾選以下項:
Refresh resources upon completion.
The entire workspace
Recursively include sub-folders
Allocate Console
After a Clean
During manual builds
During auto builds
During a Clean
6、 最後點擊Finish,點擊OK一路把剛才的配置都保存下來
(注意:如果你配置的編譯器在其它編譯器下邊,記得一定要點Up按鈕,把它排到第一位,否則C代碼的編譯晚於Java代碼的編譯,會造成你的C代碼要編譯兩次才能看到最新的修改)
最後更新:2017-04-03 05:40:02