首页 > 其他分享 >android studio 调用第三方无源代码so

android studio 调用第三方无源代码so

时间:2024-07-29 21:17:06浏览次数:11  
标签:源代码 studio 调用 so SO android main 第三方


android studio 调用第三方无源代码so

在Android Studio中调用第三方无源码的SO(共享库),你需要遵循以下步骤:

  1. 将SO文件放置在项目中合适的位置。

  2. 配置app的build.gradle文件,确保Gradle在构建应用时知道SO文件的位置。

  3. 在Java/Kotlin代码中使用JNI接口加载SO库。

以下是一个简单的例子:

  1. 将SO文件放置在src/main/jniLibs/<ABI>目录下,其中<ABI>是指Android应用二进制接口(例如:armeabi-v7a, arm64-v8a, x86等)。

    src/main/jniLibs/ └── armeabi-v7a └── libthirdparty.so
  1. build.gradle中配置JNI库的位置(如果你的SO文件不在默认的位置):

    android { // ...   sourceSets { main { jniLibs.srcDirs = ['src/main/jniLibs'] } } }
  1. 在Java代码中加载SO库并使用其功能:

    public class MainActivity extends AppCompatActivity {   static { System.loadLibrary("thirdparty"); // 不需要前缀lib和后缀.so }   @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);   // 调用第三方库的函数 nativeMethod(); }   // 用于被JNI调用的本地方法声明 private native void nativeMethod(); }

确保你的nativeMethod与第三方SO中C/C++的函数原型相匹配。

最后,重新构建项目,确保SO文件被包含在APK中,并且设备的ABI支持该SO文件。

标签:源代码,studio,调用,so,SO,android,main,第三方
From: https://www.cnblogs.com/macanpsc/p/18331106

相关文章

  • CF1768D Lucky Permutation Solution
    CF1768D题意不再简述。首先题目要求变成逆序对只有一个的排列,也就是说,我们可以先考虑将一个排列通过交换元素变成另一个排列最小的步数,我们可以将两个排列相同位置上的数连边,很显然会形成几个环,若排列长度为\(n\),形成\(t\)个环,每个环长为\(len_i\),则每个环交换完至少是依次......
  • 手搓Lock注解,一举解决redisson分布式锁
    最近闲来时间,写了个redis-lock-stater,在pom中引入即可,直接在所要加锁的函数中使用@lock注解即可1、首先需要了解什么是分布式锁分布式锁是控制分布式系统之间同步访问共享资源的一种方式。在分布式系统中,常常需要协调他们的动作,若不同的系统或是同一个系统的不同主机之间共享了......
  • Solution - Atcoder UTPC2023P Priority Queue 3
    考虑找一些关于合法的\(X\)加入的数的判定条件。假设遇到了一个\(\operatorname{pop}\)操作,令这里删除的数为\(a_i\),显然\(X\)中的数应该要有\(a_i\),其次\(X\)中其他的加入的数要么\(>a_i\)要么是\(a\)中的元素(在前面的\(\operatorname{pop}\)就已经被删了)。于......
  • 安全可信,Solon v2.8.6 发布
    Solon框架!Java“纯血国产”应用开发框架。开放原子开源基金会,孵化项目。从零开始构建(非java-ee架构),有灵活的接口规范与开放生态。追求:更快、更小、更简单提倡:克制、简洁、高效、开放、生态有什么特点?特点描述更高的计算性价比并发高2~3倍;内存省50%更......
  • ansible执行source /etc/profile不生效
    ansible执行source/etc/profile不生效ssh登录有两种模式:1.loginshell用SSH客户端(比如Putty、xshell)登陆Linux系统时,要求输入用户名/密码登录或根据SSHkey登录时,就是loginshell。non-loginshell而在A机器上使用SSH免密码登录B机器,就是non-logins......
  • VisualStudio —— Batch文件设置环境变量并启动VS项目
    VS开发C++项目经常会依赖一些SDK、库和环境变量,需要设置包含的附加库目录路径,直接在VS的项目属性、配置上进行修改会导致项目的可移植性差。因此通过创建batch文件,并将一些依赖的环境变量设置在里面,然后在该batch文件中直接启动新的进程,来打开VS项目会更加便捷。以下示例中,VS项......
  • 使用Spring WebSocket实现实时Java应用
    使用SpringWebSocket实现实时Java应用大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!今天,我们来探讨一下如何使用SpringWebSocket实现实时Java应用。WebSocket是一种在客户端和服务器之间建立长连接的协议,适用于需要实时数据更新的场景。Spring提供了对......
  • [米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-19 读写I2C接口EEPROM实验
    软件版本:Anlogic-TD5.9.1-DR1_ES1.1操作系统:WIN1064bit硬件平台:适用安路(Anlogic)FPGA实验平台:米联客-MLK-L1-CZ06-DR1M90G开发板板卡获取平台:https://milianke.tmall.com/登录"米联客"FPGA社区http://www.uisrc.com视频课程、答疑解惑! 1概述前面的课程中,我们......
  • 【RTT-Studio】详细使用教程六:按键检测实现
    文章目录一、简介二、RTT时钟配置三、初始化配置四、完整代码五、测试验证一、简介本文主要介绍在RT-ThreadStudio中,如何对按键进行检测,分为两种方式进行检测:状态机方式:可以检测按键的单击、双击和长按,并且可以设置三个状态的检测时间长短,主要分为五个状态:未按、......
  • MPsoc TSN网络功能设计及测试 (petalinux22.2)
    TSN参考链接:linkxilinx内核TSNkernel代码链接:linkpetalinux-config-ckernel选择如下:TSNPL端设备树配置代码tsn0_axi_firewall_0:axi_firewall@a0020000{ clock-names="aclk"; clocks=<&misc_clk_0>; compatible="xlnx,axi-firewall-1.2&qu......