Cygwin+Eclipse+Android NDK ---Windows

        近幾天看JNI的問題,都說要怎麼編譯,要輸入不少命令行的東西。我以爲既然有IDE應用開發環境,就會有相應的JNI開發,很方便的沒必要輸入什麼命令行的。 html

      SDK應用經常使用的編譯環境是Eclipse,而後就想像SDK同樣開發NDK程序。下面是我從網上搜來的一些步驟: android

      1.環境問題:Windows下用Eclipse編程,編譯含Jni代碼的程序,須要Cygwin和Android NDK開發包。 編程

       安裝過程,查看如下連接:[1-6步驟] bash

        http://www.cnblogs.com/skyseraph/archive/2012/03/16/2400567.html
函數

           這樣,就完成了Cygwin和NDK的環境安裝,並檢測了可用性。 ui

      2.而後,我想在Eclipse上編譯,而不是在Cygwin下輸入命令編譯。 spa

        下面的一個文檔是我從網上下到的,後來找不到出處了,好像不少地方都有這個文檔,我也懶得去找出處了,我把用到的部分帖在這裏。
.net

        這是一個編譯NDK中的一個Sample的過程,根據本身的操做稍微作了修改: 命令行

一、  Eclipse下調試samples 調試

選擇new—>project-->androidproject from existing Code 接下來以下圖所示-> Next


接下來選擇Source Code的位置(此處的解釋是能夠選擇拷貝samples目錄下hello-jni到本身的workspace,也可不選擇,直接在NDK下的samples裏建立工程

而後,finish,完成了建立。

二、  工程編譯

工程編譯以前須要作一些設置,第一步設定一個新的Builder,用於編譯Jni代碼:

projec->properties->builders選項卡:選擇New,彈出框中,選擇Program


選擇program,配置以下圖:


Name欄填入自定義的名稱;

Main選項卡中,Location設置到{cygwin-root}\bin\bash.exe

                個人是:D:\ProgramFiles\cygwin\bin\bash.exe

    Working Directory設置到當前工程目錄:D:\Android_WorkSpace\HelloJni

Arguments設置,這個是對Cygwin的命令行:

--login -c "cd /cygdrive/d/Android_WorkSpace/HelloJni && $NDK/ndk-build"

注意選擇你本身的真實目錄,別抄個人,否則你死定了。

綠色是工程路徑,紅色是Cygwin設置的NDK路徑。點擊 Apply

接着配置Refresh選項


再配置Build Options選項


特別要注意選擇specify resources,由於要編譯C++,因此必須選擇jni目錄的C++ code ,以下圖所示


 finish->Apply->ok->ok

當以上步驟都正確配置無誤,保存配置後應該就會自動編譯jni目錄下的C相關代碼並輸出相應的.so庫文件到工程的libs目錄下,libs目錄會自動建立。(apk也自動在bin目錄裏生成,可直接拷貝到手機上安裝運行)

這樣,就能夠和運行SDK程序同樣,運行包含Jni代碼的Android程序了。

Run->Run As -> Android Application.



上面這個例子是編譯的NDK自帶的一個Sample工程 Hello Jni。脫離這個Sample編譯個徹底是本身的工程也和這個同樣。

個人作法是,建立一個TestJni工程,把Hello Jni的Java代碼和Jni文件夾拷貝到本身的目錄下,而後按照上面的設置進行。開始的時候有問題,運行說是找不到庫,最後發現是我本身犯了個低級的錯誤,由於新建的工程和Sample引出的工程的包路徑不一樣,因此,在C文件中函數名的定義就會有相應的改變(Java_包名段1_包名段2_..._包名段n_類名_方法名),這樣就是簡單Jni程序的開發過程了。

最後給出一個站內的連接:

http://my.oschina.net/u/131573/blog/23728

相關文章
相關標籤/搜索