Android NDK環境搭建與配置說明

https://blog.piasy.com/tags/#WebRTC



出現ndk-build:command not found可能的問題是

1.文件bash_profile設置不正確

2.編譯時輸入命令 “$NDK/ndk-build” 一定包括$直接引的目錄

整理NDK配置流程是:

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用戶的數量)

2、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/<你的盤符>/ ,"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整個開發過程。


設置系統的Path環境變量到G:\cygwin\bin

2、配置SDK

NDK得依賴SDK,所以必須得先配置SDK

1)將下載到的android-sdk_r10-windows.zip,解壓到磁盤的跟目錄下,比如:e:\android_sdk;

2)設置系統的Path環境變量到e:\android_sdk\platform-tools,如果不設置的話,運行ndk-build的時候會提示adb不在當前Path下。

3、配置NDK

1)將下載到的android-ndk-r5b-windows.zip文件解壓到一個文件夾里,最好路徑短點,我的放在E:\android\android-ndk-r5b下;

2)設置系統的Path環境變量到e:\android\android-ndk-r5b,輸入命令行的時候簡單一點。

三、測試配置環境

1)運行cmd

2)輸入bash,如果提示“'bash' 不是內部或外部命令,也不是可運行的程序或批處理文件。”請檢查cygwin的path路徑是否設置正確,運行后控制臺會變成下面的樣子:

如上配置過程來自http://blog.csdn.net/aminfo/article/details/7814304

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容