android ndk8 編譯環境搭建及hellojni測試

來源:互聯網
上載者:User

參考文檔:

http://www.cnblogs.com/hibraincol/archive/2011/05/30/2063847.html

http://blog.csdn.net/cboy017/article/details/8455629

為何要用到NDK?

我們正常的android應用開發是用不到NDK的開發的,SDK開發就夠了,正常開發環境也就eclipse+sdk+adt就OK了。

但是,如果遇到一些移植的C/C++功能模組的時候,NDK的開發就顯得尤為便捷。

概括來說主要分為以下幾種情況:

1. 代碼的保護,由於apk的java層代碼很容易被反編譯,而C/C++庫反匯難度較大。

2. 在NDK中調用第三方C/C++庫,因為大部分的開源庫都是用C/C++代碼編寫的。

3. 便於移植,用C/C++寫得庫可以方便在其他的嵌入式平台上再次使用。

到首頁下載NDK

http://developer.android.com/tools/sdk/ndk/index.html

我們從安裝說明中也可以看到需要安裝cywin1.7以上的是為了c/c++代碼的交叉編譯

http://www.cygwin.com/

下載NDK後,在eclipse->preferences->android->ndk中選擇正確的路徑

安裝cywin

編譯NDK,在預設設定下,只需選擇Devel(點擊列表中Devel,將後面的Default改為Install,圖中箭頭所示)其它均為預設狀態。

(其實NDK需要的不多,主要autoconf2.1、automake1.10、binutils、gcc-core、gcc- , g++、gcc4-core、

gcc4-g++、gdb、pcre、pcre-devel、gawk、make )

下載完成時間決定於你選擇的安裝包數量及網路連接速度。

配置cygwin

在命令列中進入cygwin目錄,並執行cygwin.bat,如果你不是用Administrator帳號登入的系統,那麼會在cygwin 安裝目錄 \home\

檔案夾中產生一個以你的登入名稱命名的新的檔案夾。

修改新組建檔案夾中的“.bash_profile ”檔案,用UE或editplus等文字編輯器開啟,

在最後增加: (d/android-ndk-r8是安裝ndk的路徑)

NDK_ROOT=/cygdrive/d/eclipse/android-ndk-r8e

export NDK_ROOT

然後儲存關閉。

好的到目前為止ndk的編譯環境是安裝搭建完畢了。


我們現在來匯入ndk sample中的jni工程

cygwin還沒有派上用場,現在就利用它來編譯c++,在項目上點擊 右鍵,在工程的屬性 builders中new 一個編譯規則:

按照下面的設定

Location:D:\cygwin\bin\bash.exe

Working Directory:D:\cygwin\bin

Arguments:--login -c "cd  /cygdrive/d/eclipse/android-ndk-r8e/samples/hello-jni&&$NDK_ROOT/ndk-build"

然後在Build Options進行設定

最後然後將NDK_Builder移到最上面

最後編譯工程,編譯成功後顯示成功產生了*.so庫檔案,運行OK

可能有同學隊這個JNI工程有疑問,按個JNI中的標頭檔是如何而來的,或者我重建立一個NDK工程師如何開始的,請見該部落格:

http://www.cnblogs.com/hibraincol/archive/2011/05/30/2063847.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.