栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

Android仓库建设——JNI的字符串交互处理

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android仓库建设——JNI的字符串交互处理


JNI的字符串交互处理

JAVA层和native层进行字符串交互处理:
1.进行字符串操作的时候,如果还想要进行别的操作可以参考官网的操作,比如在http://docs.oracle.com/javase/6/docs/technotes/guides/jni/spec/jniTOC.html网址内的String Operations中就存在着这些许多操作。
2.在MainActivity的中增加C语言的方法,这里只需要增加
public static native void updateFile(String path);
该方法即可。
3.对项目重新编译,重新获取到.h文件,可以查找
com_example_ndkdemp_MainActivity.h文件是否具有刚才写的方法。
4.在c文件里面写刚才写的方法内容,直接从.h文件拷贝方法名。
5.利用
(env)->GetStringUTFChars(env,path,NULL);
方法获取到从JAVA传过来的路径指针:const char file_path
并进行字符串操作,下面的操作是关于写入一个文件中的操作:
//生成native的Char指针
const char file_path=(env)->GetStringUTFChars(env,path,NULL);
if(file_path!=NULL){
LOGV("from C file_path %s", file_path);
}
//打开文件,进行追加打开
FILEfile=fopen(file_path,"a+");
if(file!=NULL){
LOGV("from C open file success");
}
//写入文件
char data[]="I am Boy";
int count=fwrite(data,strlen(data),1,file);
if(count>0){
LOGV("from C write file success");
}
//关闭文件
if(file!=NULL) {
fclose(file);
}
//释放资源
(env)->ReleaseStringUTFChars(env,path,file_path);

注意项目错误: LOGV("from C file_path %s", file_path);需要添加新的消息的时候注意按照C的格式操作,%s代表是字符数组。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/233899.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号