eclipse android jni 开发,so库编译

开始之前,先确定是否已经安装ndk,和javah.如果没有则需先进行下载安装,下载安装配置可以去参考下这两篇博客,我这就不多说了。
javah配置
ndk环境搭建
确定已经安装好ndk和javah,我们就可以开始今天的so库编译了。
首先,我们先看下jni的实现步骤:
1、先编写带有natvie声明的方法的java类
2、新建选取1步骤的java类,利用配置好的javah工具,生成.h的头文件
3、使用c/c++实现底层方法
4、编写Android.mk文件
5、将C/C++编写的文件生成动态连接库。
6、编写java代码进行调试

接着,我们一步一步的来看实现过程:
1、先编写带有natvie声明的方法的java类

package org.zz.jni;

public class USBPort {
    static{  
        System.loadLibrary("USBPort");  
    }  
    public native int switch_usb_port(int port);

}

2、在工程目录下新建jni文件夹,选取1步骤的java类,利用配置好的javah工具,生成.h的头文件
eclipse android jni 开发,so库编译_第1张图片
就可以在jni文件夹下生成一个包名+类名的.h文件(文件名可以自定义)

3、在jni文件夹下新建一个跟.h文件同名的.c文件,在这里实现你要实现的逻辑。.c文件里的方法名要跟.h文件里的方法名一样。

4、在jni目录下,新建一个Android.mk文件。内容如下

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := USBPort
LOCAL_SRC_FILES := org_zz_jni_USBPort.c

include $(BUILD_SHARED_LIBRARY)

USBPort为要生成的so库的名称
org_zz_jni_USBPort.c为源文件,就是3步骤的.c文件

可在新建一个application.mk文件,内容为

APP_ABI := all  

作用是生成全部平台的so库文件

5、利用ndk工具进行so库编译,生成各个平台的.so文件了。具体步骤,可参考
ndk编译
6、最后就是利用java代码调试,编译的so库是否可用咯。

以上只是自己的学习笔记,写得不是很好,勿怪勿怪!发现一篇挺不错的jni开发,推荐一下,有需要可以看下
jni开发

你可能感兴趣的:(学习笔记)