ndk开发 jni基础知识准备
来源:互联网 发布:java 虚函数 编辑:程序博客网 时间:2024/05/21 23:15
JNI
java native interface
java 连接windows或者linux系统的功能的连接器的作用
jni为了java而生的
Host environment 操作系统环境,有自己的本地库和cpu指令集
全部都是由本地程序c++和c编译的,编译成本低可识别的二
进制代码。因此本地程序和本地库通常依赖于操作系统环境
jni其实是java虚拟机的一个部分,使得java可以访问本地库
和接口,使得java和本地库和本地接口可以双向交互
通俗的讲,就是java事件和c语言c++沟通的桥梁
jni使用环境:
java api不能满足我们程序需要的时候
性能:某些算法计算和某些图像渲染对语言效率非常高,
此时需要jni交给c处理
需要访问一些已经有的本地库时:例如,第三方软件打包成so文件供调用
什么是ndk:
一系列的工具集合,帮助开发者快速开发c或者cpp动态库的工具
打包工具
.so文件是使用C语言或c++开发的工具库
将c的包和java文件一起打包,就是ndk
流程:
用通用接口和C进行连接,再生成.so。用ndk进行打包
怎样开发jni:
步骤:
编写native方法
用javah命令生成.h文件
或者自己手写
3.复制.h 头文件到cpp 工程
4.复制jni.h 和jni_md.h
5.实现.h 头文件中的声明函数
6.生成一个dll 动态库
7.在java中加载动态库
8.触发native函数
静态库和动态库:
都是函数库
函数库:
将这些够用的函数,构成的一个库
静态库:
在编译时连接到目标代码中,运行时不需要调用 .a,.lib,.h
例如:stdio.h
动态库1:不会自动链接到目标代码中去,是独立的
运行时动态加载在程序运行时加载进去的,
独立存在的的,因此运行时需要.dll文件存在 .dll,.so
例如:static{
System.loadLibrary("JNI_DEMO")
}
阅读全文
0 0
- ndk开发 jni基础知识准备
- Android NDK开发之JNI基础知识
- android JNI开发准备
- Jni+Ndk初次开发
- NDK CDT JNI开发
- 【NDK开发】JNI简介
- AS开发NDK/JNI
- JNI 和NDK开发
- JNI NDK开发笔记
- JNI/NDK基础开发
- Android JNI/NDK 开发
- Android NDK开发基础知识
- NDK开发 - JNI开发流程
- Android开发---JNI基础知识
- 【NDK开发】JNI与NDK关系
- android(NDK+JNI)---NDK开发 环境配置
- android NDK开发之NDK与JNI
- android(NDK+JNI)---jni开发资料
- Ubuntu的一些常用快捷键
- Amazon内购接入流程以及测试
- golang 正则获取和替换
- MFC中CTreeCtrl奇怪的SetCheck
- z-index设置无效和元素重叠显示的问题解决
- ndk开发 jni基础知识准备
- C语言学习总结
- 爬取nyist-6000张证件照进行微软小冰颜值分析
- Nginx的CA证书使用总结
- android-一个文件搞定SQLite数据库的创建与更新以及增删查改
- CAD图纸怎么修改标注
- Eclipse 快捷键
- Unity3d之AssetBundle打包与读取
- java-内存区域