【问题标题】:Android and Java's JNIAndroid 和 Java 的 JNI
【发布时间】:2012-01-07 17:31:01
【问题描述】:

我开始学习 java 的 JNI 以与 android 设备一起使用。

正如我在某处读到的,您必须为 C++ 部分准备一些“胶水”才能通过 JNI 加载。

我的问题是:是否可以在 C 语言中使用 run() 函数和 JNI 的胶水来运行真正的应用程序并仅将 java 作为入口点? 因为我不知道当通过 JNI 调用该 run() 函数时,如果该函数调用另一个函数等可能会导致问题。 感谢您的提示!

编辑:我想使用 ndk 用 C++ 编写代码,并试图避免用 java 编写代码。因此,我想知道a)我是否可以使用ndk在本机中编译和运行,或者b)我是否只能使用java来调用我的应用程序,例如:调用woth jni之类的app->run()并让它执行所有东西而不是java。那么,java 将仅充当入口点。

【问题讨论】:

  • 不太清楚您希望实现什么,您能否将其分解为您希望使用 JNI 实现什么的高级概述?
  • 我编辑了原始帖子以澄清它。
  • 你想做什么?为什么不想用java?
  • 不想使用Java,因为我不喜欢它(也因为我也不太了解它)。
  • 您可以使用 C++ 代码运行计算并执行后台操作,但您需要使用 Java 启动应用程序并通过 Activity 和 Application 生命周期之后的活动创建 UI。跨度>

标签: java android java-native-interface


【解决方案1】:

如果您想使用 C/C++(非 Java)并且为 Android 开发,您的目标是较新的设备(Gingerbread、android-9 应用平台以上),请考虑使用 NativeActivity。

参见http://developer.android.com/reference/android/app/NativeActivity.html 和NDK 包内的文件夹$NDK/docs/NATIVE-ACTIVITY.HTML 以及示例代码$NDK/samples/native-activity

祝你好运!

【讨论】:

  • 谢谢,这就是我一直在寻找的东西 :)
【解决方案2】:

我在下面的帖子中做了一步一步的操作:How to create dll using android如果你有不明白的地方,你可以阅读并提出问题。

【讨论】:

    猜你喜欢
    • 2016-07-13
    • 1970-01-01
    • 2011-09-07
    • 1970-01-01
    • 2014-02-01
    • 1970-01-01
    • 2011-10-31
    • 2011-03-20
    • 1970-01-01
    相关资源
    最近更新 更多