android -- NDK 编译环境搭建

android – NDK 编译环境搭建

Android NDK 是运行于Android 平台上的Native Development Kit 的缩写,通过通过NDK 调用C 或C++ 本地代码。为了能够在 eclipse 上直接编译C++、JAVA代码,解决编译中的错误,最后再上实现硬件环境上调试提供方便,提高开发效率,那么就很有必要搭建此工作环境。

一、需要先行下载的工具(以我自已的开发环境为例)

eclipse版本:     eclipse-cpp-helios-SR1-win32.zip

NDK版本:         android-ndk-r7-windows.zip

SDK版本:   android_sdk_r15.exe

Cygwin版本:     cygwin-downloader-end.rar(1.7.1-1)

ADT版本:            ADT-14.0.0.zip

JDK版本:         jdk-6u23-windows-i586.exe(jdk1.6.0_23)

二、安装工具

1、 安装JDK

2、 解压eclipse-java-c-svn-explorer-adt_11-helios-win32.zip到某个分区根目录(插件已经都安装好,但需要配置adt)

3、 安装android_sdk_r15.exe,仅选择文档和sdk 仅安装2.2,2.3即可(耗时较长),其他保留

安装SDK时,会出现Failed to fetch URL…的错误

1.到settings一栏,将force复选框选上,并填上代理服务器的地址和端口,使用https下载数据

2.更改ie的代理设置,如果是 “自动脚本配置” 就需要改成LAN方式手动指定代理.

3.重新尝试。

4.在avilible…一栏中选择所有,然后安装。

5.可以创建VAD,然后运行

4、 启动eclipse,选择工作区,配置ADT(Window->Prefrence->Android,点击Browser,选择SDK的安装路径)

5、 安装ADT

1.启动eclipse,主菜单Window->Prefrence->General->Network Connection,确认面板中Proxy部分的HTTP已勾选

2.选择Help主菜单,Install New Software…,点击Add…

3.点击Archive…,选择ADT-8.0.0.zip的路径(不要解压),开始安装,中间有一些步骤,不赘述

4.结束时要求重启eclipse,确认。

5.配置Android SDK,主菜单Window->Prefrence,选择Android面板

6.点击Browser,选择SDK的安装路径,确认。

7.配置完成可以新建Android应用测试

三、确认环境是否配置成功

1、确认SDK安装成功: windows->Prefrence->Android,右边是否列出了所安装的android(TARGET NAME)2.2/2.3…

选择正确的 SDK Location: D:\tools\android-sdk

2、Cygwin版本:

$ cygcheck -c cygwin     此命令在Cygwin中执行

Cygwin Package Information

Package              Version        Status

cygwin               1.7.1-1        OK

3、配置NDK环境变量

1.cygwin的安装目录,找到一个home\<你的用户名>\.bash_profile文件中添加如下:

NDK=/cygdrive/c/android-ndk-r7

export NDK

2.运行cygwin,输入 cd $NDK,如何设置成功,则显示刚刚配置的路径

3.测试ndk-build脚本,进入 N D K / s a m p l e / h e l l o − j n i 项目下,运行 NDK/sample/hello-jni项目下,运行 NDK/sample/hellojni项目下,运行NDK/ndk-build

输出一下信息:说明编译成功

Compile thumb  : helloneon <= helloneon.c

Compile thumb  : cpufeatures <= cpu-features.c

StaticLibrary  : libcpufeatures.a

SharedLibrary  : libhelloneon.so

Install        : libhelloneon.so => libs/armeabi/libhelloneon.so

Compile thumb  : helloneon <= helloneon.c

Compile thumb  : helloneon <= helloneon-intrinsics.c

Compile thumb  : cpufeatures <= cpu-features.c

StaticLibrary  : libcpufeatures.a

SharedLibrary  : libhelloneon.so

Install        : libhelloneon.so => libs/armeabi-v7a/libhelloneon.so

四、使用 ecclipse 编辑代码与编译

1、设定字体及颜色:windows->Prefrence点击Genral->Appearance->Colors and Fonts

