【IT专家】在Android NDK中,将字符串传递给c代码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

本文由我司收集整编,推荐下载,如有疑问,请与我司联系
在Android NDK 中,将字符串传递给c 代码
2012/07/19 7918 The program should take an Image from the SD card and adjust its
brightness. And the image is taken from the SD card via the NDK C-code. It is to be noted
that the string depicting the path to the image is passed to the NDK via JNI.
程序应该从SD 卡中取出图像并调整其亮度。

图像通过NDK C-code 从SD 卡中提
取。

需要注意的是,描述图像路径的字符串通过JNI 传递给NDK。

Java code:
Java 代码:
private void adjustBrightness() { imagePath = (Environment.getExternalStorageDirectory().getPath()+”earthglobe.jpeg”).toCharArray(); brightness(imagePath, brightness);public native void brightness(char[] imagePath, float
brightness); NDK code:
NDK 代码:
JNIEXPORT void JNICALL Java_com_example_ImageActivity_brightness(JNIEnv * env,char[] bitmappath, jfloat brightnessValue) string bmpath = bitmappath+’\0’;jobject obj = fopen( bitmappath , “rb” );在Java 中使用:
public static native void brightness(String imagePath, float brightness); In native use: 在本机使用:
std::string ConvertJString(JNIEnv* env, jstring str) if ( !str ) LString(); const jsize len = env- GetStringUTFLength(str); const char* strChars = env- GetStringUTFChars(str, (jboolean *)0); std::string Result(strChars, len); env- ReleaseStringUTFChars(str, strChars); return Result;JNIEXPORT void JNICALL Java_com_example_ImageActivity_brightness(JNIEnv * env, jobject obj, jstring bitmappath, jfloat brightnessValue) std::string bmpath = ConvertJString( env, bitmappath ); FILE* f = fopen( bmpath.c_str(), “rb” ); // do something useful here fclose( f );tips:感谢大家的阅读,本文由我司收集整编。

仅供参阅!。

相关文档
最新文档