本博客主要说明在Android Studio中使用jin调用C中代码打开设备节点并且发送命令,在安卓中不能直接调用C方法,只能通过.c文件生成So库,使用安卓代码调用so库在调用C文件中的方法

废话不多说,直接上代码:

我的Android Studio项目目录:

android 纯c 调试 安卓调用c库_android 纯c 调试


下面是C文件内方法:

android 纯c 调试 安卓调用c库_android 纯c 调试_02


android 纯c 调试 安卓调用c库_android 纯c 调试_03


除了.c文件,这几个文件也是生成so库文件的必要文件

android 纯c 调试 安卓调用c库_so库_04


这几个文件内容如下:

android 纯c 调试 安卓调用c库_Android_05


android 纯c 调试 安卓调用c库_Android_06


android 纯c 调试 安卓调用c库_Android_07


android 纯c 调试 安卓调用c库_android 纯c 调试_08


到这里基本上就可以生成自己的so库了,具体步骤如下:

进入项目目录下,找到刚才新建的那几个文件的文件夹,我的是:

android 纯c 调试 安卓调用c库_Android_09


在这个文件夹下shift+右键,选择 "在此处打开命令窗口"打开之后如下:

android 纯c 调试 安卓调用c库_方法名_10


之后输入命令:ndk-build可以看到如下说明生成成功:

android 纯c 调试 安卓调用c库_方法名_11


默认生成的在src/libs下面:

android 纯c 调试 安卓调用c库_Android_12


到此生成我们需要的so库,接下来就是用安卓代码调用so库了:

需要注意的是:在上面.C文件中的C方法名称:

android 纯c 调试 安卓调用c库_so库_13


接下来按照这个方法名称建包,建类(注意一定要和.c文件方法名称一致):

android 纯c 调试 安卓调用c库_android 纯c 调试_14


建好之后就可以在启动的Activity中创建对象,调用对象的方法,并且发送命令:

android 纯c 调试 安卓调用c库_Android_15


android 纯c 调试 安卓调用c库_so库_16