///直接编译cpp文件
把cpp文件放到android/app/下面 并且创建CMakeLists.txt文件
CMakeLists.txt文件内容 :
cmake_minimum_required(VERSION 3.4.1)
add_library(
# 编译打包出来的lib文件名称,以下打包出来为:libaddlib.so
addlib
# 动态库使用:SHARED、静态库使用:STATIC
SHARED
# 源文件可以放在别的地方
addlib.cpp
)
配置build.gradle android 下面添加
externalNativeBuild {
cmake {
path "CMakeLists.txt"
}
}
使用
import 'dart:ffi';
final addLib = DynamicLibrary.open('libaddlib.so');
final addFunc = addLib.lookupFunction<Int32 Function(Int32, Int32),
int Function(int, int)>('add');
int result = addFunc(1, Random().nextInt(100));
///直接使用打包的so文件
///几个系统架构都放进去
///把so文件放到 build/app/intermediates/merged_native_libs/debug/out/lib/armeabi-v7a/libaddlib.so
/// 正式环境 同理
使用
import 'dart:ffi';
final addLib = DynamicLibrary.open('libaddlib.so');
final addFunc = addLib.lookupFunction<Int32 Function(Int32, Int32),
int Function(int, int)>('add');
int result = addFunc(1, Random().nextInt(100));