Android系统的JNI原理分析(5)- JNI函数解析

声明

  • 前阶段在项目中使用了Android的JNI技术,在此文中做些技术知识总结。
  • 此篇参考一些博客和书籍,不方便逐一列出,仅供学习、知识分享,代码基于Android 7.1.1。
  • Android JNI函数参考:‘Raw’ JNI interface to Android Dalvik (Java) VM from Mono (CS/JS)
  • 本章Demo下载:Demo链接

0 写在前面的

    既然JNI是Java虚拟机提供的Java世界和C/C++世界的桥梁,那么,其应该可以实现两个世界之间代码的相互调用。所谓自由调用指的是Java层正向调用C/C++层的代码 和 C/C++层调用Java层的代码。
    正常情况,一般连一些Android应用开发者开始都认为既然手机是受用户控制的,只有在用户触碰手机屏幕时手机的底层才会根据用户的触控去执行相应的动作。所以,既然Java层比C/C++层更靠近用户,所以JNI的存在意义应该是让Java层主动调用C/C++层的代码,并给予Java层返回值。其实不然,不管Java层还是C/C++层的代码,大家都运行在Android操作系统里,凭啥我C/C++层就要一直着你Java的调用?C/C++层也是可以主动去调用Java层代码的。下面

你可能感兴趣的:(#,android,JNI)