android ndk 给结构体赋值的方法
16lz
2021-01-25
转自:http://www.cnweblog.com/fly2700/archive/2012/03/21/320083.html
1,java 代码 结构体定义
1 public class MediaInfo2 {3 public int nWidth;4 public int nHeight;5 public String strStream;6 }
java jni接口定义
public native static int GetMediaInfo(int handle, MediaInfo info); //
c++ ndk 实现代码
1 JNIEXPORT jint JNICALL Java_src_jni_RtspConnect_GetMediaInfo 2 (JNIEnv *e, jclass c, jint h, jobject o) 3 { 4 //获取Java中的实例类 5 jclass objectClass = (e)->FindClass("src/jni/MediaInfo"); 6 7 //获取类中每一个变量的定义 8 jfieldID strStream = (e)->GetFieldID(objectClass, "strStream", "Ljava/lang/String;"); 9 jfieldID nHeight = (e)->GetFieldID(objectClass, "nHeight", "I"); 10 jfieldID nWidth = (e)->GetFieldID(objectClass, "nWidth", "I");11 12 13 //给每一个实例的变量付值 14 (e)->SetIntField(o, nHeight, 10); 15 (e)->SetIntField(o, nWidth, 100);16 (e)->SetObjectField(o, strStream, (e)->NewStringUTF("my stream")); 17 18 return 0; 19 }
Java 调用
1 MediaInfo info = new MediaInfo();2 RtspConnect.GetMediaInfo(0, info);3 Log.i("info", ""+info.nHeight);4 Log.i("info", ""+info.nWidth);5 Log.i("info", ""+info.strStream);
更多相关文章
- 从dumpsys自定义服务来认识Android(安卓)binder
- Android(安卓)Vibrator震动效果
- Android(安卓)XmlResourceParser解析Xm文件实例
- Android(安卓)中的menu以及自定义menu
- Android(安卓)下的 makefile 组织结构
- Android多视图(View)切换
- ubuntu gradle编译总结
- android通过ContentProvider实现应用间的数据共享
- 整理出15个Android很有用的代码片段(技巧)ophone