android创建so和调用流程

本文详细介绍了如何在Android中创建和调用.so文件的过程。首先,通过JNI接口定义native方法,使用javac -h生成.h文件,然后在C++中实现接口并编写Android.mk和Application.mk文件。接着,通过ndk-build生成.so文件,并解决可能的环境配置问题。在调用.so文件时,需要将libs文件夹复制到工程中,修改build.gradle配置,根据Java包名创建相应路径,并在Java代码中调用.so文件中的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原因:由于需要将混音模块封装成android的.so,故在此记录一下有关so的创建和流程调用

概况:通过JNI编写生成.so文件,通过.so文件进行内部方法的调用.

JNI:java native interface,是native编程接口,它允许在java虚拟机内运行java代码与其他编程语言(一般C/C++)模块进行交互。

JNI调用原因:

1:标准java类库中不支持应用程序所需的功能。

2:已经有了其他语言开发的模块,需要与java进行交互

3:利用C/C++核心代码的实现

 

有关.so文件的创建流程如下:

1:创建新项目MainActivity,创建WebRtcMixer.java文件,在该文件中定义需要暴露的native接口。

2:在main文件夹下创建一个文件夹名称为JNI,主要用于存放后续生成的JNI文件。

3:利用android studio 的Terminal命令行进入JNI文件夹下,然后使用javac -h生成JNI对应的.h文件.(使用javac而没有使用javah,是因为当前安装的android sdk内部没有javah.exe),可以看到在当前JNI文件夹中生成了xx_xx_xx_WebRtcMixer.h文件

javac -h . XXXXXXXX\WebRtcMixer.java

4:在JNI文件夹中创建对应的.cpp文件实现.h中的方法.其中涉及到一些JNI类型与C的映射关系,可以简单分为基本数据类型和引用类型,基本数据类型可直接进行数据操作,而引用类型是需要通过对象指针对应的不同方法进行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值