Android使用Eclipse搭建NDK開發環境


這幾天一直在學習搭建Android NDK開發環境,網上的教程雖然一大堆,但是很多都是使用Cygwin來做的,以前下載過Cygwin,那個安裝速度真的是...怎一個蛋疼了得,后來查到可以不用安裝Cygwin就搭建NDK環境,直接安裝ADT+CDT,然后使用NDK包,這里我說一下我用到的各種工具:

1.Eclipse:eclipse-java-luna-R-win32

2.ADT:ADT-20.0.3.zip

3.CDT:這個不用單獨下載,在上面的ADT中就自帶了NDK插件

4.NDK:android-ndk-r8b

下面我詳細說一下我搭建NDK開發環境的過程,希望能給還沒有搭好開發環境的人一點幫助。

下載好Eclipse后直接打開,然后來到Help--->Install New Software...如下圖所示


在打開的對話框中,選擇Add--->Archive...,如下圖所示


然后在這里選擇我們之前下載好的ADT-20.0.3,選擇好了文件之后,如下圖所示:


然后OK,進入下面的圖,大家可以看到,ADT-20.0.3的包里面自帶了NDK,選擇select all,然后一直next下去,這里由於我已經安裝了,所以顯示All items are installed

一直next下去后會提示重啟eclipse,重啟完成后安裝ADT就告一段落。


在重啟Eclipse后,我們打開Window--->Preferences,如果出現下面的選項,那之前的安裝應該就沒問題了


下面我們開始新建Android工程:這里我新建的Android工程名為FirstNDKTest,如下圖所示:


新建好了Android工程后,我們在工程上右鍵--->Android Tools--->Add Native Support...,如下圖所示:


我們使用默認的名稱,直接finish,如下圖:


finish之后,我們會發現Android工程的目錄下,多了一個jni目錄,里面有兩個文件,如下圖所示:


這里的cpp文件,我們需要在里面實現Java中的native方法,從而讓Java調用,我們直接打開上面的FirstNDKTest.cpp文件,如下圖所示:


我們可以看到,上面的文件中只有一行代碼,即引入頭文件,這個地方報了一個錯誤:Unresolved inclusion: <jni.h>,這是因為我們沒有包含相應的文件的緣故,

接下來我們在Android工程上右鍵--->New--->Folder,在打開的對話框中選擇Advanced--->Link to alternate location(Linked Folder)--->Browse,然后選擇我們下載好的android-ndk-r8b中的platforms\android-14\arch-arm\usr\include子目錄,如下圖所示:


將上一步選擇的目錄加入到工程中來了之后,我們關閉之前打開的cpp文件,然后再次打開它,是不是沒有報錯了

接下來我們在Java代碼中使用native方法,這里為了簡單起見,我們就在屏幕上輸出一行文字,其中的文字由native方法提供,我們在Android工程的MainActivity方法中添加如下代碼:


上面的代碼不用多解釋了吧,就是從native方法中得到String對象,然后顯示在TextView中,要注意的一點是,我們在靜態代碼塊中使用了System.loadLibrary()方法,而不是System.load()方法,並且方法中的參數為FirstNDKTest,不需要加上前綴和后綴,這里的前綴和后綴,在下面我們Build Project的時候,大家就可以看到了。

接下來我們Build Project,方法是在Android工程上右鍵--->Build Project,如果前面沒有出現任何問題的話,我們會發現在Android工程中出現了兩個目錄,如下圖所示:


這里新生成了libs和obj目錄,且目錄中多了一些文件,其中就有libFirstNDKTest.so文件,這就是動態鏈接庫文件了,上面我們說的前綴和后綴,就是這里的lib和.so,我們在Java代碼中加載動態鏈接庫文件時,不能寫文件的全名libFirstNDKTest.so,而是去掉前綴和后綴剩下的FirstNDKTest,這里希望大家注意。

接下來我們要開始寫C++代碼了,我們打開FirstNDKTest.cpp文件,在里面添加代碼如下圖所示:


需要注意的地方已經在注釋中寫明了,到這里,我們就基本上算是完成了一個使用NDK開發的Android應用,接下來我們運行它,右鍵--->Run As--->Android Application

可以看到模擬器中的運行情況了:


終於出現了,高興吧~

以上就是我搭建NDK開發環境的詳細過程,其中也出現了很多問題,在網上都找到了相應的解決辦法,希望這篇博文能給大家帶來幫助,如需轉載,請注明出處:

http://blog.csdn.net/yubo_725/article/details/38614691



注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com