安卓 NDK与JNI

一、简介

        Android NDK(Native Development Kit)是一套开发工具,允许Android应用嵌入由C/C++源代码编译来的本地代码(绕过Dalvik虚拟机),通过JNI(Java Native Interface)调用。JNI和Android没有关系,只是一种Java调用Native的机制,第三方应用可以使用JNI完成自己的C动态链接库(.so文件),但只是把.so文件放到文件系统的特定位置,而如果想把.so文件和.apk打包,则需要NDK。

        使用NDK有如下优点:1)保护代码,因为apk的java层代码容易被反编译,而C/C++库反编译较难;2)可以方便使用现存的开源库,因为其大部分都是用C/C++编写的;3)算法使用C/C++开发,可以提高程序执行效率;4)便于移植。但使用NDK会增加程序的复杂性,除非必须提高性能或使用第三方库,否则Google不建议使用NDK。

        JNI提供了一个在Java平台上调用C/C++的一种途径,与其他类似接口(如Netscape Java运行接口)相比,JNI在设计之初就确保了二进制的兼容性(允许一个程序在不改变其可执行文件的条件下在不同的编译环境中工作),因而JNI编写的应用程序兼容所有Java虚拟机。JNI有自己的原始数据类型和数据引用类型,如下表和下图。

                

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值