我正在将许多 .so 库加载到 Android 应用程序中。当我进行 JNI 调用时,library.so 中的函数运行无限循环,因此它永远不会返回到调用函数。 我应该从 Java 线程进行 JNI 调用还是应该从库中的 pthread 加载函数?哪个更好?
第二个问题:当用户退出 MainActivity 时,如何确定库已卸载? 谢谢。
最佳答案
对于第一个问题,可能差别很小。当您与 Java 交互时,您的 native 线程将附加到 JVM。这取决于您是否想使用 pthread 或 Java 线程进行线程编程,以及哪种模型对您的特定应用程序最有意义。
就第二个问题而言,您需要编写一些清理代码来以优雅的方式解决这个问题。
关于java - 通过 Java 线程或 NDK pthread 加载 JNI 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24295599/