Android开发之NDK(JNI)

16 篇文章 0 订阅

什么是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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值