flutter 通过使用FFi调用c代码(一)

1.两端添加c代码封装的库,
(1)iOS端.a静态库
(2)Android端.so动态库
一、iOS端添加静态库
1.flutter项目中iOS目录下添加Classes文件夹,导入.a静态库


iOS目录

2.Xcode工程中Target->build Setting ->Linke Binary With Library 添加 .a库(+ -> Add Other -< add Files)


Xcode添加库.png

3.Xcode打开iOS工程,Target->build Setting ->Other Link Flags 添加 -all_load
Other Link Flags

4.Target->build Setting ->Excluded Architectures
Excluded Architectures

5.调用
调用
    _dylib = ffi.DynamicLibrary.process();

二、Android端添加.so库
1.下载模拟器,(我是使用的是x86_64的模拟器)
2.准备好要添加的各架构需要的.so库(arm64,x86,x86_64)
3.Android配置好flutter环境
4.在目录Android/app/src/main下添加文件夹jniLibs(注意文件名不要写错)


jniLibs文件夹结构目录

5.在jniLibs文件下添加需要添加的架构库并把相应的so库添加到对应文件夹下
(就此添加库成功)

调用
    _dylib = ffi.DynamicLibrary.open("native.so");
```![截屏2022-02-14 下午6.02.40.png](https://upload-images.jianshu.io/upload_images/2080090-46cbeae44e2408f3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

https://flutter.cn/docs/development/platform-integration/c-interop
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容