您的位置:首页 > 移动开发 > Android开发

Android开发之NDK(JNI)

2016-08-11 19:17 176 查看

什么是JNI,什么是NDK?

我们都知道编程语言分为底层语言和高级语言;

底层语言

底层语言:能够直接访问并和硬件进行交互的语言。如C,C++,汇编语言,底层语言的主要应用场景:需要与硬件打交道,驱动程序,操作系统底层也是C/C++,手机底层驱动也是用底层语言写的,如android系统甚至应用开发都需要C/C++来直接和硬件通信,除此之外;由于底层语言出现的年代比较久,所以很多成熟,大型的架构系统都是用这些语言来写的,尤其是C++(虽然这门语言难理解)所以在高级语言的开发过程中使用底层语言是必须的,在android中很多框架都是用C/C++写的,如果你看过android系统架构图就知道,还有android一些设备驱动也是如此,android里面3D绘图也要借助底层语言来实现(因为已经有比较成熟的绘图框架了,再加之底层语言反编译难度大,可以起到代码保护作用),iOS也一样,Windows一样,OSX也一样

高级语言

高级语言;高级语言一般是一些面向对象的语言(也是因为编程语言的发展是由面向过程到面向对象),比如Java,PHP,RUB,其实C++也是。

高级语言之所以高级,并不是它真的能实现的东西比底层语言多,而是应用场景不一样,要求就不一样,高级语言更加抽象化,在语法上更加简单,适合做一些应用层面的东西,而且在实际的项目应用中,需要配合使用高级和底层语言(尤其是需要和硬件打交道,或者需要有高的响应速度比如游戏,银行系统,金融)甚至使用多种不同的高级或者底层语言

高级语言和底层语言通信

既然我们需要配合使用语言,所以就需要去设计一些通信的方式方法,也叫协议,规范。比如Java语言通常写一些应用层的东西,如果要使用C/C++语言怎么办,所以JNI就出来了

JNI=Java native interface Java本地调用接口

NDK =native development kit 本地开发套件,也就是android和C/C++语言通信的一些工具

SDK=software development kit 软件开发套件

一般NDK是配置在SDK目录里面的(不过默认是没有的,需要自己配置)

eclipse环境下配置参考文章

http://blog.csdn.net/lovexieyuan520/article/details/43212333
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