Android NDK学习总结
一、android NDK编程步骤
- java文件中声明native方法。
- android工程根目录新建jni文件夹。
- 调用javah命令为第一步声明的native方法生成相应的.h头文件。
通过windows命令行窗口进入到该工程根目录下执行如下语句,便可生成对应的.h头文件:
javah -classpath bin/classes;D:\yinz\adt-bundle-windows-x86_64-20131030\sdk\platforms\android-19\android.jar -d jni com.example.hellondk.MainActivity
javah命令的相关参数可在命令行输入:javah,然后回车即可查看
该命令执行后将在工程根目录下的jni文件夹下生成对应的.h头文件。
- jni目录下新建.c源文件,对.h中的方法进行实现。
- 编写android.mk文件(NDK demo中拷贝即可,拷贝后需自行修改相应参数,如生成的.so文件名,需要编译的.c源文件等)。
NDK解压包的 samples,文件夹下存放了相关的demo工程。
- 工程根目录执行:ndk-build生成对应的.so文件(此处可配置使eclipse自动编译,则可省略该步骤)。
- java中加载该.so文件,并调用该方法。
二、eclipse相关配置
- 配置eclipse自动编译生成.so文件
android工程右击-->properties,如下所示:
如上图所示,未配置前,Builders列表中没有“ndk-builder”选项。
此处点击“New”选项,新增一个builder,如下图所示:
选择“OK”继续:首先配置“Main”选项卡
然后再配置“Build Options”选项卡,如下:
点击“apply”-->“OK”即可。
- eclipse中配置“javah”命令
点击“Run” -->“External Tools” -->“External Tools Configurations”,弹出如下配置框:
- eclipse中配置“javap”命令
方法与配置javah相识,配置参数如下:
配置完成后便可直接在eclipse中,通过点击相应的按钮快速执行:javah生成头文件和javap查看方法签名,而不用再在命令行窗口输入一长串命令执行相应操作,其中方法签名,在jni函数中调用java对象的方法时会用到。
- 配置JNI编码时的代码提示
工程右击-->"Android Tools" -->"Add Native Support"-->"finish".
然后再:工程右击-->"Properties",如下图配置:
上图中所选路径为:D:\yinz\adt-bundle-windows-x86_64-20131030\android-ndk-r10b\platforms\android-L\arch-arm\usr\include
配置完之后,在编写相应的jni方法时便可通过eclipse的代码提示功能来进行jni方法提示。
Android NDK学习总结的更多相关文章
- Android NDK学习(2)Windows下NDK开发环境配置
转:http://www.cnblogs.com/fww330666557/archive/2012/12/14/2817386.html 一.配置好Android开发环境 二.下载安装安卓NDK ...
- Android NDK 学习之传递类对象
本博客主要是在Ubuntu 下开发,且默认你已经安装了Eclipse,Android SDK, Android NDK, CDT插件. 在Eclipse中添加配置NDK,路径如下Eclipse-> ...
- Android NDK学习(一):目录结构解析
我们配置好NDK环境后,基本可以看到其目录结构如下图: 下面我们来分析一下NDK根目录的结构: ndk-build:该Shell脚本是Android NDK构建系统的起始点,一般在项目中仅仅执行这一个 ...
- Android NDK学习(1) 简介
转:http://www.cnblogs.com/fww330666557/archive/2012/12/14/2817385.html 一.What is the NDK? The Android ...
- Android NDK学习记录(一)
一.NDK环境在Mac中部署 1.准备eclipse,android sdk安装包,android ndk安装包(http://dl.google.com/android/ndk/android-nd ...
- Android NDK 学习之在C中抛出异常
本博客主要是在Ubuntu 下开发,且默认你已经安装了Eclipse,Android SDK, Android NDK, CDT插件. 在Eclipse中添加配置NDK,路径如下Eclipse-> ...
- Android NDK 学习之调用Java函数
本博客主要是在Ubuntu 下开发,且默认你已经安装了Eclipse,Android SDK, Android NDK, CDT插件. 在Eclipse中添加配置NDK,路径如下Eclipse-> ...
- Android NDK 学习之在C中调用Java的变量和静态变量
本博客主要是在Ubuntu 下开发,且默认你已经安装了Eclipse,Android SDK, Android NDK, CDT插件. 在Eclipse中添加配置NDK,路径如下Eclipse-> ...
- Android NDK 学习之接受Java传入Object数组
本博客主要是在Ubuntu 下开发,且默认你已经安装了Eclipse,Android SDK, Android NDK, CDT插件. 在Eclipse中添加配置NDK,路径如下Eclipse-> ...
随机推荐
- 动态规划(区间DP):HDU 5115 Dire Wolf
Dire wolves, also known as Dark wolves, are extraordinarily large and powerful wolves. Many, if not ...
- 转载--Linux命令top动态观察程序的变化
转载:http://www.cnblogs.com/allen8807/archive/2010/11/10/1874001.html top:动态观察程序的变化 [root@linux ~]# to ...
- [SAM4N学习笔记]按键程序(查询方式)
一.准备工作: 将上一节搭建的工程复制一份,命名为"5.key scanf".这一节主要讲如何使用SAM4N的GPIO输入功能,实现按键的输入. 二.程序编写: ...
- Ubuntu12.04-64bits搭建FFmpeg环境
所有的环境搭建动作请参考FFMpeg官方网站:http://www.ffmpeg.org/index.html 1. 获取源代码: git clone git://source.ffmpeg.org/ ...
- 借助bool判断使冒泡排序效率提高
排序问题是编程中最常见的问题.实际应用中,计算机有接近一半时间是在处理有关数据排列的问题,提高排序的效率有助于更快地解决问题. 先来说说平常一般的冒泡算法,使用两个循环,外循环作为整体排序,每趟循环使 ...
- HDU 1712 ACboy needs your help 典型的分组背包
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1712 ACboy needs your help Time Limit: 1000/1000 MS ( ...
- 批量Linux 网络安装环境建立工具cobbler/kickstart
批量Linux 网络安装环境建立工具网络安装服务器套件: Cobbler(Red Hat 2008年发布的项目) Kickstart(Red Hat08年前项目,相关脚本令人望而却步,现 ...
- Tornado基本使用
一.快速上手 #!/usr/bin/env python # -*- coding:utf-8 -*- import tornado.ioloop import tornado.web class M ...
- 322. Coin Change
动态规划里例题,硬币问题. p[i] = dp[i - coin[j]] + 1; 注意i < coin[j] dp[i-coin[j]]无解都要跳过. public class Solutio ...
- Linux安装Git
(1)下载git压缩文件,使用当前的用户yum安装git,先下载再安装,其中有一次需要输入Y sudo yum install git-all 服务器回应,其实除了安装git之外,也会安装其他需要的依 ...