热门文章
联系方式
您现在的位置:主页 > 热门文章 > 内容

Android中关于JNI 的学习(零)简单的例子,简单地入门

发布时间:2019-01-26 编辑:环亚

Android中JNI的作用,就是让Java能够去调用由C/C++实现的代码,为了实现这个功能,需要用到Anrdoid提供的NDK工具包,在这里不讲如何配置了,好麻烦,配置了好久。。。

本质上,Java去调用C/C++的代码其实就是去调用C/C++提供的方法,所以,第一步,我们要创建一个类,并且定义一个Native方法,如下:

JniTest类:

public class JniTest {

	public native String getTestString();
}

可以看到,在这个方法的前面,用到了native关键字。

接着,我们要在命令行中编译这个java文件,得到一个class文件,如下:


我们可以看到,在这里面有一个方法,名称是Java_com_lms_jni_JniTest_getTestString,够复杂吧,其实如果我们知道这个名称规则,并且知道如何去实现这样一个方法的话,我们是完全可以不生成这个头文件的,我们可以直接写出对应的C文件。

接下来,在jni文件中创建一个对应的C文件,名称是值得并无所谓,但为了统一,我们就把它叫JniTest.c吧,如下:


然后在Activity中,我们要加载这个so库,如下:

public class HwDemo extAAAs Activity {

	static {
		System.loadLibrary("com_lms_jni_HwDemo");//加载so库
	}
	
	public native String printHello();	

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);		
		setContentView(R.layout.main);
		TextView tv = (TextView)findViewById(R.id.tvJni);
		JniTest jniTest = new JniTest();//调用JniTest文件的方法
		tv.setText(jniTest.getTestString());
	}

}

1)利用static静态代码块,加载so库文件,可以看到在这里,这个名称就是Anrdoid.mk中定义的LOCAL_MODULE值。

2)创建JniTest对象,调用其getTestString()方法,最终显示结果如下:

下载!

http://www.bkjia.com/Androidjc/767175.htmlwww.bkjia.comtruehttp://www.bkjia.com/Androidjc/767175.htmlTechArticleAndroid中JNI的作用,就是让Java能够去调用由C/C实现的代码,为了实现这个功能,需要用到Anrdoid提供的NDK工具包,在这里不讲如何配置了,好...

本文源自: 凯发国际

上一篇:AndrowListView实现(自定义游戏列表)android中不推荐的方法,要考虑向下兼容,用了推荐的新方法,可能不

下一篇:没有了

Copyright © 2005-2016 http://www.erlygoods.com 凯发国际_凯发国际开户礼金_凯发注册送_搜狐财经版权所有 凯发国际_凯发国际开户礼金_凯发注册送_搜狐财经