Android Studio 5步导入 .SO 原生代码库文件

本文介绍如何在Android Studio项目中引入并使用第三方SO文件。主要包括两步:添加SO文件到项目并设置编译配置;通过JNI调用SO文件中的函数。文中详细解释了SO文件的放置位置、编译配置的设置以及JNI类的编写。

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

Android Studio 项目中要使用第三方的SO文件,总体分为两步:


1). 添加

添加 so 到项目中,并在模块 "编译配置文件" 中设置 so 文件所在的目录, 以便在生成最终的 apk 文件时能将 so 文件包进去。

a).  so 文件放到哪目录不重要,勿须听网上那些大忽悠转来转去的。

	只需要在编译配置文件中指定路径即可!如: jniLibs.srcDirs = ['./libs_so']
b).  只要指定的路径里面有 so 文件就能成功被打包到最终的 apk 文件中(注意要添加一级CPU架构目录)。




2). 调用

将 so 文件的导出函数封装成 java 类,即编写 JNI 类,以便在代码中调用 so 中的函数。

a). 有些大公司提供的 SO 库,是顺带提供这个类的,通常是 jar 文件的形式, 也有可能是 java 文件的形式。

b). 貌似有 Android Studio 插件, 可实现自动 导出SO文件为 JNI 类的功能。

c). 自己编写 JNI 类Java文件可以参考: http://www.open-open.com/lib/view/open1460553152389.html  的 STEP2  一节。

d). 自己编写 JNI 类时, 类的包名有规定,包名不能随便写,必须对应于 SO 文件中的导出函数名称。否则:UnsatisfiedLinkError: No implementation found


举个例子:

SO 中的函数名如:

Java_com_example_hellojni_HelloJni_stringFromJNI(****)
那 JNI 类的属性如下:

包名:com.example.hellojni

类名:public native String stringFromJNI();

完整的类如下所示:

package com.example.hellojni;

public class HelloJni {
    public native String stringFromJNI();
    
    static {
        System.loadLibrary("hello-jni");
    }
}














评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值