使用 C++ 和 Java 进行 Android 开发(使用不使用其中之一)
Using C++ and Java for Android Development (using togther not one or the other)
>编辑:与Java与C++不同,我问的是一起使用它们
有很多问题询问是否使用Java和C++进行Android开发,关于性能,复杂性和可用API的争论。我很好奇你是否可以使用 C++ 和 Java 来制作一个 android 应用程序,如果是这样,应该用于它们之间的交互内容和方式。
我的想法是按如下方式使用它们:
C++- 数据库调用,复杂算法,任何需要更快性能
的Java-API调用,UI/UX等。
基本上,提供媒体文件和信息的客户端/服务器应用程序的哪些功能将受益于C++的性能,哪些功能应该只在 Java 中
进入C 或 C++ 的唯一 3 个真正原因。
1(您正在编写需要在多个平台上运行的复杂逻辑。 这意味着它可以在多个平台(iOS,Android,PC,Mac,Linux和几乎任何嵌入式平台(之间共享。 除了前端网络之外的任何东西(。
2(您有一个现有的 C 或 C++ 库,您需要编写 Java JNI 绑定。
3(您必须编写性能非常高的代码。 几乎只有游戏、视频处理和数值处理属于这里。 数据库调用不是 - 它们不是很耗时(数据库本身可以,但数据库本身通常已经是用 C 编写的(。 如果你认为调用数据库是一个问题 - 我认为你没有很好地掌握程序中实际需要时间的内容。
就像我们许多人一开始所做的那样,我认为你首先必须通过创建你的"hello word"Android应用程序来玩,当然你会使用Java。
之后,当您稍微了解了 Android 应用程序的构造方式时,您可以尝试安装 NDK 并尝试在 C/C++ 中实现一些本机功能。您将看到两个部分之间的接口有局限性。
假设我是否会在不知道结构的情况下使用一种语言或另一种语言是没有意义的。
- 我应该使用什么来代替void作为变体中的替代类型之一
- 如何确保在使用基于布尔值的两个方法之一调用方法时避免分支预测错误
- 如何用RISC-V GD32VF103CBT6开发板卸载精确的ADC过采样
- 当我在其中一个线程执行中(在activemq-cpp中)捕获到特定值时,我如何终止/停止所有其他线程
- 我正在开发服务器,ip作为参数传递不起作用
- 其中降频广播实际上是有用的
- 如何生成一个随机的 n 位数,其中 n 是任意的
- 容器,其中每个项可以有多个非唯一键 (c++17)
- 如何读取 C++ SAFEARRAY**,该 SAFEARRAY** 是 COM 互操作的结果,其中 C# 返回值为
- 初始化向量数组,其中每个向量的大小为 0
- 如何使用 GPS 和指南针开发点移动算法
- 创建具有两个视口的Qt3D C++场景,其中显示适当的不同网格
- AWS IoT 开发工具包:通过 TCP 端口 443 使用 MQTT
- 我已经建立了递归关系,它找到了两个字符串之间最长的连续公共字符串,我怎么能跳过其中一个字符串中的一个字符
- 模板化类如何解析在其类型之一上调用的重载非成员函数?
- 使用AAR的虚幻安卓开发
- 如何定义自定义生成配置类型,其中通常是.exe的目标改为 DLL
- 为什么开发人员将C / C ++用于嵌入式系统,而不是像Python这样的高级语言与C相比?
- 使用 C++ 和 Java 进行 Android 开发(使用不使用其中之一)
- 关于实施其中之一的CPP,这三个规则究竟是什么?