一、Service的聲明
在插件中状植,有使用到Service時,插件項目中需要在AndroidManifest.xml
中聲明津畸,同時依賴插件的宿主項目也需要在AndroidManifest.xml中聲明。這是因為 Android 系統(tǒng)要求在應(yīng)用的清單文件中明確聲明所有服務(wù)后频。
二、原生調(diào)用Flutter的函數(shù)
// Android中調(diào)用
methodChannel?.invokeMethod(Constant.STEP_SLEEP_HISTORY,data)
// flutter中調(diào)用 setMethodCallHandler
FlutterWearPlatform.instance
.getMethodChannel()
.setMethodCallHandler((MethodCall call) async {
}
三卑惜、jar驻售、aar、so文件的配置
- 在android目錄下面創(chuàng)建
libs
文件夾抱环,存放jar和aar文件 - 在android/src/main目錄下創(chuàng)建
jniLibs
文件夾,存放so文件 - 在android/build.gradle文件中配置
flatDir
rootProject.allprojects {
repositories {
google()
mavenCentral()
maven { url 'https://www.jitpack.io' }
flatDir {
dirs project(':flutter_test').file('libs')
}
}
}
四镇草、插件中使用gson進(jìn)行序列化時梯啤,啟用混淆會導(dǎo)致屬性字段被修改,flutter層收到的數(shù)據(jù)無法解析
需要在宿主項目中添加gson相關(guān)類和對象類避免被混淆
# 保留 Gson 使用的類和字段名稱
-keepattributes Signature
-keepattributes *Annotation*
# 保留 Gson 的所有模型類
-keep class com.smartgoyucheng.flutter_wear.** { *; }
# 保留所有在 Gson 中使用的類
-keep class com.google.gson.** { *; }