Flutter 插件开发总结

一、Service的声明
在插件中,有使用到Service时,插件项目中需要在AndroidManifest.xml中声明,同时依赖插件的宿主项目也需要在AndroidManifest.xml中声明。这是因为 Android 系统要求在应用的清单文件中明确声明所有服务。

二、原生调用Flutter的函数

// Android中调用
methodChannel?.invokeMethod(Constant.STEP_SLEEP_HISTORY,data)

// flutter中调用 setMethodCallHandler
FlutterWearPlatform.instance
        .getMethodChannel()
        .setMethodCallHandler((MethodCall call) async {
}

三、jar、aar、so文件的配置

  • 在android目录下面创建libs文件夹,存放jar和aar文件
  • 在android/src/main目录下创建jniLibs 文件夹,存放so文件
  • 在android/build.gradle文件中配置 flatDir
rootProject.allprojects {
    repositories {
        google()
        mavenCentral()
        maven { url 'https://www.jitpack.io' }
        flatDir {
            dirs project(':flutter_test').file('libs')
        }
    }
}
image.png

四、插件中使用gson进行序列化时,启用混淆会导致属性字段被修改,flutter层收到的数据无法解析
需要在宿主项目中添加gson相关类和对象类避免被混淆

# 保留 Gson 使用的类和字段名称
-keepattributes Signature
-keepattributes *Annotation*

# 保留 Gson 的所有模型类
-keep class com.smartgoyucheng.flutter_wear.** { *; }

# 保留所有在 Gson 中使用的类
-keep class com.google.gson.** { *; }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容