为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
Java Android C
图片描述
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代表是字符数组。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
移动开发工程师
手记
粉丝
33
获赞与收藏
1498

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消