java - 关于Android上JNI的问题

标签 java android c++ linux java-native-interface

我计划创建一个与 Windows CE 和 Android 设备兼容的软件。

目前还没有任何决定,但到目前为止,我认为我可以使用 C++ 代码编写程序的大部分,这些代码可以在这两个平台上重用,除了与系统相关的东西(如线程)。就我而言,强烈建议使用 C++ 来提高性能。

在系统依赖的情况下,我将创建以两种不同方式实现的接口(interface),一种使用 win32 API,另一种使用 linux 等价物。代码的其他部分(逻辑)将独立并在两个平台上重用。

应用程序中唯一不能用 C++ 编写的部分是用户界面。在 Android 平台上使用 Android API,在 Windows CE 上使用其他东西(C#、Java,还不知道)。

我读到 Android 与其他 Linux 发行版不同,因为它的本地代码无法提供许多 Linux 功能。

所以我的问题是:是否可以使用 JNI(即相当于 win32 api 但对于 linux)还是我总是必须将它们创建到 Java 层并将它们传递给 native 代码?

我还没有决定如何构建它,我只是在了解不同的可能性。

谢谢。

最佳答案

NDK 实现了 POSIX(包括 pthread、mutex)和 BSD 套接字,因此您无需使用 java 对象创建它们。

然而,STL 支持在我看来仍然很糟糕,您可能需要注意自己的代码或移植任何依赖库。

关于java - 关于Android上JNI的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28608923/

相关文章:

android - 如何区分来自 Cordova/PhoneGap 或其他(智能手机中的标准浏览器)的访问

java - 如何在 Android 中使用 java 在点击时放大/缩小 imageView?

android - 一般的 Android 解析器可以解析 Xforms 吗?

java - OpenCV 3.0.0 JAR 中缺少 HighGUI

c++ - 返回捕获局部变量的 lambda

java - 在 xml 自由配置中指定范围

java - 在 setter 中使用 "this"

c++ - 深度复制 C++ 中的内存泄漏

java - 如何在 JavaFX 中从数据库创建自定义 LookUp 搜索小部件

java - 禁用来自 Maven 的 project-info-reports-plugin 的所有报告