Android JNI 系列
[TOC]
Android JNI 基本知识
1.1 什么是JNI
JNI (Java Native Interface),它提供了若干API使得Java可以和其他语言互通,是JDK的一部分.
理解这些就可以了!
1.2 为什么使用JNI
使用JNI是为了将现有的C或C++库集成到使用Java语言开发的应用中,或者有些性能要求较高的场景下,使用C或C++才能满足的场景.
1.3 使用JNI带来的问题
程序不再跨平台,还有JNI带来的内存问题,以及可能引起的Crash
使用Android Studio 搭建JNI开发环境
目前使用Android Studio 3.0可以直接建立一个支持C或C++语言的JNI项目.
如果需要将现有的应用集成JNI可参照Google Dev的官方文档操作.
编译JNI程序,可以使用NDK编译,或者使用CMAKE来编译,现在来讲都可行,推荐使用CMAKE来编译.
在app目录下建立一个JNI目录源文件都放到这里.


注意目录名称是JNI,只是在Android Studio中显示为cpp目录
下面写CMAKE文件
1 | # 这里使用的是bsdiff patch的JNI库例子. |
简单的来一个JNI HelloWorld
1 | public class MainActivity extends AppCompatActivity { |
1 |
|
从C的函数定义中可以发现,函数的签名是有一定规律的一般是下面这种格式
Java_[包名]_[类名]_[方法名](JNIEnv * env,jclass type,[params])