本案例中编写 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中获取自定义的类函数编写相关推荐

  1. 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 命令行中获取要调试的应用进程的 PID | 进程注入调试进程内存的 so 库 )

    文章目录 一.Android 命令行中获取要调试的应用进程的 PID 二.进程注入调试进程内存的 so 库 一.Android 命令行中获取要调试的应用进程的 PID 前置博客 [Android 逆向 ...

  2. vue页面返回消息头获取_vue在响应头response中获取自定义headers操作

    日常开发,我们可能会为了安全问题,保证第三方无法通过伪造返回报文欺骗前端,需要在返回报文中添加自定义参数,用于验证身份,后端添加自定义参数,前端校验自定义参数通过后才会执行相应的操作. 系统为了安全会 ...

  3. android 从资源中获取数组

    8.1. 从资源中获取数组 8.1.1.概述 除了在Java代码中定义数组,Android还提供了在资源中定义数组,然后在Java代码中解析资源,从而获取数组的方法. 实际开发中,推荐将数据存放在资源 ...

  4. Android在OnCreate中获取控件的宽度和高度

    在Android中,有时需要对控件进行测量,得到的控件宽度和高度可以用来做一些计算.在需要自适应屏幕的情况下,这种计算就显得特别重要.另一方便,由于需求的原因,希望一进入界面后,就能得到控件的宽度和高 ...

  5. android camera工程师,Android从Camera中获取图片的两种方法

    方法一: 此方法会由Camera直接产生照片回传给应用程序,但是返回的是压缩图片,显示不清晰 /**   启动Camera */ private void intentCamera(){ try { ...

  6. (原)android的JNI中使用C++的类

    android的JNI代码中可以调用C++的类,但是不能直接调用,要加上一个类似于接口的java类,这个类内部调用C++的类.实际上和接口类直接调用C++中的函数差不多,只是稍微复杂了一点. 1. 写 ...

  7. Android Java代码中获取App渠道信息

    项目中需要在Java中获取App打包的渠道信息,而打包渠道相关的内容一般都设置在 build.gradle 的 productFlavors{} 中. 以下是介绍一种方便的实现方法,通过manifes ...

  8. springboot yml怎么建常量_【Java】SpringBoot 中从application.yml中获取自定义常量

    由于这里我想通过java连接linux,connection连接需要host.port.username.password及其他路径等等.不想每次修改的时候都去改源文件,所以想写在applicatio ...

  9. android获取上下文对象,如何在Android服务类中获取上下文

    当我尝试从内存中读取 XML文件并进入对象时,我收到以下错误.看起来像获取上下文的问题.谁能告诉我我的代码有什么问题? 码: public class WifiScanning extends Ser ...

  10. Android中shell控制cpu,Android app开发中获取cpu arm架构信息及执行shell命令方法

    最近在做一个项目,需要在app开发过程中去判断cpu的arm架构,比如说是armeabi-v7a,或是arm64-v8a. 其实,在adb shell命令下面,可以通过getprop的方式,获取到一些 ...

最新文章

  1. JAVA-OPTS引发的思考
  2. DataList中的按钮触发事件的方法的实现
  3. angular 4使用jquery 第三方插件库
  4. 数据中心成为生态系统向绿色氢经济转变的催化剂
  5. 一个图片 在另一个图片定位_淋雨图片孤身一人 一个人在淋雨的图片_新闻资讯...
  6. UVA-1515 Pool construction (最小割)
  7. java nio 文件_Java nio 的文件处理
  8. 程序员这口饭-职业规划解决方案
  9. 如何在linux(ubuntu)的wine环境下开启source insight的tabsihost(或tabsiplus)
  10. 手把手带你手写SpringMVC,剑指优秀开源框架灵魂
  11. python语句结束符_python中判断文件结束符的具体方法
  12. 60-150-046-使用-Sink-Flink落HDFS数据按事件时间分区解决方案
  13. MFC GDI+ 绘图
  14. F2FS源码分析-1.1 [F2FS 元数据布局部分] F2FS文件系统的总体结构
  15. java双重循环去重_java 中 list集合去重
  16. Python之函数传参
  17. 22.1.11京东大数据实习面试
  18. Axure使用中继器为表格添加数据
  19. 为知笔记docker镜像安装
  20. css3空中飘浮的气球动画

热门文章

  1. android zip4j之--解压zip文件并实时显示解压进度
  2. android控制软键盘显示与隐藏
  3. Android的JNI【实战教程】6⃣️--温控计
  4. python实现给定列表和数值,找到列表中的两个或者多个元素和为该数值的元素下标
  5. linux脚本彩色提示,在shell脚本里显示带颜色的字(linux)
  6. python作者_Python
  7. 用SQLAlchemy执行原生SQL
  8. 帆软报表嵌套在iframe中,HTML的fieldset 定义的为自定义导出按钮
  9. vc调用matlab引擎实时绘图,怎么在vc++里调用matlab绘制spline插值曲线
  10. 一元线性回归(Linear Regression)