2、导入工程代码

1.File->new->other…->Android->Android Project,next

2.可选择新建,也可以选择create project from existing example

3.选择后者,选择build target为Android 2.3

4.samples 下拉列表选择任意一个工程,finish

5.选中工程,右键->build project(如果没有,取消主菜单Project->build automaticly)

6.选中工程,右键->Android application(如果没有AVD设备则需要配置)

3、配置C/C++的编译器

1.右键单击项目名称,点击Properties,弹出配置界面,之后再点击Builders,弹出项目的编译工具列表,之后点击New,新添加一个编译器,点击后出现添加界面,选择Program,点击OK按钮

出现了添加界面,首先给编译配置起个名字,如:C_HelloJni_Builder

设置Location为<你cygwin安装路径>\bin\bash.exe程序,例如:C:\cygwin\bin\bash.exe,

设置Working Directory为<cygwin安装路径>\bin目录,例如:C:\cygwin\bin

设置Arguments为 --login -c “cd /cygdrive/c/NDK/android-ndk-r7/samples/hello-jni && $NDK/ndk-build”

$NDK是之前配置的ndk的环境变量,这两个根据你具体的安装目录进行配置,其他的不用变,Arguments这串参数实际是给bash.exe命令行程序传参数,进入要编译的程序目录,然后运行ndk-build编译程序

对于NDK_Builder的参数时可以设定如下:

–login -c “cd ‘${project_loc}’ && $NDK/ndk-build”

每个工程都需要配置一次,主要是参数需要变更。

2.对于以上的Edit Configuration中有四个选项框,自行进行配置:

【Main】 【Refresh】 【Environment】 【Build Options】

配置保存完成,如果你配置的编译器在其它编译器下边,记得一定要点Up按钮,把它排到第一位,否则C代码的编译晚于Java代码的编译,会造成你的C代码要编译两次才能看到最新的修改

4、编译及清除中间文件

清除: project->Clean…-> 这里有两个选择框 Clean all projects & Clean projects selected below选中需要清除的项目

编译:项目名称右键单击,选择 Build Project

运行:Run as/Debug As -> Android Project 即可运行,需要在盒子上运行,则首先利用adb connect target_ip 然后再运行

默认情况下,NDK的编译系统会按”armeabi”ABI生成机器代码。若想生成其他类型的机器代码 eg:x86  mips

只需修改application.mk中的 APP_ABI 即可。

关于application.mk的介绍如下:

配合android.mk 使用的make 文件还有一个application.mk ,大部分情况无需修改该文件,下面也来自网络翻译

Application.mk文件

简介:

—————————–

要将C\C++代码编译为SO文件,光有Android.mk文件还不行,还需要一个Application.mk文件。

本文档是描述你的Android应用程序中需要的本地模块的Application.mk的语法使用,要明白如下。

Application.mk目的是描述在你的应用程序中所需要的模块(即静态库或动态库)。

Application.mk文件通常被放置在 P R O J E C T / j n i / A p p l i c a t i o n . m k 下, PROJECT/jni/Application.mk下, PROJECT/jni/Application.mk下,PROJECT指的是您的项目。

另一种方法是将其放在顶层的子目录下:

$NDK/apps目录下,例如:

$NDK/apps//Application.mk

是一个简称,用于描述你的NDK编译系统的应用程序(这个名字不会生成共享库或者最终的包)

下面是Application.mk中定义的几个变量。

学习交流

群内有许多来自一线的技术大牛,也有在小厂或外包公司奋斗的码农,我们致力打造一个平等,高质量的Android交流圈子,不一定能短期就让每个人的技术突飞猛进,但从长远来说,眼光,格局,长远发展的方向才是最重要的。

35岁中年危机大多是因为被短期的利益牵着走,过早压榨掉了价值,如果能一开始就树立一个正确的长远的职业规划。35岁后的你只会比周围的人更值钱。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

业规划。35岁后的你只会比周围的人更值钱。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 12
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值