企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
### JNI #### 1、对JNI是否了解 > * 参考回答: > * Java的优点是**跨平台**,但也因为其跨平台的的特性导致其**本地交互的能力不够强大**,一些和操作系统相关的的特性Java无法完成,于是**Java提供JNI专门用于和本地代码交互,通过JNI,用户可以调用C、C++编写的本地代码** > * NDK是Android所提供的一个工具集合,通过NDK可以在Android中更加方便地通过JNI访问本地代码,其优点在于 > * 提高代码的安全性。由于so库反编译困难,因此NDK提高了Android程序的安全性 > * 可以很方便地使用目前已有的C/C++开源库 > * 便于平台的移植。通过C/C++实现的动态库可以很方便地在其它平台上使用 > * 提高程序在某些特定情形下的执行效率,但是并不能明显提升Android程序的性能 #### 2、如何加载NDK库 ?如何在JNI中注册Native函数,有几种注册方法 ? > * 参考回答: ~~~ public class JniTest{ //加载NDK库 static{ System.loadLirary("jni-test"); } } ~~~ > * 注册JNI函数的两种方法 > * **静态方法** > * **动态注册** > * 推荐文章: > * [注册JNI函数的两种方式](https://blog.csdn.net/wwj_748/article/details/52347341) > * [Android JNI 篇 - 从入门到放弃](https://www.jianshu.com/p/3dab1be3b9a4) #### 3、你用JNI来实现过什么功能 ? 怎么实现的 ?(加密处理、影音方面、图形图像处理) > * 参考回答: > * 推荐文章:[Android JNI 篇 - ffmpeg 获取音视频缩略图](https://www.jianshu.com/p/411761bd5f5b)