欢迎来到飞鸟慕鱼博客,开始您的技术之旅!
当前位置: 首页知识笔记正文

android so加载过程,android加载so库

终极管理员 知识笔记 136阅读
一、前言

这几天用Android整合开源的RTMP推拉流都没成功好几年没玩Android了碰到好多坑在Android中为了效率难免需要调用C语言编写生成的SO文件比如图片渲染加速视频编解码等插件今天我们就先聊一下在Android中如何加载SO文件。

二、Android手机CPU架构 1、Android系统支持的CPU架构

armeabi:第五代、第六代ARM处理器使用软件浮点运算很古老的手机是这架构。

armeabi-v7a:第七代ARM处理器使用硬件浮点运算2018年以前手机主流架构。

arm64-v8a第八代64位处理器当前主流架构。

x86/x86-64平板和Android模拟器用得比较多。

每一种CPU架构对应一个ABIABI定义了二进制文件比如SO如何运行在相应的系统平台。

2、如查查看手机的CPU架构

USB连上手机打开开发者模式

# adb shell    

查看CPU架构  

# getprop ro.product.cpu.abi

小米11青春版   arm64-v8a

AndroidStudio自带模拟器   x86

三、Android Studio配置加载SO

build.gradle

android {  defaultConfig {    ndk {abiFilters armeabi,x86, armeabi-v7a, armeabi-v8a,arm64-v8a     }   }   sourceSets {     main {       jniLibs.srcDirs  [jniLibs]     }   }}

so文件目录结构

如果你的代码要直接调用SO中的方法需要LoadLibray加载包并且定义native方法。

注上面例子我是引入vitamio开源想实验一下RTMP拉流播放现在SO库是能正常加载了但播放不了报错误信息如下估计是SO版本的兼容性。

另如果有人对Android的RTMP推拉流开源比较熟悉推荐一个简单易用可以快速整合到自己项目里的直接用底层 ffmpeg库去玩太难了我只想稍微玩一把就好。

标签:
声明:无特别说明,转载请标明本文来源!