android 字符串函数,Android JNI开发系列(六)字符串操作
JNI字符串操作
字符串是引用数据类型,不属于基本数据类型
Java 使用unicode编码,C使用UTF-8,所以在操作中
C语言的字符串操作在头文件中
示例代码
public native String sayHello(String string);
public native String subStr(String string);
public native String stringFromJNI();
JNIEXPORT jstring JNICALL
Java_org_professor_jni_MainActivity_sayHello(JNIEnv *env, jobject instance, jstring string_) {
//函数内部会分配内存空间
//JNI_FALSE 代表不拷贝jstring对象的字符串序列
//JNI_TRUE 代表拷贝jstring对象的字符串序列
const char *string = (*env)->GetStringUTFChars(env, string_, JNI_FALSE); //0代表JNI_FALSE
char buff[100] = {"I am from C \n"};
strcpy(buff, string_);
//释放函数内部内存空间
(*env)->ReleaseStringUTFChars(env, string_, string);
return (*env)->NewStringUTF(env, buff);
}
JNIEXPORT jstring JNICALL
Java_org_professor_jni_MainActivity_subStr(JNIEnv *env, jobject instance, jstring string_) {
// const char *string = (*env)->GetStringUTFChars(env, string_, 0);
//获取字符串长度
int strLength = (*env)->GetStringUTFLength(env, string_);
char buffer[strLength];
//截取字符串长度 内存没有分配,不用调用ReleaseStringUTFChars
(*env)->GetStringUTFRegion(env, string_, 5, strLength - 5, buffer);
strcpy(buffer, "\n");
// (*env)->ReleaseStringUTFChars(env, string_, string);
return (*env)->NewStringUTF(env, buffer);
}
JNIEXPORT jstring JNICALL
Java_org_professor_jni_MainActivity_stringFromJNI(JNIEnv *env, jobject instance) {
return (*env)->NewStringUTF(env, "I am form c");
}
android 字符串函数,Android JNI开发系列(六)字符串操作相关推荐
- Android Studio 下安卓 jni 开发错误 undefined reference to AndroidBitmap_getInfo
博客: 安卓之家 微博: 追风917 CSDN: 蒋朋的家 简书: 追风917 又掉坑里了 今天开发 uvc,又遇到了坑: 和之前的这个坑类似:Android Studio 下安卓 jni 开发错误 ...
- Android Studio1.4.x JNI开发基础-基本环境配置
从Eclipse时代到Android Studio普及,开发工具越来越好用.早些时候还需要安装Cygwin工具,从Android Studio1.3以后,在Android 环境开发JNI程序搭建开发环 ...
- openresty开发系列28--openresty中操作mysql
openresty开发系列28--openresty中操作mysql Mysql客户端 应用中最常使用的就是数据库了,尤其mysql数据库,那openresty lua如何操作mysql呢? ...
- Android Studio1.4.x JNI开发基础 - 简单实例
接上一篇,搭建好基于Android Studio的环境之后,编写native代码相对来说也比较简单了.在Android上编写Native代码和在Linux编写C/C++代码还是有区别,Native代码 ...
- 深入浅出 - Android系统移植与平台开发(六)- 为Android启动加速【转】
本文转载自:http://blog.csdn.net/mr_raptor/article/details/8006721 Android的启动速度一直以来是他的诟病,虽然现在Android设备的硬件速 ...
- 基于Android的短信应用开发(六)——将发出短信存至数据库
到目前为止,我们所做的工作都是从手机数据库读取数据并加以显示,而这一次,我们要开始尝试其他类型的操作了,就是将用户发出的信息存至手机短信数据库中,按照惯例,还是先上图,看看效果怎么样再说吧. ...
- 微信小程序开发系列六:微信框架API的调用
微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 微信小程序开发系列三:微信小程序的调试方法 微信小程序开发系列四:微信小程序 ...
- JNI开发笔记(六)--一种更规范的so库生成方法
一种更规范的JNI工程写法 引 前言 1. MainActivity中的两个重要的语句 2. 建立Util类来替代MainActivity 3. 在MainActivity中验证JNI工程并生成so库 ...
- jni 传递字符串到java_Android JNI开发-java与c++其间的中文字符串传递
Android JNI开发---java与c++之间的中文字符串传递 最近在做一个Android电子词典,其中在从词库中读取词条时,用到了jni---java调用c++;在java代码里调用本地方法时 ...
最新文章
- java中的常用的文件流_Java 基础(四)| IO 流之使用文件流的正确姿势
- CSS,给我们不一样的体验
- weblogic集群的资料
- Java Applet 基础
- Wireshark技巧-过滤规则和显示规则
- LeetCode(1046)——最后一块石头的重量(JavaScript)
- Smartisan OS ROM 小米手机 2/2S 标准版 刷机教程
- 利用Calendar类判断是平年还是闰年
- PHP数据处理之下载远程图片到本地
- 【2019年05月28日】指数估值排名
- Oracle 应用篇+Oracle Siebel CRM
- mcdf项目验证总结-SV
- xmos固件u8_XMOS USB数字界面 模块 XU208 U8升级版CPL
- ProxySQL 配置详解及读写分离(+GTID)等功能说明 (完整篇)2
- txt文档在html中乱码怎么办,txt文件打开显示乱码怎么办?
- Dubbo入门教程,谈谈为什么要用Dubbo?
- ​Android动态加载so~
- Compact set,紧集,闭集,开集
- 漫漫D3路----W3C+CSS+JS
- 农行计算机类笔试好过吗,2020中国农业银行招聘笔试要多少分才能进入面试?...