Android NDK入门教程:环境配置与JNI操作
"这篇资料是关于NDK与JNI的基础操作指南,适合初学者。它涵盖了NDK的下载、安装和环境配置,以及如何在C语言中编写和编译Android应用程序。" NDK(Native Development Kit)是Android开发的一个重要工具集,它允许开发者使用原生C或C++代码来构建应用的部分功能,以实现高性能和访问特定硬件。这份教程首先介绍了如何获取和安装NDK。下载的NDK版本是android-ndk-r14b-linux-x86_64.zip,需要将其解压到一个指定的目录,例如/mnt/ndk。接着,为了使系统能够识别NDK路径,我们需要编辑用户环境变量配置文件`.bashrc`,添加NDK的相关路径,并执行命令使更改生效。 在完成环境配置后,可以通过执行`ndk-build`命令来测试NDK是否正确安装。如果出现错误提示“AndroidNDK Could not find application project directory!”和“Please define the NDK_PROJECT_PATH”,这表明需要设置NDK项目路径以指示NDK在哪里寻找工程文件。 接下来,教程进入JNI(Java Native Interface)部分,这是Java与C/C++代码交互的桥梁。在Android项目中,JNI代码通常位于项目的`jni`目录下。在这个目录中,需要包含头文件和源代码文件,并编写`Android.mk`和`Application.mk`这两个构建脚本。`Android.mk`用于定义模块信息,如本地模块名(LOCAL_MODULE)、源文件位置(LOCAL_SRC_FILES)以及需要导出的C头文件目录(LOCAL_EXPORT_C_INCLUDES)。`Application.mk`则可以用来设置应用的全局属性。 示例中的`Android.mk`文件展示了如何编译共享库(SHARED_LIBRARY)和静态库(STATIC_LIBRARY)。`LOCAL_PATH`被设置为当前目录,`CLEAR_VARS`用于重置变量,`PREBUILT_SHARED_LIBRARY`和`PREBUILT_STATIC_LIBRARY`则是将已编译的库文件链接到项目中。 总结来说,这份资料是针对Android开发初学者的NDK和JNI入门教程,涵盖了NDK的下载、安装、环境配置,以及如何使用C/C++编写和编译原生代码。通过这些基础知识,开发者可以开始创建需要利用C或C++性能优势的Android应用模块。
1.下载相应版本的android ndk
目前我基于android-ndk-r14b-linux-x86_64.zip进行开发
2.解压到Ubuntu下的mnt文件中,可以创建个文件夹为ndk,所以目前ndk的绝对路径为/mnt/ndk
3. 解压命令为: unzip android-ndk-r14b-linux-x86_64.zip
4. 解压完后需配置环境变量
(1) $sudo gedit ~/.bashrc 打开配置文件
(2) 在文件末尾添加以下代码:
export ANDROID_NDK_HOME=/mnt/ndk/android-ndk-r14b
export ANDROID_NDK_ROOT=/mnt/ndk/android-ndk-r14b
export NDK=/mnt/ndk/android-ndk-r14b
export PATH =${PATH}:$NDK
保存信息
(3) source ~/.bashrc 使其修改的文件生效
(4) ndk-build 查看配置环境变量是否成功
//如果在界面上出现
Android NDK:Could not find application project directory!
Android NDK: Please define the NDK_PROJECT_PATH ...
则证明ndk安装成功
(二)NDK中jni操作
1.在项目文件夹中建立jni文件夹
(1)创建include文件夹,可以把C/C++的头文件全放入到include
(2)将所有c/c++文件放到jni文件夹下或者创建src文件夹将c/c++文件放入其中
(3)在jni文件夹下创建Android.mk,Application.mk两个文件
(4)在Android.mk中填写文件信息格式如下
#符号为注释符合
LOCAL_PATH := $(call my-dir) #当前路径
include $(CLEAR_VARS)
下载后可阅读完整内容,剩余2页未读,立即下载
- 粉丝: 10
- 资源: 19
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展