extern "C" {
jint
Java_com_cmcc_media_MicphoneService_setMicVolume(JNIEnv * jEnv, jobject jobj, jint volume)
{
...
}

cpp文件中如果不添加 extern "C" {}的话可能会导致java link lib error;

jstring 转string:
static char* jstring2string(JNIEnv* env, jstring jstr)
{
char* rtn = NULL;

jclass clsstring = (*env)->FindClass(env, "java/lang/String");

jstring strencode = (*env)->NewStringUTF(env, "utf-8");
jmethodID mid = (*env)->GetMethodID(env, clsstring, "getBytes", "(Ljava/lang/String;)[B");
jbyteArray barr= (jbyteArray)(*env)->CallObjectMethod(env, jstr, mid, strencode);
jsize alen = (*env)->GetArrayLength(env, barr);
jbyte* ba = (*env)->GetByteArrayElements(env, barr, JNI_FALSE);

if(alen > 0)
{
rtn = (char*)malloc(alen + 1);
memcpy(rtn, ba, alen);
rtn[alen] = 0;
}

(*env)->ReleaseByteArrayElements(env, barr, ba, 0);

return rtn;
}

或者
char* bytes = const_cast< char* > (env->GetStringUTFChars(string, NULL));
用完后 env->ReleaseStringUTFChars(string, bytes);


string转jstring:
static jstring string2jstring(JNIEnv* env, const char* pat)
{
jclass strClass = (*env)->FindClass(env, "java/lang/String");
jmethodID ctorID = (*env)->GetMethodID(env, strClass, "<init>", "([BLjava/lang/String;)V");
jbyteArray bytes = (*env)->NewByteArray(env, strlen(pat));
(*env)->SetByteArrayRegion(env, bytes, 0, strlen(pat), (jbyte*)pat);
jstring encoding = (*env)->NewStringUTF(env, "utf-8");
return (jstring)(*env)->NewObject(env, strClass, ctorID, bytes, encoding);
}

String16转String8:
String16 value;
String8 propvalue(value);

更多相关文章

  1. Android.mk 代码注释
  2. 关于Android中res等几种文件通过InputStream方式读入工程中
  3. Android(安卓)批量卸载手机上的apk
  4. android常见问题记录(03.13update)
  5. android中SharedPerferences保存数据
  6. Android(安卓)ant 命令行手动编译打包详解
  7. Android(安卓)Studio 在 win7 下的安装
  8. Android下Xml解析技术(四)、pull生成Xml文件
  9. android studio external tool 自定义工具

随机推荐

  1. 为什么你就不能加个空格呢?
  2. 每日一技|巧用 Telnet 调试 Dubbo 服务
  3. Azure Lab Service 体验
  4. 小奎因的 PYTHON 项目部署与调度直播分享
  5. 使用类型注解让 Python 代码更易读
  6. widnows 下如何使用 ping加时间戳,来ping
  7. 正式工作后的一些变化和感受
  8. 爬虫智能解析库 Readability 和 Newspape
  9. 这个面试官不讲套路,怎么上来就问个架构问
  10. Leader:这样的 Bug 你也写的出来???