一个简单但完整的NDK demo

本文详细记录了使用Android NDK r9构建一个简单NDK demo的过程,包括JNI接口设计、C/C++代码实现、动态链接库so的生成以及在Java中调用so库的步骤。通过手动和Eclipse的自动化工具,演示了如何从创建项目到运行成功,展示了NDK在Android开发中的应用。
摘要由CSDN通过智能技术生成

这是我模仿视频教程而写的一个简单的NDKdemo,麻雀虽小五脏俱全,里面也有不少注意事项,在此记下详细步骤。

因为最早是看的《Android应用开发解密》和土豆网上的一个视频,前者ndk版本太老,一些诸如class文件生成、jni文件夹的新建、Android.mk、Application.mk的生成等操作需要我们手工进行,而我用的NDK r9则方便得多,除了Application.mk根本不需要生成之外,class文件、jni文件夹、Android.mk都是系统自动生成,连so文件也可以通过软件生成,不用借助Cygwin;后者缺少so的生成的步骤说明。下面开始整个流程,目的是在MainActivity的一个Button上显示C代码返回的String,如下图。环境:Eclipse 3.8,NDK r9。


流程严格分为四步:

一.JNI接口设计;二.在C/C++中实现本地方法;三.生成动态链接库so;四.在工程中调用so。

一.JNI接口设计

  1. 新建一个Android工程,名为SecondNDK,在布局xml里定义一个Button,id为result。

  2.在工程文件夹上  右键--Android Tools--Add Native Support,核查一下各参数,标配如下图,点击‘完成’。


注:如果你的NDK位置处是空白的话,可以到 菜单栏的‘Windows--Preference’窗口左侧的‘ Android--NDK’中设置你NDK的路径,设置好后这里就会有所显示。

点击‘完成’后,发现工程的根目录下自动多了一个‘jni文件夹’(这在NDK r1里是要我们手动新建的),里面自动生成Android.mk和一个.cpp文件,甚好,如下图。


3.在同一个package里新建一个.java文件,里面是一些由java文件定义、在c/c++文件里实现的一些函数,注意这些函数要加关键字“native”。


接下来要为饱含接口函数的java文件生成C的头文件,这步需要在cmd中进行。命令如下图:


说明:参考BetweenFunc.class的位置为:E:\工作空间1\工作空间2\SecondNDK\bin\classes\com\example\secondndk,或许就能猜到这个格式的路径的含义,其中的

javah -d ../../jni是为了指定生成的c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值