您的当前位置:首页正文

关于如何利用JNI把C/C++文件编译生成安卓可调用的动态库

来源:要发发知识网

在很多的工程中安卓工程中,有许多底层代码都是用C/C++写的, 且很多会封装成库,因为C/C++的代码效率高,所以就有一个问题是如何生成安卓可调用的动态库即so文件, 下面一一到来

  1. 解压文件。
    设置系统变量,在系统变量PATH添加刚才解压的NDK文件路径


    图片.png

    设置成功后在CMD中执行

ndk-build

会出现如下


图片.png

否则会提示找不到命令

注意:
(1)NDK的路径一定要选到这一层


图片.png

(2)系统变量有时候刚设置完后并不会使能,可能需要重启电脑

  1. 创建Android.mk文件以及Application.mk文件
    Android.mk文件内容如下
LOCAL_PATH := $(call my-dir)  
include $(CLEAR_VARS)  
LOCAL_MODULE := hello  
LOCAL_SRC_FILES := hello.c
include $(BUILD_SHARED_LIBRARY) 
APP_STL :=  stlport_static
  1. NDK目录下新建JNI文件夹
    把要编译的C/C++文件,上面建的两个文件,都放入其中

  2. 在CMD窗口下,切换到NDK目录下
    然后执行

ndk-build
图片.png

编译成功后,会自动生成两个文件夹libs, 和obj
libs下就是针对不同平台生成的so动态库文件


图片.png

任务圆满完成!