天天看点

Android For JNI(一)——JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序,使用C启动JAVA程序Android For JNI(一)——JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序

当你的android之旅一步步的深入的时候,你其实会发现,很多东西都必须去和framework或者底层打交道,还有就是混合编程之类的,以及新语言,新特性,各种牛人研究的黑科技,应接不暇,技术更新迭代太快了,我们要赶紧加快步伐了,今天就开始来入坑了——jni,这个坑是必须要进的,啥也不说了,老司机,带我!
java native interface(java本地接口) 说白了,jni相当于一个协议,通过这个协议沟通java代码和外部的本地代码(c/c++),通过这个协议,这两门语言就可以相互调用了
Android For JNI(一)——JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序,使用C启动JAVA程序Android For JNI(一)——JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序
这个和我本身要学这个jni的目的是一样的,我现在就在做车载方面的

1.物联网,智能家居,车载电脑

2.效率上c/c++语言效率更高

3.代码移植,复用已经存在的c代码

4.java反编译比c语言容易

1.java语言

2.c/c++语言

3.java jni流程

4.ndk(native development kits)

我们从c/c++语言开始学起,慢慢来完善jni
新知识,涨姿势嘛,总是要学的,各位看官老爷倾听我慢慢道来,要用jni调用c的话,其实还有一个痛点,就是你必须会这门语言才吃到怎么去用他的方法,所以我们必须花上几天的时间把c的基本概念和知识点给学会,其实编程思想有点类似,java和c有一些基本的东西还是类似的,主要是c的指针还是有点抽象,跟以前学面向对象一样一样的,哈哈,污污污污….工欲善其事必先利其器,我们先把学c所用到的开发环境给部署一下
这个工具也只是让我们更加的熟悉语法,随便搜索一下就能下,属于一个轻量级的开发工具,我们下载下来安装
Android For JNI(一)——JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序,使用C启动JAVA程序Android For JNI(一)——JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序
安装完成之后我们就可以运行了
Android For JNI(一)——JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序,使用C启动JAVA程序Android For JNI(一)——JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序
当我们一切都准备好了的时候,我们就可以来编写程序了,也就是注明的“hello world”,现在看到helloworld是不是有一种很怀念的感觉 我们点击左上角的文件-新建-源代码,写上这么一段代码(先不要管什么意思,照着敲就行)
然后我们把他保存为c文件
Android For JNI(一)——JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序,使用C启动JAVA程序Android For JNI(一)——JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序
我们要运行就得编译,用惯了eclipse,eclipse有自动编译的选项,而dev-c++是没有的,我们手动编译一下
Android For JNI(一)——JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序,使用C启动JAVA程序Android For JNI(一)——JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序
我们可以看到上面有条工具栏,第一个就是编译了,第二个就是运行
Android For JNI(一)——JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序,使用C启动JAVA程序Android For JNI(一)——JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序
出现done说明编译完成,我们可以运行了,不过编译会一闪而过,因为是命令窗,具体的停留的我忘记了,和提前java有点类似 这里只要注意一点的是main。在c中,main函数也是程序的入口吗,c中的函数和java的方法是一个概念,只是叫法不一样
c是可以直接调用windows指令的,既然如此,我们可以仿照我们程序的快捷方式的例子去做一个软启动方式,说起来有点迷糊哈,我们举个例子,我们来到eclipse的安装目录,你可以看到这样的一个目录
Android For JNI(一)——JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序,使用C启动JAVA程序Android For JNI(一)——JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序
其中,我们的快捷方式只有只有314k,却能启动这个程序,这就是windows的特长了,而我们的c是可以直接使用windows的指令的,所以我们就可以间接的使用c去调用java了 回到正题,我们刚才举的例子,其实从快捷方式的配置文件eclipse.ini中就可以详细的看到
Android For JNI(一)——JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序,使用C启动JAVA程序Android For JNI(一)——JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序
我们把他打开
我们不难发现,当我们启动的时候,他会执行plugins目录下的org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar架包,你双击他你会惊奇的发现,你竟然启动了eclipse,这就是windows启动的原理了,好了,既然逻辑通了,那我们就来写c代码吧!不过事先我们得准备一个java文件,我就把他放在c源码目录下好了
你可别忘了这个是要编译的….
Android For JNI(一)——JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序,使用C启动JAVA程序Android For JNI(一)——JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序
好了,写吧
这里,只要写一句
因为是同一个目录下,所以不需要写路径,我们运行就可以直接看到打印的helloworld了