我是
Android新手.我有一个基本的hello-world本机代码函数,如下所示:
#include
#include
#include
#include
#include
#include
using namespace std;
/* This is a trivial JNI example.
* The string returned can be used by java code*/
extern "C"{
JNIEXPORT jstring JNICALL
Java_com_example_hellojni_HelloJni_stringFromJNI( JNIEnv* env, jobject thiz )
{
#if defined(__arm__)
#if defined(__ARM_ARCH_7A__)
#if defined(__ARM_NEON__)
#if defined(__ARM_PCS_VFP)
#define ABI "armeabi-v7a/NEON (hard-float)"
#else
#define ABI "armeabi-v7a/NEON"
#endif
#else
#if defined(__ARM_PCS_VFP)
#define ABI "armeabi-v7a (hard-float)"
#else
#define ABI "armeabi-v7a"
#endif
#endif
#else
#define ABI "armeabi"
#endif
#elif defined(__i386__)
#define ABI "x86"
#elif defined(__x86_64__)
#define ABI "x86_64"
#elif defined(__mips64) /* mips64el-* toolchain defines __mips__ too */
#define ABI "mips64"
#elif defined(__mips__)
#define ABI "mips"
#elif defined(__aarch64__)
#define ABI "arm64-v8a"
#else
#define ABI "unknown"
#endif
string s = returnit();
jstring retval = env->NewStringUTF(s.c_str());
return retval;
}
}
现在如果我从wherehere.cpp写如下:
#include
using namespace std;
string returnit()
{
string s="Hello World";
return s;
}
我可以通过编写fromhere.h文件并在其中声明returnit来包含fromhere.h,并在Android.mk的LOCAL_SRC_FILES中包含上述文件的名称,并且在我从java类创建的文本视图中出现“Hello World”.
但是我希望将这些fromhere.cpp和fromhere.h编译为prebuilt .so文件,构建ny ndk并使用returnit()函数.有人可以一步一步地向我解释如何在Android Studio中具体做到这一点吗?
如果我说废话,请纠正我.