Android NDK(r5b)环境搭建及JNI实现
1. 下载android-ndk-r5b-windows并解压到D:\android-ndk-r5b-windows 2. 下载Cygwin, 执行setup.exe并开始安装 注意:.开发选项里必须勾选gcc和make,否则后期无法编译 3. 配置NDK环境变量 ### Android NDK(r5b)环境搭建及JNI实现 #### 一、Android NDK 环境搭建 ##### 1. 下载与安装Android NDK(r5b) - **下载**:需要从官方网站或其他可靠的来源下载 `android-ndk-r5b-windows` 版本的安装包。 - **解压**:将其解压到指定的位置,例如 `D:\android-ndk-r5b-windows`。 ##### 2. 安装Cygwin - **下载**:接下来,下载并安装 `Cygwin`。这是一个为 Windows 设计的类 Unix 环境,可以用来执行 Linux 命令和编译源代码。 - **安装**:运行 `setup.exe` 开始安装过程。 - **选项选择**:在安装过程中,确保在“开发选项”中勾选了 `gcc` 和 `make`。这两项对于后续的编译工作至关重要。 - **安装位置**:安装完成后,Cygwin 将位于某个特定的目录下,例如 `D:\AN_software\cygwin`。 ##### 3. 配置NDK环境变量 - **环境变量配置**:设置 `NDK` 环境变量,通常可以这样设置:`NDK=/cygdrive/d/android-ndk-r5b-windows/android-ndk-r5b`。 - **Cygwin根目录**:安装完后,在 Cygwin 中的根目录即为 Cygwin 的安装目录,如 `D:\AN_software\cygwin`。可以通过命令 `cd /` 或 `cd /cygdrive/d/AN_software/cygwin` 来进入该目录。 - **当前用户目录**:使用命令 `cd ~` 可以进入当前用户的目录。 #### 二、JNI 开发的基本步骤 ##### 1. JNI 接口设计 - 在 Java 层面定义一个方法,并使用 `native` 关键字标记,表明该方法将在本地代码中实现。例如: ```java public native String stringFromJNI(); ``` ##### 2. 使用 C/C++ 实现本地方法 - 需要在 C/C++ 代码中实现对应的本地方法。这里给出一个示例: ```c #include <jni.h> #include <string.h> jstring Java_com_ndk_AnNdkTest_stringFromJNI(JNIEnv *env, jobject thiz) { return (*env)->NewStringUTF(env, "Hello from JNI !"); } ``` ##### 3. 生成动态链接库 - 使用 `ndk-build` 命令来构建项目,生成 `.so` 文件。例如,在 `hello-jni` 示例中,可以使用以下命令: ```sh cd $NDK/samples/hello-jni $NDK/ndk-build ``` - 成功执行后,会在 `$NDK/samples/hello-jni/libs/armeabi` 目录下生成 `libhello-jni.so` 文件。 ##### 4. 将动态链接库复制到 Java 工程 - 将生成的 `.so` 文件复制到 Android 工程的相应目录中,以便在 Java 应用程序中加载和使用。 #### 三、实例演示 ##### 1. 创建 Android 工程 - 在 Eclipse 中创建一个新的 Android 工程,命名为 `ANNDKTEST`。 - 在工程中创建一个名为 `AnNdkTest` 的 `Activity` 类,并定义一个 `native` 方法: ```java public class AnNdkTest extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView tv = new TextView(this); tv.setText(stringFromJNI()); setContentView(tv); } public native String stringFromJNI(); static { System.loadLibrary("ANNDKTEST"); } } ``` ##### 2. 获取.h 文件并编写 C/C++ 代码 - 使用 `javah -jni` 命令生成相应的 `.h` 文件: ```sh javah -jni com.ndk.AnNdkTest ``` - 根据生成的 `.h` 文件,编写对应的 C/C++ 实现文件 `com_ndk_AnNdkTest.c`。 ##### 3. 构建 .so 文件 - 编写 `Android.mk` 文件来指定编译规则,并调用 `ndk-build` 命令进行编译。 - 成功编译后,会得到 `libANNDKTEST.so` 文件,将其复制到项目的适当位置。 通过以上步骤,我们不仅完成了 Android NDK(r5b) 的环境搭建,还实现了基于 JNI 的简单功能开发,这为后续更复杂的应用开发奠定了坚实的基础。

















- 粉丝: 0
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- wmproxy-Rust资源
- 国家开放大学电大《教育重要论述研究》网络课网考形考任务二及四试题答案.docx
- 业务拓展计划咨询项目建议书——创建国内领先的医疗网络服务提供商ppt课件.ppt
- 项目管理在包钢工程中的应用.doc
- .net程序设计—考试题库及答案.pdf
- 某电子商务网站商业计划书再版.doc
- (完整版)融合通信是什么.doc
- llcom-硬件开发资源
- 计算机病毒现状和发展.pptx
- 三菱FX2N系列PLC的步进指令.ppt
- vben-app-移动应用开发资源
- 基于C51单片机的8×8-LED点阵屏汉字显示.doc
- 全国高校网站一览表.doc
- 电气设计软件使用手册模板.doc
- 图像处理经典特征检测.ppt
- 中职计算机平面设计专业人才培养方案.doc


