1) 和原生Android开发的NDK技术一样,编译出.so动静库(下文称之为libgalaxy.so,蕴含简略的native_add函数
int32_t native_add(int32_t x, int32_t y) {return x + y;}
)。并把动静库拷贝到flutter我的项目的android/app/src/main/jniLibs子目录下:
要留神因为flutter应用的是比拟新的android技术,所以NDK编译套件也是须要比拟新的,因为libflutter.so提供的平台版本都是比拟新的,如果NDK编译进去的libgalaxy.so动静库只蕴含较老的平台版本,会导致libflutter.so反对的平台libgalaxy.so不反对,导致运行时找不到定义的C函数。
2) 编辑android/app目录下的build.gradle,减少以下内容:
release版本要管制包的大小,所以,限定只须要提供armeabi-v7a和arm64-v8a,如果不做此限定,打包时,会把libgalaxy.so的x86和x86_64也打进release版本!这就没有必要了。当前甚至能够只打包arm64-v8a版本。(如果上一步jniLibs目录下只提供了arm64-v8a版本,这一个就不必做了)
debug局部,我认为就没有必要做abiFilters限定了,由flutter编译器本人决定吧,多打几个版本进去也无所谓了。
3) main.dart里的内容:
main函数下面的局部,能够独自拎进去放在一个dart文件中。
这样就OK了。