试着去完成,自己生成了一份com_test_GetMsg.h头文件,并完成test.c,生成libtest.so文件,JAVA调用SO文件时,屡次报:
  failed: Cannot load library: load_library(linker.cpp:761): not a valid ELF executable: /data/app-lib/com.example.iccommtest-libtest.so
  也是提供的SO无法load,是valid的。
  注意,刚才引用的实例是JAVA调用SO,而我需要的是android调用SO,不然会频繁上面错误。
  原因有两点:
  1、JAVA和android的虚拟环境不一样
  2、Linux和android的系统库文件不一样
  这样导致了在Linux下通过JNI标准命名方式编译的SO文件,在android是调用失败的,原因是Linux和android的系统库不一样,而生产的SO跟生产环境库文件有依赖关系,然后搭建了NDK和Cywin环境,然后生产的SO可以被android调用,
  那么SO文件必须完全遵循JNI命名规则,方法名是这样:
/*
* Class:     com_samples_jni_test
* Method:    GetMsg
* Signature: ()V
*/
JNIEXPORT jstring JNICALL Java_com_samples_jni_test_GetMsg
(JNIEnv *, jobject);
  通过NDK和Cywin生产libtest.so,android调用成功!