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.使用本地方法

更多相关文章

  1. Android中XML文件的使用
  2. Android使用HttpURLConnection上传文件
  3. Android so 文件简介
  4. Android的window类的常用方法
  5. Android 文件工具FileUtil
  6. Android 拨打webView 里面的电话号码的方法
  7. android 在线视频播放器实现方法
  8. android 在SD卡创建文件夹
  9. Android下各文件方法获取的路径

随机推荐

  1. TextView设置最多显示指定个字符,超过部分
  2. marsboard Android 4.4 添加开机自动设置
  3. Android上下文菜单
  4. 我的android 第37天 -服务--Service(二)
  5. 如何在多个LinearLayout中添加分割线
  6. Android环境搭建及相关命令
  7. Android中VideoView播放当前工程中视频文
  8. 使用Vitamio打造自己的Android万能播放器
  9. Android开发实践:编译VLC-for-android
  10. android resultCode 一直为0问题解决