NDK系列文章(一)—— NDK概览

本文介绍了JNI的基本概念,作为Java调用C/C++代码的桥梁。接着,阐述了NDK在Android开发中的作用,它是实现JNI的工具包。详细讲解了C/C++编译过程,包括预处理、编译、汇编和链接。同时,讨论了静态库和动态链接库的区别,以及在Android中使用动态链接库的情况。最后,探讨了交叉编译的概念,解释了如何在不同架构之间进行编译。
摘要由CSDN通过智能技术生成

JNI 简介

  • 名称:Java Native Interface 即Java本地接口
  • 作用:使得Java与本地其他类型语言(如C、C++)交互
  • JNI是Java调用Native语言的一种特性,JNI属于Java的,与Android无直接关系
  • Java通过JNI可以调动由C/C++实现的驱动,从而扩展Java虚拟机

实现步骤:

  • 在java中声明Native方法(即需要调用的本地方法)
  • 编译上述Java源文件(javac得到.class文件)
  • 通过javap命令导出JNI的头文件(.h文件)
  • 编译.so库文件
  • 通过Java命令执行Java程序,最终实现Java调用本地代码

NDK 简介

  • 名称:Native Development Kit,是Android的一个工具开发包
  • 作用:快速开发C、C++的动态库,并自动将so和应用一起打包成APK
  • 在Android的场景下使用JNI,提供了把.so和.apk打包的工具
  • NDK提供的库有限,仅拥有算法效率和敏感的问题
  • 提供了交叉编译器。用于生成特定的CPU平台动态库

NDK和JNI的关系

JNI是实现Java调用C/C++的途径,NDK是Android中实现JNI的手段,即在Android中通过NDK从而实现JNI的功能!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值