一、 Android NDK:
集成了android交叉编译器,针对不同版本android平台提供了相应的gcc、g++、ndk-build、ndk-gdb等一系列编译和调试工具。
安装ndk:
官网下载地址:http://www.cnblogs.com/yaotong/archive/2011/01/25/1943615.html
安装包选择:
选择安装包需要注意几点:
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 APILEVEL,platform文件夹下可以看到,这里使用的是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.3,2.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
推荐下载网址:http://download.csdn.net/download/sams_on361/7808511
解压命令: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工具