我计划创建一个与 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/