大多数人通过学习Java或Kotlin开始了他们的android之旅。这些是制作android应用程序时通常使用的语言。在进一步探讨Android开发时,您会遇到许多新主题。 NDK是新的独特主题之一。在了解NDK之前,您可能熟悉支持Java的SDK(软件开发工具包)。因此,现在让我们探究NDK是什么,为什么它有用呢?
什么是NDK?
NDK代表本机开发套件是一组工具或工具集,可让我们在Android应用程序中使用C / C++ 。那不是很酷吗?之所以称为本机,是因为其中使用了本机代码语言,例如C和C++。
为什么NDK有用?
现在,我们将借助一个示例来回答这个问题。假设您想将关键函数或特定于处理器的代码添加到您自己的应用程序中,这将需要高性能,仅使用Java 。它不会成功,因此为了获得以下要求,您必须使用C或C++,这将使其运行得更快。但是,即使我们了解C或C++,我们如何在应用程序中实现它呢?因此,这是我们要求NDK集成本机代码语言以使其在应用程序上运行的地方。让我们看看使用NDK的更多优势:
- 它提供了一种将等效的本机库嵌入apk的方法。
- 它几乎无需重新编译即可运行。
- 它可用于访问传感器等物理设备组件。
- 它使我们能够重用C / C++编写的代码。
它是如何工作的?
这就引出了下一个问题,即Java代码将如何与本机代码通信?从下面给出的图片中我们将理解这个问题:
首先,我们必须编写C / C++代码,然后再编写一个Makefile,在其中指定该应用程序需要定位的平台。我们使用ndk-build命令来构建.so文件的共享库。然后, Java程序使用这些共享的对象库并通过JN I调用本机函数。JNI是Java机接口,它为字节码定义了一种方式,字节码由Android编译用Java或Kotlin编写的代码以与本机代码交互。
结论
因此,通过阅读本文,我们了解了如何在Android应用程序中使用本地语言(例如C或C++)。当我们不需要某些高性能应用程序时,通常可以使用Java或Kotlin,但如果我们需要高性能应用程序,则需要使用本机语言。