使用JNI,在java端调用c/c++

摘自:Android.NDK.Beginners.Guide. 第3章:Interfacing Java and c/c++ with JNI

Android离不开Java。虽然它的内核与关键库都是本地的,但应用程序框架差不多完全采用java或者说是仅封装在一个java层中。显然,有些库是可以直接从本地代码中访问,比如Open GL(第6章会讲述)。然面,大多数API只能从java端调用。不要期望直接用c/c++来创建你的应用界面。技术上来讲,现在还不能做到完全不使用java来创建一个应用程序。但最好,我们可以将java藏于表面之下。

因此,如果不将本地的c/c++代码与java结合使用,那么本地代码将显得毫无意义。如前一章所述,本地代码专注于java本地接口框架。JNI是Sun公司标准化的一个技术规格。它在JVM中得以实现是为了以下两个目的:允许java调用本地代码  和  允许本地代码调用java。在java与本地代码中,它是一个又向桥梁;但对于在你的java应用中释放c/c++的能量,它是唯一的途径。

在本章,我们将学习以下内容:

  1. 如何传入\传回java的基本类型、对象、数组;
  2. 在本地端处理java对象引用;
  3. 从本地端抛出异常。

JNI是一个广泛而又高级的技术主题,它需要一整本书才能完全介绍它。因此,本章将主要介绍搭建java与c/c++桥梁的必要知识。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值