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了。

更多相关文章

  1. Ubuntu 16.04 编译全志6.0Android源码
  2. Android.mk写法
  3. Android(安卓)版本兼容问题(一)
  4. AndroidKiller高版本反编译失败解决
  5. Android(安卓)studio4.0.1尝鲜
  6. Android(安卓)Studio增量更新方法
  7. 编译cubieboard android 源码过程详解之(七):lichee build
  8. 解读:下载Android源码时为什么对Python版本有要求
  9. Android(安卓)GreenDao3.2.2简单使用

随机推荐

  1. Android可滑动的Tab页
  2. 2011.06.23——— android 事件处理机制
  3. android中 sqlite sql操作
  4. Android(安卓)用AsyncTask下载网络图片并
  5. Android中的BatteryService及相关组件
  6. Android
  7. Android的API版本和名称对应关系
  8. android kitkat(4.4以上)各个版本的特性解
  9. 使用Android(安卓)Studio开发FFmpeg的正
  10. Android(安卓)WebSocket通信通过Service