1. 程式人生 > >Android ndk 開發環境配置與除錯(linux)

Android ndk 開發環境配置與除錯(linux)

開發環境配置

一、 Android NDK:

集成了android交叉編譯器,針對不同版本android平臺提供了相應的gcc、g++、ndk-build、ndk-gdb等一系列編譯和除錯工具。

安裝ndk:

安裝包選擇:

選擇安裝包需要注意幾點:

1、  Android手機是32位還是64位,預設是32位,r9以前的只有32位,r10之後出現了64位的,需要注意,比如64位,則應該含有ndk64

2、  從r6開始各版本分為a,b,c,d系列,例如r9版本分為r9,r9b,r9c,r9d,一般選擇r9或r10,r9d或r10d驗證都存在一些問題

3、  編譯主機系統是什麼系統,32位還是64位的,比如是ubuntu 64位機,則應該是linux-x86_64

比如,下載以64位linux系統作為主機的,32位android 平臺的r10版本的ndk,下載地址為:http://dl.google.com/android/ndk/android-ndk32-r10-linux-x86_64.tar.bz2

安裝步驟(這裡選ndk 32位android系統,主機系統為32位linux系統,r9版本):

第一步:解壓:tar  jxvf android-ndk-r9-linux-x86.tar.bz2

第二步: 解壓完成後進入ndk路徑/build/tool/,開始配置環境,使用命令:

sudo  ./make-standalone-toolchain.sh --platform=android-18

 --ndk-dir=/home/ndk/ --install-dir=/opt/android-18-toolchain/  --toolchain=arm-linux-androideabi-4.6

說明:

android-18:使用的android APILEVELplatform資料夾下可以看到,這裡使用的是18

下表是android API 級別與android 版本的對應關係

API level

19

18

17

16

15

14

13

12

11

10

9

8

Android 版本

4.4

4.3

4.2

4.1

4.03

4.04

4.0.0~4.02

3.2

3.1.x

3.0.x

2.3.32.3.4

2.3.0~2.3.2

2.2.x

後面分別為ndk解壓後的目錄,和安裝的目標目錄。

第三步:配置路徑,為了方便使用ndk的工具,可以將ndk的路徑加入環境變數。終端輸入:

exportPATH=$PATH:/home/ndk,這樣我們可以在任意地方直接使用ndk-build,ndk-gdb命令了。

exportPATH=$PATH:/opt/android-18-toolchain/bin ,主要是交叉編譯器工具集。

這樣就配置完成了。

二、 Android SDK:

提供了android sdk開發包直接將sdl庫或執行檔案與java程式碼一起編譯成apk,但過程較繁瑣,我們直接使用ant即可。還提供了adb、android模擬器等工具。

安裝:adt-bundle-linux-x86-20140321.zip

推薦下載網址:http://pan.baidu.com/s/1AB9in

解壓命令同上,解壓完成後即可使用了,裡面包含eclipse和sdk,不需要再進行配置其他,直接使用。

並將tools、platform-tools加入環境變數,這樣就可以直接使用adb和模擬器了

三、 Ant工具:

ant本來是sdk的一個子工具,但由於它集成了sdk的許多功能,用於一步打包成apk。

                安裝:apache-ant-1.9.4-bin.tar.gz

 解壓命令:tar -zxvf apache-ant1.9.4-bin.tar.gz

                   解壓後,將bin目錄加入環境變數,就可以直接使用ant命令了。

       打包apk只需要在android工程目錄下執行:ant  release

四、 工具使用

1)        ndk交叉編譯

在cmakelist裡將編譯器路徑替換成ndk編譯器路徑即可編譯成可以在android上執行的程序

SET(NDK_PATH  “/opt/android-18-toolchain”)

SET(CMAKE_CXX_COMPILER  "${NDK_PATH}/bin/arm-linux-androideabi-g++")

SET(CMAKE_C_COMPILER  "${NDK_PATH}/bin/arm-linux-androideabi-gcc")

2)        建立android工程

建立一個空資料夾,執行:

android create project --name  proname --target android-19  --path  ./ --package  com.proname  --activity activity_name

比如建立一個sdl的android工程:

android create project --name  SmartDevice --target android-18  --path  ./ --package  com.SmartDevice  --activity MainActive

其中,target 想使用哪個,可以根據上表選擇,但有些可能沒有安裝,可以通過命令:android list target 來檢視

3)        更新android工程

從其他地方轉移過來的android工程或想更新API LEVEL,或想更新專案名稱可以使用以下命令:

android update project  --name  proname --target android-19  --path  ./ --package  com.proname--activity  activity_name

如想更新API LEVEL,只需要執行

android  updateproject  --target  android-18 --path  ./

4)        打包成apk

在android工程目錄下,執行:ant  release

5)        安裝apk

Usb資料線連線好手機後,執行:adb install   –r  ***.apk 

Android sdl編譯

一、 編譯sdl

1、  建立一個空目錄

2、  進入目錄,執行:

cmake -DSYSTEM_NAME="Android"  -DCMAKE_BUILD_TYPE="Release" -DCOMPILIER_PATH="/opt/android-18-toolchain"  project_path

Ø  執行完後應該可以看到 current buildsystem is Android這樣的資訊。

Ø  -DSYSTEM_NAME 是設定執行系統,這裡必須設定成 "Android"

Ø  -DCOMPILIER_PATH 是設定NDK的根目錄,這裡是"/opt/android-18-toolchain"

3、  執行make,開始編譯

4、等第3步完成後,執行make install,會生成一個bin目錄,編譯完成。

二、 生成apk

1、  從git上獲取android_sdl_apk_build分支的android程式碼,裡面有一個assets目錄,將sdl的bin目錄下的所有檔案拷到assets下

2、更新Android 工程環境,執行android update project  -p  ./

Ø  其中./表示更新後存放在當前目錄

Ø  android命令是sdk提供的,所以需先安裝sdk。

Ø  這一步僅限於第一次打包,第二次以後可以省略

3、  執行ant  release,執行過程中會連續兩次提示輸入簽名信息和金鑰,兩次都直接輸入8888888即可。

Ø  生成一個apk檔案,找到bin/SmartDeviceLink-release.apk。

三、 安裝

兩種方法:

1、  直接安裝

將apk檔案放到安卓手機上,直接點選即可安裝

2、  adb 安裝

將手機連線電腦,在控制檯上執行:adbinstall -r  ***.apk

Ø  adb工具 一般存放在sdk安裝目錄的platform-tools下,也可以單獨下載adb工具