JNI开发环境搭建

来源:互联网 发布:php防止sql注入方法 编辑:程序博客网 时间:2024/05/16 14:27
NDK的Windwos环境搭建Eclipse版本是3.6以上的  
一、下载android NDK您可以下载NDK r4  for Windows或NDK r5  for Windows安装包,下载地址:
地址:http://developer.android.com/sdk/ndk/index.html
2011122816360098.png
2012-8-1 15:30 上传
下载附件(48.77 KB)


下载后解压缩到你的工作目录,例如:E:\Android\tools\android-ndk-r7,结果如下图:
2011122816365794.png
2012-8-1 15:31 上传
下载附件(57.68 KB)

Android NDK包含build、docs、samples、sources、GNUmakefile、ndk-build、ndk-gdb及readme等内容。samples下面包含几个实例开发演示项目,第一次接触NDK开发,建议先从示例开始。下面先看一下编译环境配置。
二、下载Cygwin由于NDK开发大都涉及到C/C++在GCC环境下编译、运行,所以在Windows环境下,需要模拟Linux模拟编译环境,下载地址:
http://www.cygwin.com/
下载setup.exe文件。http://cygwin.com/setup.exe
2011122816371536.png
2012-8-1 15:31 上传
下载附件(19.59 KB)


使用过程如下:
第一步:运行setup程序,第一步图略,直接点击Next进入下一步。
第二步:选择安装方式,第一次可以采用Direct Connection在线下载安装,如有现成的离线包,可以选择离线安装(Install from Local Directory)。

第三步:选择安装目录,比如E:\Android\cygwin,注意此目录是指Cygwin最终的安装目录,不是下载文件暂存目录。
第四步:设置本地包暂存路径
暂存目录默认是放到setup.exe的同级目录下,下载后名字类似E:\Android\Softs这样格式。
第五步:设置网络连接方式
第六步:选择下载站点地址
起初尝试几个看哪个速度快就用哪个地址(如果感觉不快就点取消,再次来过)。国内的话,我感觉163的速度不错。

第七步:等待加载安装项载入,选择安装项
我们编译NDK,在默认设置下,只需选择Devel(点击列表中Devel,将后面的Default改为Install,图中箭头所示),其它均为默认状态。

那四个单选按钮是选择下边树的样式,默认就行,不用动。View默认是Category,建议改成full显示全部包再查,省的一些包被隐藏掉。左下角那个复选框是是否隐藏过期包,默认打钩,不用管它就行,下边开始下载我们要安装的包吧,为了避免全部下载,这里列出了后面开发NDK用得着的包:autoconf2.1、automake1.10、binutils、gcc-core、gcc-g++、gcc4-core、gcc4-g++、gdb、pcre、pcre-devel、gawk、make共12个包

2011122816380881.png
2012-8-1 15:32 上传
下载附件(42.95 KB)

第八步:等待下载完成
下载完成时间决定于你选择的安装包数量及网络连接速度,比如按照本文默认的选择方式,可能需要4-5个小时,下载后压缩包约830M左右,下载完成后会自动安装到上文设置的安装目录。

提醒:第一次下载完成后,最好把下载的包目录做个备份,下次安装同样的环境可以直接使用离线安装方式(第二步中选择本地安装)。


三、验证Cygwin环境
安装完成后,运行cygwin,
第一次使用时,会创建一些用户环境文件,
在弹出的命令行窗口输入:cygcheck -c cygwin命令,会打印出当前cygwin的版本和运行状态,如果status是ok的话,则cygwin运行正常。
分别输入:
make -v
和,
gcc -v
如果检测成功,会有make和gcc相关版本信息打印出来,
四、编译示例
1、设置NDK路径。
在windows的系统环境变量中添加NDK的路径。如:e/Andriod/tools/android-ndk-r7

2、也可以不添加,每次打开目录时,输入该路径即可。 /cygdrive/e/Andriod/tools/android-ndk-r7
2011122816402179.png
2012-8-1 15:32 上传
下载附件(14.5 KB)

