Linux下NDK的安装配置

Linux下NDK的安装配置

    在编写android程序的时候如果需要复用一部分以前的c语言程序,可以考虑使用NDK。由于设计到c和c++编程,故强烈建议在Linux下安装上eclipse的CDT插件。安装方法同安装其他插件的方式一样,推荐离线安装,方法这里不再赘述。

    在使用NDK之前需要下载android-ndk包,下载解压后将解压后的文件夹拷贝到自定义的目录下面(如“/root/”目录下),如图一所示。

 

图一  拷贝解压后的ndk文件夹到自定义目录下

 

    和安装jdk的过程相同,下一步的工作便是配置ndk的环境变量。修改“/etc/”下的profile文件,在profile的”unmask 022”语句之前加上“NDKROOT=/root/android-ndk-r7b

“和”export PATH=$NDKROOT:$PATH”如图2所示(如果不行,可以可以在“~/.bashrc”文件末尾添加以上两个命令即可),修改保存,利用“source/etc/profile”命令执行其中的命令以更改环境变量。

 

图二  修改profile文件

 

    自此,ndk的安装完成,可以在shell中输入“ndk-build”命令来检查你的安装是否成功,如果不是显示“ndk-build not found”,而是如图3所示的提示,则说明你的ndk安装成功。

图三  检查ndk是否安装成功

 

    到此为止,就可以在eclipse当中使用ndk了。如果你对ndk不是太熟悉,你可以运行ndk自带的sample来体验ndk的功能。这里以ndk解压包中的“samples/”下的”hello-jni”为例来示范。首先导入”hello-jin”工程(如果不能导入,则可以新建一个空的”android project”然后将”hello-jni”下的文件夹全部拷贝到工程目录下即可),如图四所示。

 

图四  导入示例工程

 

    要让eclipse自动编译你的工程,还需要做进一步的设置,在工程名点击右键,选择”properties“,在弹出的窗口当中选择”Builders“,然后在窗口右侧选择”new”,再在弹出的窗口当中选择“program”,然后为你的builder命名,如图五所示。

图五  新建builder

 

    随后进入builder的编辑窗口。在Main选项卡当中分别设置“Location”和“Working Directory”为“/bin/bash”和“/bin”,同时,根据你当前工程的位置设置“Argument”的值,如你的工程路径是“/home/yuanxz/workspace/hello-jni”,那么你就该设置其值为:--login -c "cd /home/yuanxz/workspace/hello-jni &&ndk-build"。如图六所示。

 

图六  设置Main选项卡

 

    随后再设置“refresh”和”Build Option“选项卡,如图七和图八所示。其中点选refresh选项卡中的”specific resource“后面的”specify resource“按钮,在弹出的窗口中点选当前的工程,如图九所示。用同样的方法设置”Build Option“选项卡中的”specify resource“按钮。设置完成后,即可使eclipse自动编译你的c程序,同时将其生成”.so”文件,供android工程生成能在android平台上运行的apk使用,如图十所示。

 

图七  设置refresh选项卡

 

 

图八  设置BuildOption选项卡

 

图九  设置specifyresource

 

 

图十  模拟器运行结果


注意:

     现在这样做还有个问题:当C或者C++的源代码修改后,若果不删除项目libs/armeabi/libhello-jni.so文件,eclipse是不会自动帮你替换新的so文件的,所以每次修改了C,C++源代码后,需要手动的删除libs/armeabi/libhello-jni.so文件.


 


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值