Android中NDK的使用方法
16lz
2021-01-23
Windows平台下如何使用Android NDK
2011-07-26 12:38:37
标签: windows jni native Android ndk 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处、作者信息和本声明。否则将追究法律责任。 http://yuchen.blog.51cto.com/2739238/623472 鉴于有些同学想要学习 NDK,但在网上很难找到一个讲解比较清楚、按照步骤操作可以比较顺利学会NDK的文章,所以写了此篇教程。 一.学习本篇教程需要具备的条件: 1. 了解 JAVA中JNI的概念、好处以及使用方法,网上很多介绍,这里就不重复了。 2. 你的电脑配置好了 Android应用开发环境,即:JAVA、Eclipse、ADT和Android SDK。 二.准备 需要 Android NDK和windows下c、c++代码的编译器cygwin android-ndk-r6-windows.zip下载地址: http://u.115.com/file/clvyxr0b cygwin下载地址: http://u.115.com/file/clvy46eb 三.配置 1. 解压缩 NDK和cygwin,并配置cygwin的环境变量。 例如:我解压缩到 D盘根目录,那么在环境变量的path中添加:”D:\cytwin\bin;”, 如下图所示。 2. 在命令行中进入 cygwin目录,并执行cygwin.bat,如果你不是用Administrator账号登录的系统,那么会在cygwin\home\文件夹中生成一个以你的登录名命名的新的文件夹。 3. 修改新生成文件夹中的“ .bash_profile ”文件,用UE或editplus等文本编辑器打开,在最后增加: NDK=/cygdrive/d/android-ndk-r6 export NDK 然后保存关闭。 d/android-ndk-r6表示 ndk在d盘,如果你的ndk放到了其他盘符或路径,例如放到e:\sdk目录中,那么就改为e/sdk/android-ndk-r6。 (如果是 Administrator账号登录,直接修改Administrator文件夹中的文件。) 四.开始使用 1.在命令行窗口中进入 cygwin目录,执行cygwin.bat 2.进入 android-ndk中的samples文件夹里的某个项目文件夹,这里以hello-jni为例 进入文件夹的方式与 MS-DOS类似,用cd + 空格 + 盘符+ 路径即可,例子见下图 3.执行 $NDK/ndk-build编译 4.例子编译成功后导入 Eclipse中,编译并部署测试如图: 五.如何在自己的工程中使用 NDK Android-ndk中的例子大家会编译了,那么在自己现有的工程想要调用本地方法应该怎么做呢? 1.在 JAVA代码中声明native方法, 2.生成头文件 然后需要生成 C或C++的源码,供JAVA调用。 可以按照 JNI的命名规则,也可以使用JDK的javah命令来生成,这里推荐使用javah,避免手动编写出现错误不好排查。 javah命令的使用方法见 javah命令的帮助 这里以我的测试工程为例,编写好 native方法后,编译工程,eclipse会在bin目录生成.class文件,在命令行中进入bin目录,执行javah + 包名 + 类名,会在bin目录下生成一个头文件。 这个文件就是 JAVA与本地代码交互的接口了,做C或C++的开发人员针对这个头文件开发。 3. 编写本地方法 在你的工程根目录下创建 jni文件夹,并从android-ndk\samples里的hello-jni文件夹中拷贝出一个Android.mk文件,粘贴到jni文件夹中,同时刚才用javah生成的.h头文件拷贝到jni文件夹中。 首先创建一个 .c文件,实现头文件中的方法, 然后编辑 Android.mk文件,修改如下两行,第一行修改为你的工程名,第二行修改为你的.c或.cpp文件名 LOCAL_MODULE := EX25_JNI LOCAL_SRC_FILES := org_yuchen_demo_MainActivity.c 4.在 java代码中加载so文件 在 java代码中用静态块加载so文件,注意把so文件的“lib”和“.so”扩展名去掉。 5.使用本地方法更多相关文章
- Android中XML文件的使用
- Android使用HttpURLConnection上传文件
- Android so 文件简介
- Android的window类的常用方法
- Android 文件工具FileUtil
- Android 拨打webView 里面的电话号码的方法
- android 在线视频播放器实现方法
- android 在SD卡创建文件夹
- Android下各文件方法获取的路径