[android底层]jni中获取自定义的类函数编写
本案例中编写 android app中对应的jni函数
1
|
static native Student getStudent();
|
jni中获取自定义的类函数描述定向总结
定义一个char *指向自定义类
1、返回类型:jobject
2、获取自定义的类
3、通过自定义类的构造函数在jni中构建jobject类:获取方法的域id的描述符填写"<init>"
4、jni回调app中的特定方法来设置自定义对象
或者不使用回调来设置对象属性;set***Field
5、最后返回jobject对象
完整代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
const char * jnistudentname = "com/jniacpp/Student" ;
jobject getStudent(JNIEnv *env, jobject thiz){
jclass stuClass = env->FindClass(jnistudentname);
//取得构造方法的域id
jmethodID constuctId = env->GetMethodID(stuClass, "<init>" , "()V" );
// 构建obj对象
jobject stuObj = env->NewObject(stuClass, constuctId);
//取得特定方法的域id
jmethodID setStudentId = env->GetMethodID(stuClass, "setStudent" , "(ILjava/lang/String;Z)V" );
//调用app中的setStuudent函数
env->CallVoidMethod(stuObj, setStudentId, "110917010" , "mrzhang" , true );
/*
//取得各个属性的域id;
jfieldID nameID = env->GetFieldID(stuClass, "name", "Ljava/lang/String;");
jfieldID idID = env->GetFieldID(stuClass, "id", "I");
jfieldID isBoyID = env->GetFieldID(stuClass, "isBoy", "Z");
env->SetIntField(stuObj, nameID, 21);
env->SetObjectField(stuObj, nameID, env->NewStringUTF("zhang sir"));
env->SetIntField(stuObj, isBoyID, true);
*/
return stuObj;
}
|
本文转自lilin9105 51CTO博客,原文链接:http://blog.51cto.com/7071976/1422746,如需转载请自行联系原作者
[android底层]jni中获取自定义的类函数编写相关推荐
- 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 命令行中获取要调试的应用进程的 PID | 进程注入调试进程内存的 so 库 )
文章目录 一.Android 命令行中获取要调试的应用进程的 PID 二.进程注入调试进程内存的 so 库 一.Android 命令行中获取要调试的应用进程的 PID 前置博客 [Android 逆向 ...
- vue页面返回消息头获取_vue在响应头response中获取自定义headers操作
日常开发,我们可能会为了安全问题,保证第三方无法通过伪造返回报文欺骗前端,需要在返回报文中添加自定义参数,用于验证身份,后端添加自定义参数,前端校验自定义参数通过后才会执行相应的操作. 系统为了安全会 ...
- android 从资源中获取数组
8.1. 从资源中获取数组 8.1.1.概述 除了在Java代码中定义数组,Android还提供了在资源中定义数组,然后在Java代码中解析资源,从而获取数组的方法. 实际开发中,推荐将数据存放在资源 ...
- Android在OnCreate中获取控件的宽度和高度
在Android中,有时需要对控件进行测量,得到的控件宽度和高度可以用来做一些计算.在需要自适应屏幕的情况下,这种计算就显得特别重要.另一方便,由于需求的原因,希望一进入界面后,就能得到控件的宽度和高 ...
- android camera工程师,Android从Camera中获取图片的两种方法
方法一: 此方法会由Camera直接产生照片回传给应用程序,但是返回的是压缩图片,显示不清晰 /** 启动Camera */ private void intentCamera(){ try { ...
- (原)android的JNI中使用C++的类
android的JNI代码中可以调用C++的类,但是不能直接调用,要加上一个类似于接口的java类,这个类内部调用C++的类.实际上和接口类直接调用C++中的函数差不多,只是稍微复杂了一点. 1. 写 ...
- Android Java代码中获取App渠道信息
项目中需要在Java中获取App打包的渠道信息,而打包渠道相关的内容一般都设置在 build.gradle 的 productFlavors{} 中. 以下是介绍一种方便的实现方法,通过manifes ...
- springboot yml怎么建常量_【Java】SpringBoot 中从application.yml中获取自定义常量
由于这里我想通过java连接linux,connection连接需要host.port.username.password及其他路径等等.不想每次修改的时候都去改源文件,所以想写在applicatio ...
- android获取上下文对象,如何在Android服务类中获取上下文
当我尝试从内存中读取 XML文件并进入对象时,我收到以下错误.看起来像获取上下文的问题.谁能告诉我我的代码有什么问题? 码: public class WifiScanning extends Ser ...
- Android中shell控制cpu,Android app开发中获取cpu arm架构信息及执行shell命令方法
最近在做一个项目,需要在app开发过程中去判断cpu的arm架构,比如说是armeabi-v7a,或是arm64-v8a. 其实,在adb shell命令下面,可以通过getprop的方式,获取到一些 ...
最新文章
- JAVA-OPTS引发的思考
- DataList中的按钮触发事件的方法的实现
- angular 4使用jquery 第三方插件库
- 数据中心成为生态系统向绿色氢经济转变的催化剂
- 一个图片 在另一个图片定位_淋雨图片孤身一人 一个人在淋雨的图片_新闻资讯...
- UVA-1515 Pool construction (最小割)
- java nio 文件_Java nio 的文件处理
- 程序员这口饭-职业规划解决方案
- 如何在linux(ubuntu)的wine环境下开启source insight的tabsihost(或tabsiplus)
- 手把手带你手写SpringMVC,剑指优秀开源框架灵魂
- python语句结束符_python中判断文件结束符的具体方法
- 60-150-046-使用-Sink-Flink落HDFS数据按事件时间分区解决方案
- MFC GDI+ 绘图
- F2FS源码分析-1.1 [F2FS 元数据布局部分] F2FS文件系统的总体结构
- java双重循环去重_java 中 list集合去重
- Python之函数传参
- 22.1.11京东大数据实习面试
- Axure使用中继器为表格添加数据
- 为知笔记docker镜像安装
- css3空中飘浮的气球动画
热门文章
- android zip4j之--解压zip文件并实时显示解压进度
- android控制软键盘显示与隐藏
- Android的JNI【实战教程】6⃣️--温控计
- python实现给定列表和数值,找到列表中的两个或者多个元素和为该数值的元素下标
- linux脚本彩色提示,在shell脚本里显示带颜色的字(linux)
- python作者_Python
- 用SQLAlchemy执行原生SQL
- 帆软报表嵌套在iframe中,HTML的fieldset 定义的为自定义导出按钮
- vc调用matlab引擎实时绘图,怎么在vc++里调用matlab绘制spline插值曲线
- 一元线性回归(Linear Regression)