gpt4 book ai didi

android - 如何使用 JNI for android 调用类的 C++ 静态函数

转载 作者:太空宇宙 更新时间:2023-11-04 12:03:50 24 4
gpt4 key购买 nike

我正在做一个将使用 C++ 库的 android 应用程序。为此,我需要使用 Android-NDK 构建 C++ 项目。但我现在面临的问题是如何使用 JNI 调用 C++ 静态函数。

在我的 C++ 代码中,我有一个单例类。众所周知,要实现单例类,我们需要引入负责创建此类实例的静态函数。现在我需要的是使用 JNI 调用静态函数来创建一个我可以在我的 android 应用程序中使用的实例。

最佳答案

你可以在 JNI 端做:

long Java_mypackage_com_createSingleton(JNIEnv* env)
{
return MySingleton::getInstance();
}

bool Java_mypackage_com_useSingletonSomehow(long singleton)
{
return (MySingleton*)singleton->someFunc();
}

在单例类中:

   MySingleton* getInstance() 
{
if(instance_ == NULL)
{
instance_ = new MySingleton();
}
return instance_;

}

在 Java 方面:

package mypackage.com;

class SingletonUser
{
private long mSingletonInstance;

public SingletonUser() {
mSingleton = createSingleton();
}

public boolean someFunc() {
return useSingletonSomehow(mSingletonInstance);
}

private native boolean useSingletonSomehow(long instance);
private native long createSingleton();

关于android - 如何使用 JNI for android 调用类的 C++ 静态函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13006173/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com