四:用NDK来编译程序

    1、现在我们用安装好的NDK来编译一个NDK提供的示例的程序。

我们选择ndk自带的例子hello-jni,我的位于android-ndk-r7\samples\hello-jni(根据你具体的安装位置而定),

    2、运行cygwin,输入命令cd /cygdrive/e/android-ndk-r5/samples/hello-jni,进入到E:\android-ndk-r5\samples\hello-jni目录。
2011122816420744.png
2012-8-1 15:33 上传
下载附件(18.59 KB)


3、输入 ../ndk-build ,执行成功后,它会自动生成一个libs目录,把编译生成的.so文件放在里面。(ndk-build是调用ndk的编译程序)
错误:
Android NDK: Host 'awk' tool is outdated。
找到目录E:\Android\tools\android-ndk-r7\prebuilt\windows\bin\awk.exe:删除awk。(为保险起见可先cp一份),重新ndk-build
成功编译:
2011122816425754.png
2012-8-1 15:34 上传
下载附件(22.25 KB)


  4、此时去hello-jni的libs目录下看有没有生成的.so文件,如果有,你的ndk就运行正常啦!正常编译完成后会在你的项目libs/armeabi目录下生成对应的 .so文件。
hello-jni目录中多了一个libs目录。打开目录,发现到so文件。
2011122816433756.png
2012-8-1 15:34 上传
下载附件(20.36 KB)

导入示例s到Android项目ndk自带例子是无法直接导入的,需要使用方法如下(示例):
1、在Eclipse中新建一个工程HelloJni。在eclipse中通过Create project from existing source 方法建立起hello-jni项目。需要注意的是在选择API level时需要选择1.5或更高的版本。如图所示:
2011122816442516.png
2012-8-1 15:35 上传
下载附件(27.84 KB)


2、导入成功后,目录。

3、运行该代码
2011122816445111.png
2012-8-1 15:35 上传
下载附件(12.5 KB)


五:在eclipse中集成c/c++开发环境

    1、装Eclipse的C/C++环境插件:CDT。

    首先登录
http://www.eclipse.org/cdt/downloads.php,找到对应你Eclipse版本的CDT插件的在线安装地址。

2011122816455385.png
2012-8-1 15:36 上传
下载附件(12.25 KB)

如图,首先是一个Eclipse C/C++ IDE Indigo SR-1的下载链接,该链接是用于下载自带集成了CDT插件的Eclipse开发环境,如果当前计算机上没有安装任一版本的Eclipse,则可以选择下载安装此版本Eclipse,则无需再另外安装CDT。
果已经安装了Eclipse Indigo,则可以使用第二个连接“p2 software repository”在Eclipse的Help菜单下选择Install New Software并复制如上所述链接进行在线安装。
    2、在线安装。然后点Help菜单,找到Install New Software菜单

    3、点击Add按钮,把取的地址填进去,出来插件列表后,选Select All,然后选择下一步即可完成安装。
勾选Group items by category,会按分类出现供安装的组件。此处可以不需要安装所有的组件,推荐勾选CDT Main Features分类并勾选CDT Optional Features下的“C/C++ Development Platform”、“C/C++ DSF GDB Debugger Integration”、“C/C++ GCC Cross Compiler Support”、“C/C++ GNU Toolchain Build Support”、“C/C++ GNU Toolchain Debug Support”、“Eclipse Debugger for C/C++”、“Miscellaneous C/C++ Utilities”这些组件,其他组件可以在需要用的的时候再进行安装.

3、离线安装
如果在线安装的方法由于网络原因或者其他原因不能够成功完成,则可以通过下载离线安装包的方式进行安装,首先需要通过如图13-10中最下方的链接下载CDT安装包,例如目前最新的8.0.1版本,下载到本地后,在如图13-11所示的界面中点击地址栏右方的Add…按钮,然后点击Archive按钮并定位到刚下载的cdt-master-8.0.1.zip压缩包,再进行安装即可。

