超值套餐

你将收获

掌握Native函数的定义与实现

掌握Native与Java交互的实现

掌握静态注册、动态注册的实现与原理

掌握JNI调用流程原理

适用人群

1、有一定Android基础,零JNI基础的学员; 2、接触过JNI,但却不甚了解的学员; 3、使用过JNI,希望解其原理的学员;

课程介绍

Android开发中,随着对移动程序的安全性、性能等方面的重视,JNI技术也越发重要。
如今,多数企业在招聘中、高级程序员时,基本上都要求熟悉JNI开发,所以,掌握JNI技术,也是我们迈进心仪企业的必备条件。

本套课程共分为三部分,当前为第二部分,主要包括内容:
1、JNI函数解析
2、JNI类型解析
3、JNI描述符(签名)解析
4、JNI静态注册与动态注册原理解析
5、JNI调用流程原理解析

适合人群:
1、有一定Android基础,零JNI基础的学员;
2、接触过JNI,但却不甚了解的学员;
3、使用过JNI,希望解其原理的学员;

课程目录

讨论留言
11 条回复 进入帖子
切换为未回复评论
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复1
跟着上和中,感觉非常不错,看得出来老师用心了。有深有浅,如果对jni还处于懵懂状态的话,上和下非常有用帮我厘清楚jni到底是个怎么回事。如果可以,非常希望老师能深入开一套jvm和dvm/art以及相关调优方法的课程。
乌鲁多拉曼2020-08-07
  • 打赏
  • 举报
回复
动态注册这里我照着代码敲的,,程序直接崩溃,Android Studio4.0解析不到这个native方法.打断点看了下JNI_OnLoad方法执行是OK的.不知道为啥.直接崩溃..
  • 举报
回复
@乌鲁多拉曼较新的android studio里面,JNINativeMethod要定义成static而不是const不知道是不是as内部做了什么特殊的更新: static JNINativeMethod method[]={ {"add","(II)I",reinterpret_cast(add
evantakly2020-05-26
  • 打赏
  • 举报
回复
既然是写cpp文件,为什么又要全部写C代码还加入extern C?
evantakly2020-05-26
  • 打赏
  • 举报
回复
既然是写cpp文件,为什么又要全部写C代码还加入extern C?
qixingchao2020-05-26
  • 举报
回复
@evantakly您好,在做JNI开发时,大家选择.c或者.cpp都是可以的。 咱们在课程中之所以选择使用.cpp,主要是希望为学员们演示到以下的几个点,避免大家踩坑: 1、C++语言在编译的时候需要解决函数的多态问题,会将函数名和参数联合起来生成一个中间的函数名称(课程中有讲到),而C语言则不会,因此使用.cpp会造成链接时找不到对应函数的情况。所以使用.cpp编写native代码,需要通过extern C避免这种问题。 2、C++中env是一级指针,用env->调用方法,无需传入env;C语言中,env参数是个二级指针,用(*env)->调用方法且方法中要传入env。 3、其他略...
Drf520_2021-01-04
  • 举报
回复
@evantaklyP
sunywz2020-03-21
  • 打赏
  • 举报
回复
花了一天时间把这一部分学完 期待老师的下一门课程。
Eglinux2020-03-04
  • 打赏
  • 举报
回复
花了一天时间把这一部分学完了,以前不理解的东西也突然明白了不少,还会来看第二遍的。老师的声音很有磁性,我喜欢,还有最后老师说了他出教程要对得起大家的时间,我觉得完全是对得起的,期待老师的下一门课程。 现在这一门是第二门课,今天继续开始学习,特别喜欢老师的教课风格,希望老师尽快出这一系列的第三季,期待中。 花了一天时间把这一部分学完了,以前不理解的东西也突然明白了不少,还会来看第二遍的。老师的声音很有磁性,我喜欢,还有最后老师说了他出教程要对得起大家的时间,我觉得完全是对得起的,期待老师的下一门课程。
应用市场2020-02-26
  • 打赏
  • 举报
回复
说到JNI都不陌生,它的全称:Java Native Interface,即Java本地接口。 JNI不仅仅是Android特有的,它是属于Java平台的,它允许在Java虚拟机内运行的java代码与其他编程语言(如c, c++和汇编语言)编写的程序和库进行交互。 JNI调用姿势:Java —> JNI —> C/C++(SO库)C/C++(SO库) 在Android平台中,使用JNI封装了跟硬件相关的操作,从而可以通过Java调用相关JNI模块,以达到对硬件的调用。1.java代码编译和执行过程 2.jni常规使用姿势 3.so加载流程(jni执行流程、注册方式原理) 4.JNIEnv作用及实现及实现
CarrySubmit2020-02-23
  • 打赏
  • 举报
回复
说到JNI都不陌生,它的全称:Java Native Interface,即Java本地接口。 JNI不仅仅是Android特有的,它是属于Java平台的,它允许在Java虚拟机内运行的java代码与其他编程语言(如c, c++和汇编语言)编写的程序和库进行交互。 JNI调用姿势:Java —> JNI —> C/C++(SO库)C/C++(SO库) 在Android平台中,使用JNI封装了跟硬件相关的操作,从而可以通过Java调用相关JNI模块,以达到对硬件的调用。1.java代码编译和执行过程 2.jni常规使用姿势 3.so加载流程(jni执行流程、注册方式原理) 4.JNIEnv作用及实现及实现