如何使用NDK和C ++文件创建简单搜索

时间:2015-04-20 10:32:51

标签: java android c++ android-ndk

我是JNI和NDK代码中的菜鸟,我必须创建一个方法来使用静态库,其中包含许多用C ++创建的方法和标题。我必须用Java调用它们。我会尝试解释我的问题,我想解决这个问题很多天。

我会试着用一些代码解释一下。

我在cpp中搜索此方法:

#include <iostream> 
#include <HDTManager.hpp>

using namespace std;
using namespace hdt;

int main(int argc, char *argv[]) {
// Load HDT file
    HDT *hdt = HDTManager::mapHDT("/storage/emulated/0/Download/linkedmdb.hdt");

// Enumerate all triples matching a pattern ("" means any)

IteratorTripleString *it = hdt->search("","","Batman");
    while(it->hasNext()){
            TripleString *triple = it->next();
            cout << "Result: " << triple->getSubject() << ", " << triple>getPredicate() << ", " << triple->getObject() << endl;
    }
    delete it;
    delete hdt;
}

我有一个扩展名为“.a”的静态库,其中包含search.cpp所依赖的所有头文件和代码。

总之,我的问题是,如果你能帮助我创建一个从本机调用中使用这个方法的Java类,那么我可以阅读很多页面而且我不能这样做。我认为我必须在一个jni文件夹中的cpp文件中创建这个方法到Android项目中并创建一个使用静态库“libhdt.a”的Android.mk,这样可以创建一个共享库“.so” Android代码使用loadLibrary方法使用。

另一个问题是如何加载包含我必须搜索的数据的库,位于movile手机的存储中,我在说这个代码行:

HDT *hdt = HDTManager::mapHDT("/storage/emulated/0/Download/linkedmdb.hdt");

0 个答案:

没有答案