Mac下编写Ndk(二):编写jni文件
来源:互联网 发布:敏捷网络是什么 编辑:程序博客网 时间:2024/06/04 19:10
一、编写java文件,如HelloWorld.java
package com.sample.jni;public class HelloWorld { public native void sayHello(); }
二、生成头文件,进入bin目录(就是存放java class的根目录),然后执行javah命令,生成头文件:
如至项目my_jni项目上执行以上几个步骤即可生成.h文件
.h内容类似下面的
/* DO NOT EDIT THIS FILE – it is machine generated */ #include <jni.h> /* Header for class com_sample_jni_HelloWorld */#ifndef _Included_com_sample_jni_HelloWorld #define _Included_com_sample_jni_HelloWorld #ifdef __cplusplus extern "C" { #endif /* * Class: com_sample_jni_HelloWorld * Method: sayHello * Signature: ()V */ JNIEXPORT void JNICALL Java_com_sample_jni_HelloWorld_sayHello (JNIEnv *, jobject);#ifdef __cplusplus } #endif #endif三、在.cpp文件中编写
JNIEXPORT void JNICALL Java_com_sample_jni_HelloWorld_sayHello
(JNIEnv *, jobject);方法中的实现
(JNIEnv *, jobject);方法中的实现
编写C++代码需要一点准备工作,让java项目支持C++,这需要你的Eclipse安装CDT。
3.1步骤:
3.2步骤 :
3.3步骤:
为项目增加C++支持后,打开头文件(com_examples_jni_HelloWorld.h)会有警告,因为项目没有设置C++常用头文件的路径。我们要通过设置,把C++基本头文件和java的jni需要的头文件加上。在项目属性中设置:
3.4步骤:
内容为:
/usr/include/c++/4.2.1 /System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers3.5步骤:
内容:/Users/lanhongmei/application_files/installing_files/android-ndk-r8d/platforms/android-14/arch-arm/usr/include
需要设置构建工具的路径,和之前jni项目不同,后者直接使用gcc来做。
内容为:/Users/lanhongmei/application_files/installing_files/android-ndk-r8d/build
这里,第一个是GCC的C++需要的头文件目录,第二个是jni需要的。
可以编写C++实现代码了:
因为是动态库,因此这个代码是不能执行的,需要调用执行。编译直接用command+b即可。
- Mac下编写Ndk(二):编写jni文件
- Mac下编写Ndk(一):准备环境
- 在Android Studio下编写JNI(二)NDK调用java
- android studio编写jni,ndk程序(不用mk文件)
- Android NDK: 用 NDK 编写 JNI
- android jni 的编写二 (NDK 开发中动态注册Jni)
- Android NDK--自己编写调用JNI
- Android For JNI(六)——交叉编译,NDK概述以及文件结构,编写自己的第一个JNI工程
- Android For JNI(六)——交叉编译,NDK概述以及文件结构,编写自己的第一个JNI工程
- Mac下安装NDK,进行JNI开发
- JNI编写
- Android NDK开发二 cmake脚本编写
- MAC 下编写opengl3+程序
- 通过JNI使用ndk来编写HelloWorld程序
- android ndk搭建以及JNI的Helloworld编写
- JNI入门,使用NDK编写自己的SO库
- NDK 包含头文件的mk编写
- Eclipse 下编写jni hello world
- 令人忧虑,不阅读的中国人
- MySQL学习之道:Load Data Infile批量导入数据
- 桌面底部的任务栏不见了的时候应该怎么办
- js和jquery插件网址
- Unity3D 模型制作规范
- Mac下编写Ndk(二):编写jni文件
- python 如何能否自定义模块路径? 添加自定义模块 函数 python
- C#导出Visual FoxPro(.dbf)数据库文件
- Android电话来电流程源码分析
- Programmer’s dilemma
- Oracle 数据的导入导出
- JavaScript世界的一等公民 - 函数
- 关于Ant的全面了解
- Cocos2d-x Sqlite3数据存储