首页 » Android程序设计:第2版 » Android程序设计:第2版全文在线阅读

《Android程序设计:第2版》第19章 Android本地开发工具箱

关灯直达底部

Java本地接口(Java Native Interface,JNI)是Java标准的一部分,它支持开发人员使用其他语言(如C和C++)编写本地方法,并从Java代码中调用这些方法。当你想要使用平台特定的功能或使用平台中的硬件资源,比如利用FPU指令集的扩展优势实现更快的数值计算,或者使图形计算密集型的代码充分利用OpenGL API时,该接口显得尤其有用。本章介绍的是JNI的基础,介绍使用Android NDK所必需的基础知识。关于JNI的更多信息,可查看Java本地接口规范(Java Native Interface Specification)(http://download.oracle.com/javase/1.5.0/docs/guide/jni)。

为了使Java编程人员开发起来更简单,JNI使得本地方法使用Java对象就和Java代码使用这些对象一样。在本地方法中,可以创建和使用Java对象。支持访问和使用Java对象这一特性,使得本地方法可以通过Java应用传递的对象的引用来使用其他Java对象。

当你希望使用平台特定的功能或者充分利用平台硬件(且不能通过Android API来访问)时,JNI就特别有用,比如利用FPU指令实现更快速的数值计算。图形计算密集的代码会广泛使用OpenGL API,这是使用JNI的另一种方式。

本章将涵盖使用Android本地开发工具箱(NDK)的编程人员会涉及的一些JNI基础知识。NDK使得编译Android程序可用的代码变得更加简单。

当你在考虑是否需要使用本地代码来开发时,先斟酌一下你的需求,看看Android SDK提供的功能是否已经满足了你的需求。使用JNI会使程序调试变得更费劲,并且和NDK支持的CPU类型关联,目前只有两种:ARM和x86。