android - 手动调用 android_main(struct android_app* state)?

标签 android android-ndk java-native-interface vuforia powervr-sgx

我正在使用 powervr sdk 在使用 vuforia 引擎创建的相机 View 之上绘制 3d 模型。

整个 powervr 代码是完全原生的,由 android_app_glue 调用。要开始渲染,调用 android_main(struct android_app* state)。我想从我的一个 native 函数中自己调用此函数,而不是在某些 NativeActivity 的 onCreate 中调用它。

最佳答案

Android Activity 生命周期是在 Java 中完成的,android_main(不同于 Linux/OS X/Windows 上的 main)不被操作系统调用,而是被调用通过 Native App Glue,它由 Java 中的 android.app.NativeActivity 和主库中的 android_native_app_glue.c 组成,并将事件代理到本地库中的单独线程.

提供胶水只是为了方便,您可以完全不使用胶水并自行重新实现功能,也可以修改/扩展胶水。

所以,如果你想使用胶水,你可以从 android_native_app_glue.c 中删除 android_main 调用,但确保在你制作你的胶水之前正确初始化胶水自己调用 android_main

关于android - 手动调用 android_main(struct android_app* state)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21699604/

相关文章:

android - Android 上的 Gmail/iOS 上的默认邮件应用缩小文本

android - 定义宏以在android中使用文件和行记录错误

android - 无法使用模拟器,使用 react-native 和 expo

android - 如何将我的应用程序的所有声音静音?

android - 适当的音频捕获和降噪

android - 如何自动将 "Add native support"到从现有源创建的 Android 项目?

android - 从 Android 上的 NativeActivity fopen/fread APK 资源

android - 我需要 root 权限才能在 Android 下执行 native 应用程序?

java - 如何从java调用c++目标文件中的函数?

tomcat - Tomcat UnsatisfiedLinkError 中的共享 native 库