在Java方法定义中有一类特殊的方法:native方法。对于native方法而言,Java程序不会为该方法提供实现体。
例如:
public class NativeTest{
public native void info();
}
这个方法就像一个抽象方法,只有方法签名,没有方法体。不过native方法通常要借助C语言来完成,即需要使用C语言为Java方法提供实现。
具体实现步骤如下:
1、用javah编译第一部生成的class文件,将产生一个.h文件(C语言中叫头文件)。
2、写一个.cpp文件实现native方法,其中需要包含第一部产生的.h头文件(.h文件中又包含了JDK自带的jni.h文件).
3、将第二部中的.cpp文件变异成动态链接库文件。
4、在Java中调用System.loadLibrary()方法或Runtime的loafLibrary()方法加载第三部产生的动态链接库文件,就可以在Java中调用这个native()方法了。
问题产生了:在第三部编译.cpp文件时,将会使程序依赖于当前的编译环境。
public class SleepTest
{
public staic void main ( String [] args)
{
long start = System.currentTimeMillis();
Thread.sleep(2);
System.out.println(System.currentTimeMillis()-start);
}
}
答案不是2。仔细查看JDK文档关于Thread.sleep()方法的介绍会发现其实sleep()方法也是一个native方法,这个方法的具体实现需要依赖于它所在的平台。也就是说,native方法做不到跨平台。
所以,虽然Java是跨平台的,但是JDK中还有很多native方法,使用这些方法时,注意平台的差异性。
分享到:
相关推荐
本篇文章将深入探讨如何使用native方法实现加密解密,主要关注JNI的使用、编码解码的基本原理以及在Android环境中如何集成和调用这些原生函数。 首先,我们需要理解JNI的概念。JNI是Java平台的一部分,它为Java...
在深入探讨Java中native方法的学习之前,我们先来理解一下native方法的概念以及它在Java中的作用。...然而,使用native方法也带来了一定的复杂性和维护成本,因此在实际开发中应谨慎选择何时以及如何使用它们。
Java中的Native方法是Java语言与本地(Native)代码交互的一种机制,主要涉及到Java的JNI(Java Native Interface)技术。JNI允许Java程序调用C、C++等非Java编写的代码,反之亦然,使得Java可以充分利用本地平台的...
本篇文章将深入探讨如何使用native方法调用C程序,并通过一个实际的例子来展示这一过程。 首先,我们需要了解JNI的基本概念。JNI是Java平台的一部分,它定义了一组API,使得Java代码可以动态地加载和调用本地方法,...
总结,通过这个"Android-Jni生成so库调用native方法的demo",我们可以学习到如何在Android应用中使用JNI,从编写Java代码声明native方法,到生成JNI头文件,再到编写C/C++代码实现方法,最后配置构建文件并运行。...
要在 react-native 上使用 echarts 的图表库,目前方法主要是使用 react-native 的 webview 利用网页的形式加载 echarts 的图形。 本项目尽量使用少的代码实现本功能。
在C/C++层面处理Parcel对象时,通常需要利用JNIEnv接口,它是Java虚拟机提供给native方法的环境指针,可以用来调用Java方法和访问Java对象,包括Parcel对象。 `testCallback.cpp`可能包含了一些回调函数的实现,...
React Native 是一个强大的框架,它允许开发者使用JavaScript和React语法构建原生移动应用程序。`react-native-image-picker...通过深入理解这个库的使用方法,你可以为你的应用添加丰富的媒体交互功能,提升用户体验。
Native 方法是指 Java 语言中的一种特殊方法,它使用 native 关键字声明,表示该方法将被编译成机器代码,可以访问底层操作系统的资源和硬件。Native 方法可以将 Java 程序同 C 程序的接口,实现 Java 程序对底层...
这篇文章将详细介绍如何在使用Ionic v3.2.0版本的项目中集成并使用Native Camera功能。这个过程涉及到安装必要的依赖库、添加Cordova插件以及编写相应的代码。 1. **安装ionic-native/core** 在开始之前,确保你...
reactnative.jar使用方法,可直接去github下载jar包然后放在webstrom使用可以提示
JS和Android的Native方法互调用所有情况测试 亲测!可用! 用于Android和HTML5混合开发中壳子的使用 后续将加入: Java类结构 和 Js库基本命名规则和构建 集成基本的友盟组件测试 全功能灵活集成的...
Java中隐藏源码 AppProtect 整理一些app常见的加固方法,包括java层、native...hook框架重定向native方法,达到保护native方法的目的 7.动态注册native方法 自己注册native方法,隐藏带有Java_xxx_xxx_xxx的函数名特征
例如,可以创建一个`native`方法用于识别二维码,该方法将调用`opencv_wechat_qrcode`模块的相关函数。 4. **权限管理**:确保应用有访问相机和存储的权限,因为二维码扫描通常需要使用相机拍摄图片或读取本地图片...
本文将详细介绍Java中native方法的定义、JNI的基本使用流程,并结合示例代码进行说明。 #### 二、Java Native Interface (JNI) ##### 1. 概念介绍 Java Native Interface (JNI) 是Java平台的一部分,它允许Java...
JAVA本地方法:native方法1
5. **刷新`WebView`**:根据新的状态,可能需要重新渲染`WebView`,或者使用`WebView`的`injectJavaScript`方法动态修改地图的中心点。 通过这种方式,React Native开发者可以利用Webview封装的高德地图API,轻松...
Android APP 加固方法之函数 Native 化 函数 Native 化是指将 Java 函数转换为 Native 代码,以提高 Android APP 的安全性和防护能力。该方法可以抵御静态分析攻击、DEX 动态恢复和动态脱壳攻击。 在 Android APP ...
在Android开发中,有时我们需要在Web视图(WebView)中加载本地HTML页面,并实现HTML页面与原生Android代码(Native方法)之间的交互。这通常涉及到WebView的使用以及JavaScript与Java接口的通信。以下是对这个主题的...
【NativeScript 使用向导】 NativeScript 是一个开源框架,它允许开发者使用JavaScript或TypeScript语言进行原生移动应用开发,支持iOS和Android平台。通过NativeScript,你可以利用一套代码库来构建具有原生用户...