没有合适的资源?快使用搜索试试~ 我知道了~
首页oracle官网Jni翻译.pdf
oracle官网Jni翻译.pdf
5星 · 超过95%的资源 需积分: 9 158 下载量 93 浏览量
更新于2023-03-16
评论 2
收藏 757KB PDF 举报
主要介绍JNI(Java Native Interface),JNI是一种本地编程接口。它允许运行在JAVA虚拟机中的JAVA代码和用其他编程语言,诸如C语言、C++、汇编,写的应用和库之间的交互操作。
资源详情
资源评论
资源推荐
花生整理,CSDN 博客:http://blog.csdn.net/android_hasen
目录
第一章 概述
.......................................................................................................................................
5
JNI 概述
.....................................................................................................................................
5
历史背景
.............................................................................................................................
6
JDK1.0 本地方法接口
......................................................................................................
6
JAVA 运行时接口
...............................................................................................................
6
原始本地接口和 JAVA/COM 接口
.....................................................................................
6
目标
.............................................................................................................................................
7
JNI 方法
.....................................................................................................................................
7
JNI 编程
.....................................................................................................................................
8
第二章 设计综述
...............................................................................................................................
8
JNI 接口函数和指针
.................................................................................................................
8
编译,加载和链接本地方法
....................................................................................................
9
解析本地方法名
......................................................................................................................
10
本地方法参数
...........................................................................................................................
11
引用 JAVA 对象
........................................................................................................................
13
全局和局部引用
......................................................................................................................
13
实现局部引用
...........................................................................................................................
14
访问 JAVA 对象
........................................................................................................................
14
访问原始数组
...........................................................................................................................
14
访问域和方法
...........................................................................................................................
15
记录编程错误
...........................................................................................................................
16
JAVA 异常
.................................................................................................................................
16
异常和错误代码
......................................................................................................................
16
异步的异常
...............................................................................................................................
17
异常处理
...................................................................................................................................
17
第三章 JNI 类型和数据结构
.........................................................................................................
18
原始类型
...................................................................................................................................
18
引用类型
...................................................................................................................................
19
域和方法 ID
.............................................................................................................................
19
值类型
.......................................................................................................................................
20
类型标示
...................................................................................................................................
20
改进的 UTF-8 字符串
............................................................................................................
21
第四章 JNI 函数
.............................................................................................................................
22
接口函数表
...............................................................................................................................
25
版本信息
...................................................................................................................................
31
GetVersion
....................................................................................................................
31
常量 Constants
.............................................................................................................
32
类操作 Class Operations
..................................................................................................
32
DefineClass
..................................................................................................................
32
花生整理,CSDN 博客:http://blog.csdn.net/android_hasen
FindClass
.......................................................................................................................
33
GetSuperclass
..............................................................................................................
34
IsAssignableFrom
.......................................................................................................
34
异常 Exceptions
..................................................................................................................
35
Throw
................................................................................................................................
35
ThrowNew
.........................................................................................................................
35
ExceptionOccurred
.....................................................................................................
36
ExceptionDescribe
.....................................................................................................
36
ExceptionClear
............................................................................................................
36
FatalError
....................................................................................................................
37
ExceptionCheck
............................................................................................................
37
全局和局部引用 Global and Local References
........................................................
37
NewGlobalRef
................................................................................................................
37
DeleteGlobalRef
.........................................................................................................
38
DeleteLocalRef
............................................................................................................
38
EnsureLocalCapacity
................................................................................................
39
PushLocalFrame
............................................................................................................
39
PopLocalFrame
..............................................................................................................
39
NewLocalRef
..................................................................................................................
40
弱全局引用 Weak Global References
............................................................................
40
NewWeakGlobalRef
.......................................................................................................
41
DeleteWeakGlobalRef
................................................................................................
41
对象操作 Object Operations
...........................................................................................
42
AllocObject
..................................................................................................................
42
NewObject, NewObjectA, NewObjectV
.................................................................
42
GetObjectClass
............................................................................................................
43
GetObjectRefType
.......................................................................................................
44
IsInstanceOf
................................................................................................................
45
IsSameObject
................................................................................................................
45
访问对象的域 Accessing Fields of Objects
.............................................................
46
GetFieldID
....................................................................................................................
46
Get<type>Field Routines
........................................................................................
46
Set<type>Field Routines
........................................................................................
48
调用实例方法 Calling Instance Methods
...................................................................
49
GetMethodID
..................................................................................................................
49
Call<type>Method Routines, Call<type>MethodA Routines,
Call<type>MethodV Routines
.................................................................................
49
CallNonvirtual<type>Method Routines, CallNonvirtual<type>MethodA
Routines, CallNonvirtual<type>MethodV Routines
.....................................
52
访问静态域 Accessing Static Fields
.........................................................................
54
GetStaticFieldID
.......................................................................................................
54
GetStatic<type>Field Routines
..........................................................................
55
SetStatic<type>Field Routines
..........................................................................
56
调用静态方法 Calling Static Methods
........................................................................
57
花生整理,CSDN 博客:http://blog.csdn.net/android_hasen
GetStaticMethodID
.....................................................................................................
57
CallStatic<type>Method Routines, CallStatic<type>MethodA Routines,
CallStatic<type>MethodV Routines
....................................................................
58
字符串操作 String Operations
.......................................................................................
60
NewString
.......................................................................................................................
60
GetStringLength
.........................................................................................................
60
GetStringChars
............................................................................................................
61
ReleaseStringChars
...................................................................................................
61
NewStringUTF
................................................................................................................
62
GetStringUTFLength
...................................................................................................
62
GetStringUTFChars
.....................................................................................................
62
ReleaseStringUTFChars
............................................................................................
63
GetStringRegion
.........................................................................................................
63
GetStringUTFRegion
...................................................................................................
64
GetStringCritical, ReleaseStringCritical
..................................................
64
数组操作 Array Operations
.............................................................................................
65
GetArrayLength
............................................................................................................
65
NewObjectArray
............................................................................................................
65
GetObjectArrayElement
............................................................................................
65
SetObjectArrayElement
............................................................................................
66
New<PrimitiveType>Array Routines
....................................................................
66
Get<PrimitiveType>ArrayElements Routines
..................................................
67
Release<PrimitiveType>ArrayElements Routines
.........................................
69
Get<PrimitiveType>ArrayRegion 程序
................................................................
70
Set<PrimitiveType>ArrayRegion Routines
......................................................
71
GetPrimitiveArrayCritical, ReleasePrimitiveArrayCritical
..............
72
注册本地方法 Registering Native Methods
...............................................................
73
RegisterNatives
.........................................................................................................
74
UnregisterNatives
.....................................................................................................
74
监视程序操作 Monitor Operations
.................................................................................
75
MonitorEnter
................................................................................................................
75
MonitorExit
..................................................................................................................
75
网络接口对象支持 NIO Support
........................................................................................
76
NewDirectByteBuffer
................................................................................................
76
GetDirectBufferAddress
..........................................................................................
77
GetDirectBufferCapacity
........................................................................................
78
反射支持 Reflection Support
.........................................................................................
78
FromReflectedMethod
................................................................................................
78
FromReflectedField
...................................................................................................
79
ToReflectedMethod
.....................................................................................................
79
ToReflectedField
.......................................................................................................
79
JAVA 虚拟机接口 Java VM Interface
.............................................................................
80
GetJavaVM
.......................................................................................................................
80
第五章 调用 API
.............................................................................................................................
80
花生整理,CSDN 博客:http://blog.csdn.net/android_hasen
创建虚拟机
...............................................................................................................................
81
连接虚拟机
...............................................................................................................................
81
从虚拟机分离
...........................................................................................................................
81
卸载虚拟机
...............................................................................................................................
82
库和版本管理
...........................................................................................................................
82
JNI_OnLoad
....................................................................................................................
82
JNI_OnUnload
................................................................................................................
83
调用 API 函数
..........................................................................................................................
83
JNI_GetDefaultJavaVMInitArgs
............................................................................
84
JNI_GetCreatedJavaVMs
............................................................................................
84
JNI_CreateJavaVM
.......................................................................................................
85
DestroyJavaVM
..............................................................................................................
87
AttachCurrentThread
................................................................................................
87
AttachCurrentThreadAsDaemon
...............................................................................
88
DetachCurrentThread
................................................................................................
89
GetEnv
.............................................................................................................................
89
花生整理,CSDN 博客:http://blog.csdn.net/android_hasen
第一章 概述
本章主要介绍 JNI(Java Native Interface),JNI 是一种本地编程接口。它允许运行在
JAVA 虚拟机中的 JAVA 代码和用其他编程语言,诸如 C 语言、C++、汇编,写的应用和库之
间的交互操作。
JNI 的最大优势在于没有强加任何限制在 JAVA 虚拟机的下层实现上,因此,JAVA 虚拟机供
应商能够提供 JNI 的支持而不影响虚拟机的其他部分,程序员只需写出一个版本的本地应
用和库,就可使之运行在一切支持 JNI 的 JAVA 虚拟机上。
本章包含了以下的要点:
▪ JNI 概述
▪ 目标
▪ JNI 方法
▪ JNI 编程
▪ 变化
JNI 概述
当你能够完全的用 JAVA 写出一个应用,也有一种情况,那就是只用 JAVA 无法满足应用的
要求。这种无法完全用 JAVA 完成应用的情况出现的时候,程序员会用 JNI 写出 JAVA 本地
方法来处理。
下面列举几个用 JAVA 本地方法的例子:
▪ 标准 JAVA 类库不支持应用所需的平台依赖特性
▪ 你已经有一个其他语言实现好的库,想让它能够通过 JNI 在 JAVA 代码中使用
▪ 你想在诸如汇编的低级语言中实现一部分时效性的代码
通过 JNI 的编程,你能够实现如下功能:
▪ 创建,检查,更新 JAVA 对象(包括数组和字符串)
▪ 调用 JAVA 方法
▪ 捕捉或者抛出异常
▪ 加载类和获取类的信息
▪ 执行运行时类型检查
你也能使用 JNI 通过调用 API 来让任意的本地应用嵌入到 JAVA 虚拟机中,这允许程序员轻
松地让他们现有的程序在 JAVA 中可用,而不需要连接虚拟机的源代码。
剩余88页未读,继续阅读
android_hasen
- 粉丝: 43
- 资源: 34
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 2023年中国辣条食品行业创新及消费需求洞察报告.pptx
- 2023年半导体行业20强品牌.pptx
- 2023年全球电力行业评论.pptx
- 2023年全球网络安全现状-劳动力资源和网络运营的全球发展新态势.pptx
- 毕业设计-基于单片机的液体密度检测系统设计.doc
- 家用清扫机器人设计.doc
- 基于VB+数据库SQL的教师信息管理系统设计与实现 计算机专业设计范文模板参考资料.pdf
- 官塘驿林场林防火(资源监管)“空天地人”四位一体监测系统方案.doc
- 基于专利语义表征的技术预见方法及其应用.docx
- 浅谈电子商务的现状及发展趋势学习总结.doc
- 基于单片机的智能仓库温湿度控制系统 (2).pdf
- 基于SSM框架知识产权管理系统 (2).pdf
- 9年终工作总结新年计划PPT模板.pptx
- Hytera海能达CH04L01 说明书.pdf
- 数据中心运维操作标准及流程.pdf
- 报告模板 -成本分析与报告培训之三.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论10