IT评测·应用市场-qidao123.com

标题: 在 Android 中使用 C/C++:初学者综合指南 [打印本页]

作者: 渣渣兔    时间: 2024-9-6 09:34
标题: 在 Android 中使用 C/C++:初学者综合指南
Java 作为一种编程语言,具有许多精良的功能,使其成为应用步伐开发的首选语言。它独立于平台(因为捏造机执行)、JIT 编译、多线程支持以及为步伐员提供的富有体现力的简单语法。由于其与平台无关的特性,Java 包可以跨 CPU 架构移植,这使得库开发变得更加轻易,从而增强了插件、构建工具和实用步伐包的整体生态系统。
功能数目与性能之间恰恰存在权衡。像汇编这样的语言具有最少的内存和执行开销,但从步伐员的角度来看,其功能数目也最少。在条理结构中向上移动,C 和 C++ 等语言提供了一组精良的功能,同时保持更接近底层硬件。在它们之上的是Java和Python等语言,它们选择通过使用捏造机来完全消除平台依靠。用这些语言编写的步伐有巨大的开销,但却是开发职员的天堂。
JVM 现在可以访问共享库中公开的函数,而且操纵系统根据需要执行它们。
一、为什么有人在他们的 Android 项目中需要 C/C++ 支持?

正如我们上面的讨论,在我们的系统中,性能比开发职员友好性更紧张,这将我们的重点从 Java/Kotlin 转移到了“原生语言”(C/C++)。让我们通过一些示例来了解本机代码的作用及其性能改进,


图:TensorFlow 源代码片断,表现了 arg_max 操纵的实现。图片参考:作者截图自GitHub上TensorFlow官方源代码
许多此类系统在牺牲可读性和其他一些因素的环境下维护性能。接下来,我们将简短讨论指令集架构 (ISA) 以及步伐执行如何随着 CPU 架构的变化而变化。
二、了解 C++ 如何集成到 Android 应用步伐中


图 1:Android 应用步伐如何使用 C++ 源代码的描述。
如上图所示,描述了 Android 中 C/C++ 代码的使用,此中存在两个独立的构建过程,一个用于 C/C++ 代码,另一个用于 Java/Kotlin 代码。在本博客中,我们将重点关注 C/C++ 代码构建过程,并了解代码如何与 JVM 通信以举行函数调用。
我们起首扼要概述一下 C/C++ 和 Java 步伐的编译方式,主要强调 C/C++ 编译的平台特定性。接下来,我们讨论 JNI,它充当 C/C++ 和 Java 代码之间的粘合剂。我们竣事对 CMake、共享库和 ABI 的讨论,它们是构建过程的最底层组件。
   正如 Reddit 用户建议的那样pjmlp,Android 不使用 JVM 在设备上运行应用步伐。它有自己的运行时,ART(Android RunTime)继续了 Dalvik 及其自定义字节码 DEX。
  让我们开始吧




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4