【问题标题】:Android "hello world" app in C++ without JNI没有 JNI 的 C++ 中的 Android“hello world”应用程序
【发布时间】:2015-10-02 22:14:47
【问题描述】:

我想用 C++ 编写一个简单的“Hello World”GUI(不是 CLI)应用程序并在我的 Android 设备上运行它。我尝试了 Android NDK 包中的 Hello-JNI 示例,但它也使用了一些 Java 代码,我想以纯 C++ 方式进行,而不使用 JNI。是否有可能或者我必须必须使用一些 Java 包装器?

如果用旧的方式来做会很好——不用 Eclipse,只需要一个 C++ 代码文件 + makefile。

【问题讨论】:

  • 我个人使用 c4droid 应用程序将 c++ 编译并导出为 apk。它将为您管理 jni。对于 GUI 和传感器,我根据项目使用 sdl2 或 sfml。对于非 GUI 项目,c4droid 会自动提供开源终端。

标签: android c++ android-ndk


【解决方案1】:

所有传统的 Android 应用程序,尤其是那些具有用户界面的应用程序,都需要用户可以从主屏幕的启动器启动的 Activity,并且 Activity 必须使用 Java。

欢迎 NDK 开发人员到 use NativeActivityActivity,这样这些开发人员就不必自己搞 Java。 a sample app 展示了它作为文档的一部分使用。

如果用旧方法来做会很好——不用 Eclipse,只需一个 C++ 代码文件 + makefile。

您当然不必使用 Eclipse,而且 Eclipse 支持将在大约 3 个月后结束,但如果您尝试创建传统的 APK 文件,则必须使用 Android SDK 和 NDK 工具链来创建 APK 文件安卓应用。

【讨论】:

    【解决方案2】:

    您不能只使用 C++ 代码并直接在 Java 中运行它。您需要以某种方式对其进行接口。您可以使用 JNI 桥接文件来执行此操作,在其中创建执行 C++ 代码的 java 方法,或者您可以创建一个接口文件,然后在调用 C++ .so 库文件方法的 java 类中将其实现为“本机”。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多