Android 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实例的实现:
对于Windows环境下NDK的开发,如果使用的NDK是r7之前的版本,必须要安装Cygwin才能使用NDK,所以为Eclipse需要配置的builder,其实是执行Cygwin,然后传递ndk-build作为参数。在NDKr7开始,Google的Windows版的NDK提供了一个ndk-build.cmd的脚本,这样,就可以直接利用这个脚本编译,而不需要使用Cygwin了。只需要为Eclipse Android工程添加一个Builders,就能让Eclipse自动编译NDK。 本人用的是android-ndk-r10c 1、 下载安装android-ndk-r10c。安装(exe版的)或解压(zip版的)。 2、 打开Eclipse,新建一个Android工程(我的叫HelloWorld)。
File -> New -> Android Application Project
添加native 支持
选择项目右击:Android tools -> Add Native Support...
项目中会添加一些文件夹
3、编写c++代码:
4、 新建并配置一个Builder:
(a)选择项目右击:properties->Builders->New,新建一个Builder。 (b)在弹出的【Choose configuration type】对话框,选择【Program】,点击【OK】: (c)在弹出的【Edit Configuration】对话框中,配置选项卡【Main】。 在“Name“中输入新builders的名称(我取名为Ndk_Builder)。 在“Location”中输入nkd-build.cmd的路径。 (我的是D:\android\android-ndk-r10c\ndk-build.cmd,根据各自的ndk路径设置,也可以点击“Browser File System…”来选取这个路径)。 在“Working Diretcoty”中输入${workspace_loc:/HelloWorld}(也可以点击“Browse Workspace”来选取HelloWorld目录)。 (d)【Edit Configuration】对话框中,配置选项卡【Refresh】。 勾选“Refresh resources upon completion”, 勾选“The entire workspace”, 勾选“Recuresively include sub-folders”。 (e)【Edit Configuration】对话框中,配置选项卡【Build options】。 勾选“After a “Clean””, 勾选“During manual builds”, 勾选“During auto builds”, 勾选“Specify working set of relevant resources”。 点击“Specify Resources…” 勾选TestNdk工程的“jni“目录,点击”finish“。 (f)点击“OK“,完成配置。 (g) 以后每次运行clean就直接编译c++了,会在项目的libs下自动生成libHelloWorld.so文件
5、编写Java代码:
6、直接按Android程序运行,即可出想要界面。
相关推荐
绿豆饼 2020-05-26
hqulyc 2020-04-22
zhongzhiwei 2020-05-07
Jemy杰 2012-07-08
yuemeng0 2012-07-08
zuihaobushi 2012-07-08
yinbaoshiguang 2010-08-29
Urchindong 2010-08-17
luoj 2011-02-20
老菜鸟自习室 2011-02-18
yuanzhiweiss 2011-08-22
wintering 2011-08-20
nickey 2011-08-17
newtrekWang 2011-08-16
西木 2011-08-16
taiyuanwuyin 2011-08-16
移动视频探索者 2011-04-28
taiyuanwuyin 2011-10-26