public class HelloWorld {
public native void print(String str); //声明本地方法
public static void main(String[] args) {
new HelloWorld().print("world!");
//System.out.println(System.getProperty("java.library.path"));
}
static{
//System.loadLibrary("helloworld"); // 加载库文件
System.load("/Users/zhaoshun/solibs/libhello.so");
}
}
/**
*
* Class: jni_sample_HelloWorld
* Method: print
* Signature: (Ljava/lang/String;)V
*
JNIEXPORT void JNICALL Java_jni_sample_HelloWorld_print(JNIEnv *, jobject, jstring);
*/
#include <iostream.h>
#include <jni.h>
#include "jni_sample_HelloWorld.h"
using namespace std;
JNIEXPORT void JNICALL Java_jni_sample_HelloWorld_print(JNIEnv *env, jobject obj, jstring name)
{
const char* pname = env->GetStringUTFChars(name,NULL);
cout <<"Hello,"<< pname << endl;
}
/*
c文件中的这么写的
str = (*env)->GetStringUTFChars(env,prompt,NULL);
*/
编译
g++ -dynamiclib -o libhello.so HelloWorld.cpp -framework JavaVM -I/System/Library/Frameworks/JavaVM.framework/Headers
运行结果:
Hello,world!
分享到:
相关推荐
介绍了Android下jni的使用,使用学习使用。
Android调用C++接口调用技术Java Native Interface(JNI)详解,
《jni详解》这本书可以让你了解android c/c++ jni开发。
1、下载ndk 2、编写jni的加载类 参考例子: public class JniTest { public native String append(String str1, String...编写好jni加载类之后,就要开始生成.h文件了,此文件相当于一个声明文件,起到jni连接c++源
通过JNI可以使得Java与C/C++机型交互。即可以在Java代码中调用C/C++等语言的代码或者在C/C++代码中调用Java代码。由于JNI是JVM规范的一部分,因此可以将我们写的JNI的程序在任何实现了JNI规范的Java虚拟机中运行。...
适合对JNI尚不了解的开发者。介绍如何在Android环境下使用JNI已达到java与C/C++函数互调,描述如何在VM中调用C/C++函数。
总结了jni C C++中常用的函数的使用方法,并给出了实例源码。对于编写学习jni的人员有很大的帮助
JNI技术详解,帮你快速掌握Java调用C/C++的JNI技术。
从 C/C++ 中调用 Java 代码,有一下几个步骤: 1.创建 JVM。调用 JNI_CreateJavaVM()。 2.寻找要调用的类。调用 FindClass()。 3.找到要调用的方法。调用 GetStaticMethodID()/GetMethodID()。 4.运行方法。...
他定义了一些JNI函数,来让开发者可以通过调用这些函数来实现java代码调用C/C++代码。 2.如何使用JNI呢? 我们先将写好的C/C++代码编译成对应平台的动态库(windows是.dll文件,linux是.so文件)。 下面我们来举个...
详解C++的String类的字符串分割实现 功能需求,输入一个字符串“1-2-3”切割出“1”、“2”、“3”。在Java下直接用String的split函数就可以了。c++下String没有直接提供这个函数,需要自己写。 网上给出的解决方案...
主要给大家介绍了关于Android串口开发之使用JNI实现ANDROID和串口通信的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
对于java程序员来说,java语言的好处和优点,我想...它使得在 Java 虚拟机(VM) 内部运行的Java 代码能够与用其它编程语言(如 C、C++ 和汇编语言)编写的应用程序和库进行互操作。JNI 重要的好处是它没有对底层 Java
Android studio 编译第一个NDK程序的详细教程的代码,附上Android studio编写第一个NDK工程的过程详解文章的链接https://blog.csdn.net/weixin_37639900/article/details/89680670
通过c++来实现tea加密算法,最终编译成so文件,以JNI的方式提供给客户端调用,主要需要解决以下三个问题: 实现tea算法,这都有开源的代码可以实现; 解决padding问题; 密钥做一个混淆,防止编译生成的库文件...
JNI 是Java Native Inteface的缩写,是Java中定义的一种用于连接Java和C/C++接口的一种实现方式。 NDK NDK 是 Native Developmentit的缩写,是Google在Android开发中提供的一套用于快速创建native工程的一个工具。 ...
首先下载配置android ...生成c++头文件 然后在windows控制台Terminal进入hello.java所在的目录执行javac hello.java,如下 执行完毕后hello.java的同级目录下面会生成一个Hello.class文件,证明这一步成功啦! 然后
C调用java程序详解和源代码,前一阵子,趁有机会了解了JNI的一些东西,并按我的方法对JNI做了些封装,我就可以在C++ 中调用一些java写的功能了
一定要选择Native c++类型,最后要选c++11支持。 SDK设置: File->Settings File->Project Structure 首先确定工程的目录结构,然后尝试运行一下工程,使用模拟器,确保工程没问题, 在MainActivity的同级目录,...