Android NDK環境搭建與配置說明

來源:互聯網
上載者:User

NDK概述        NDK全稱:Native Development Kit。

  1、NDK是一系列工具的集合。

  * NDK提供了一系列的工具,協助開發人員快速開發C(或C++)的動態庫,並能自動將so和java應用一起打包成apk。這些工具對開發人員的協助是巨大的。

  * NDK整合了交叉編譯器,並提供了相應的mk檔案隔離CPU、平台、ABI等差異,開發人員只需要簡單修改mk檔案(指出“哪些檔案需要編譯”、“編譯特性要求”等),就可以建立出so。  

  * NDK可以自動地將so和Java應用一起打包,極大地減輕了開發人員的打包工作。

  2、NDK提供了一份穩定、功能有限的API標頭檔聲明。

  Google明確聲明該API是穩定的,在後續所有版本中都穩定支援當前發布的API。從該版本的NDK中看出,這些API支援的功能非常有限,包含有:C標準庫(libc)、標準數學庫(libm)、壓縮庫(libz)、Log庫(liblog)。   NDK帶來什麼     1、NDK的發布,使“Java+C”的開發方式終於轉正,成為官方支援的開發方式。

  使用NDK,我們可以將要求高效能的應用邏輯使用C開發,從而提高應用程式的執行效率。使用NDK,我們可以將需要保密的應用邏輯使用C開發。畢竟,Java包都是可以反編譯的。NDK促使專業so組件商的出現。(樂觀猜想,要視乎Android使用者的數量)  

  3、NDK將是Android平台支援C開發的開端。

  NDK提供了的開發工具集合,使開發人員可以便捷地開發、發布C組件。同時,Google承諾在NDK後續版本中提高“可調式”能力,即提供遠端gdb工具,使我們可以便捷地調試C源碼。在支援Android平台C開發,我們能感覺到Google花費了很大精力,我們有理由憧憬“C組件支援”只是Google Android平台上C開發的開端。畢竟,C程式員仍然是碼農陣營中的絕對主力,將這部分人排除在Android應用開發之外,顯然是不利於Android平台繁榮昌盛的。      

   NDK環境搭建說明   以下操作基於:Windows7 + Android-ndk-r8b-windows + Cygwin DLL is 1.7.16-1   第一步:下載NDK安裝包 :http://developer.android.com/tools/sdk/ndk/index.html  

選擇Android-ndk-r8b-windows.zip下載

  下載完後,開啟壓縮包並解壓到指定目錄,例如:D:\

      第二步:下載並安裝Cygwin   目前的版本是:Cygwin 1.7.16,:http://www.cygwin.com/   下載線上安裝程式setup.exe(688KB),下載後運行,介面如下:  

(圖1:安裝初始介面)      

(圖2:選擇安裝的方式,預設用線上網路安裝,也就是第一項;第二項是只下載不安裝;第三項是從本地安裝;)    

  

(圖3:選擇安裝目錄,以及可使用的使用者群,安裝目錄此處選擇D:\Cygwin)      

(圖4-1:安裝包存放路徑,預設是C:\Windows\system32目錄,此處改為D:\Cygwin\system32)  

(圖4-2:安裝包存放路徑,此處改為D:\Cygwin\system32)      

(圖5:網路連接方式)      

     

(圖6:選擇下載鏡像網站)

(圖7:在下載時彈出一個提示,點“確定”即可)      

(圖8-1:下載後會提示你選擇需要安裝的安裝包)

 

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

 

(圖9:等待下載安裝)    

 

(圖10:安裝完成)  

友情提醒:安裝完成後,最好把下載的包目錄做個備份,本文包存放路徑是D:\Cygwin\system32,下次安裝同樣的環境可以直接使用離線安裝方式(參考圖2)。       第三步:驗證Cygwin環境   安裝完成後,運行一次Cygwin安裝目錄下的Cygwin.bat,

分別輸入:   make -v   和,   gcc -v   如果檢測成功,會有make和gcc相關版本資訊列印出來,如。

 

第四步:配置NDK路徑設定   可以在cygwin中通過vim修改,也可以在Cygwin安裝目錄中修改 home\<你的使用者名稱>\.bash_profile 檔案中最後添加環境變數   NDK=/cygdrive/d/Android-ndk-r8b  

export NDK   其中NDK=/cygdrive/<你的盤符>/<Android ndk 目錄> ,"NDK"這個名字隨便起,以後經常用不要太長。

重啟cygwin,輸入:   cd $NDK   可進入ndk對應目錄說明設定OK。      

第五步:編譯示範工程   現在就可以編譯相關NDK工程了(一些用c/c++寫的程式),編譯方法如下:  

1、在cygwin命令列下,進入Android項目工作目錄:   cd $NDK  

2、依次進入samples\hello-jni目錄,(完整路徑樣本: D:\Android-ndk-r8b\samples\hello-jni)  

3、運行   $NDK/ndk-build  

注意:該命令$NDK和/ndk-build是串連到一起的,中間沒有空格,實際使用時是打入完整的$NDK/ndk-build,不要只打ndk-build。  

4、正常編譯完成後會在你的項目libs/armeabi目錄下產生對應的 .so檔案。

第六步:匯入靜態目標庫到Android項目   編譯完成後會得到*.so靜態目標庫後,就可以匯入工程環境Eclipse Android項目中使用,注意,NDK編程並非一定要把這個目標庫匯入Android項目使用,除了本步驟描述的使用方法之外,還有Android源碼直接修改、編譯,然後燒錄到測試機的開發方式,那樣可以實現應用程式預設安裝、許可權開機提升等等更“徹底”的功能。

綜合一下:  

本步驟示範屬於NDK目標庫+Andriod APK樣式,此外還有Android源碼直接開發、直接編譯方式(確切一點已經淡化Android所謂的工程概念了,當然源碼開發目前似乎還無法直接在Windows下進行,好像必須使用Linux家族系統進行,天緣稍後文章會有所涉及)   使用方法如下(樣本):  

1、在Eclipse中建立一個工程HelloJni,HelloJni.java中的代碼可參考NDK對應 sample下的示範代碼(Android-ndk-r8b\samples\hello-jni\tests\src\com\example \HelloJniTest)調用方法。  

2、將NDK編譯項目目錄下的jni和libs檔案夾拷貝到建立工程目錄下   注意這兩個檔案夾要和工程中的src和res檔案在同一目錄下。然後進入Eclipse中重新整理工程(會看到多出兩個檔案夾)。  

3、運行Eclipse項目,就可以在虛擬機器上看到hello-jni.c函數中輸出字串。   4、後續您可以試著修改庫來源程式或項目JAVA程式來熟悉NDK整個開發過程。

 

 原文:http://www.linuxidc.com/Linux/2012-07/66949p2.htm

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.