gpt4 book ai didi

android - 需要指导将现有的 C++ 代码集成到 Android NDK

转载 作者:行者123 更新时间:2023-11-30 04:03:09 25 4
gpt4 key购买 nike

我有一些其他人已经编写的 C++ 代码(与微 Controller 交互)。我学习了 android 和 NDK,并且很乐意编写小示例程序。现在我需要整合两者。

那么,我应该如何开始进行集成部分呢? NDK 实际上是如何工作的?假设我现在有 3 个部分 A - C++ 代码,B - NDK native 接口(interface)代码,C - Android Activity/Class。

1)是否应该编译A(g++ linaro),然后将目标文件放在Android项目中,由C通过B调用?

(或)

2) 我应该使用 g++ (linaro) 一起编译 A 和 B,然后将 .so 文件复制到 Android Eclipse 项目中吗? (不确定在普通 eclipse 中模仿 NDK-build 命令会有多复杂)。

(或)

3) 将 A 复制到 Android Eclipse 项目中并生成 java.h 文件,然后使用 A 和 B 生成 .so 文件。(在这种方法中,我需要找到正确的位置将整个 CPP 项目文件放在Android/NDK eclipse 项目)。

PS:我试图找到执行此操作的示例,但似乎只找到了简单的基本示例,我已经很乐意创建这些示例了。我在集成部分需要帮助,如果您知道 (Android/NDK/Eclipse/already_existing_C++_code),请将教程发给我。

最佳答案

您应该使用 Android 工具链编译 A。请注意,Android 不仅支持 ARM(也称为 armeabi),还支持 armv7ax86mips,以及最近 - armeabi-v7a-hard。很快,x86-64 将是 released .

可以用Android编译A standalone toolchain ,无需采用NDK构建系统。

您可以将 B 作为 A 的一部分或单独编译。在后一种情况下,只需在 Java 静态构造函数中在 B 之前加载 A:

{
loadLibrary("A");
loadLibrary("B");
}

因为 libB.so 将依赖于 libA.so。

您可以在 APK 中打包 libA.so 和 libB.so(在文件夹 libs/armeabilibs/x86 等文件夹中)

关于android - 需要指导将现有的 C++ 代码集成到 Android NDK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24665736/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com