4、安装完成后,在eclispe中右击新建一个项目,如果出现了c/c++项目,则表明你的CDT插件安装成功啦!

2011122816463516.png
2012-8-1 15:36 上传
下载附件(27.41 KB)


六、使用Sequoyah插件来配置
1、Sequoyah插件的官方下载点为http://www.eclipse.org/sequoyah/downloads/,在该网页上同样提供了用于在线安装的update site地址以及安装包的下载地址,需要注意的是在安装界面要确认Group items by category复选框处于未选中状态,否则可能出现列表为空(There are no categorized items)的情况。全部勾选列出的安装包并完成安装。
http://download.eclipse.org/sequoyah/updates/2.0/

2011122816545915.png
2012-8-1 15:37 上传
下载附件(39.85 KB)


Sequoyah安装完成后,
添加ndk路径。
在windows-》preferences。

2011122817103631.png
2012-8-1 15:37 上传
下载附件(22.73 KB)


右键点击任意的Android Project会发现在Android Tools中多出了一个“Add Native Support…”选项

2011122816573089.png
2012-8-1 15:38 上传
下载附件(83.28 KB)

Add Native Support…点击后会弹出一个简单的设置界面。
2011122817131068.png
2012-8-1 15:38 上传
下载附件(19.57 KB)

JNI编译环境配置

对于jni项目,需要添加c编译以及依赖库。
右击项目-》Properties。
编译设置:
在弹出界面中选择c/c++Build。在builder setting选项卡的build command输入 “bash <ndk路径>/ndk-build" 。如下图
2011122822250852.jpg
2012-8-1 15:39 上传
下载附件(60.51 KB)

依赖库
选择Gennera-》paths and。。。-》includes选项卡,选择GNU c。添加依赖路径
\android-ndk-r7\platforms\android-8\arch-arm\usr\include

2011122822263449.jpg
2012-8-1 15:39 上传
下载附件(65.98 KB)



原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 买二手房原房主欠物业费怎么办 客人将物品遗留在餐厅时怎么办 工程签合同了又别人来干怎么办? 超市储存柜东西忘拿了怎么办 普通异性朋友出去玩在外面住怎么办 古墓丽影崛起绳箭突然没有了怎么办 pp材质的水杯用开水烫了怎么办 手上长水泡很痒怎么办有什么药膏 烧伤后水泡破了周围都肿了怎么办 烧伤的水泡破了碰到水怎么办 浓硫酸沾到皮肤上应该怎么办 将浓硫酸沾到皮肤上怎么办 刷厕所的盐酸弄到皮肤上怎么办 死刑犯被执行后发现被冤枉的怎么办 觉得老公对自己不够关心体贴怎么办 孕期老公不知道关心不体贴怎么办? 中国和伊朗做贸易美国制裁怎么办 土地被村民霸占村长解决不了怎么办 村支书霸占群众选举村长的票怎么办 苹果手机自带的音乐软件删了怎么办 不小心把手机系统软件删了怎么办 佳能打印机打相片是打不全怎么办 卖家说我寄回去的包是假的怎么办 辞职后原单位没把档案给转出怎么办 天下行以租代购要起诉我怎么办 顺丰收件人电话地址都写错了怎么办 领导问任务完不成怎么办怎么回答 我和我老婆感情出现问题了怎么办 手机坏了手机浏览器里照片怎么办 不小心把电脑ie浏览器删了怎么办 华为手机自带浏览器中病毒了怎么办 手机打开浏览器提示中病毒了怎么办 手机卸载了浏览器和软件商店怎么办 房东在我租房期间贴房子出租怎么办 额头上毛孔大 还有些黑怎么办 孩子学跳舞老师压的疼怎么办 步步高点读机电池坏了怎么办 电脑连接受限制或无连接怎么办 电脑无线网受限制或无连接怎么办 电脑网络受限制或无连接怎么办 3 证书报考大专证书丢了怎么办