美文网首页
flutter基础认知

flutter基础认知

作者: sofarsogoo_932d | 来源:发表于2019-03-28 20:40 被阅读0次

    1.flutter工程

    在我们新创建一个flutter工程时,AS会有4种创建方式

    flutter工程.png
    • Flutter Application
      用flutter开发应用,适用于新起的项目
    • Flutter Plugin
      lib包,包含flutter代码和原生代码
    • Flutter Package
      lib包,只包含flutter代码
    • Flutter Moudle
      用flutter开发一个模块,适用于老项目开发某个业务模块

    2.老项目如何接入flutter

    通过上面的介绍,老项目选择Flutter Moudle的模式
    对于前端开发来说,可以通过flutter命令生成Flutter Moudle

    flutter create -t module my_flutter
    
    flutter_moudle工程结构.png

    对于Android开发者,我们可以将这个Flutter Moudle编译成一个aar包来使用

    步骤1:生成aar包

    执行以下命令

    cd .android/
    ./gradlew flutter:assembleDebug
    

    在.android/Flutter/build/outputs/aar/路径下会生成flutter-debug.aar

    步骤2:gradle配置

    普通的aar包集成方式添加到app中

    repositories {
        flatDir {
            dirs 'libs'   // aar文件目录
            dirs '../extrenal/zxing/libs'
        }
    }
    
    implementation(name: 'flutter-debug', ext: 'aar')
    
    步骤3:代码调用

    Application中初始化

    public class App extends Application {
        @Override
        public void onCreate() {
            super.onCreate();
            FlutterMain.startInitialization(this);
        }
    }
    

    创建一个Activity集成自FlutterActivity

    public class MainFlutterActivity extends FlutterActivity {
      @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        GeneratedPluginRegistrant.registerWith(this);
      }
    }
    

    启动这个Activity,这样就会跳转至Flutter Moudle的默认页面了

    public void jump_flutter() {
        Intent intent = new Intent(this, MainFlutterActivity.class);
        startActivity(intent);
    }
    
    遇到的坑

    1.出现了crash

    flutter_aar包崩溃.png

    解决办法

    ./gradlew flutter:assembleDebug  替换为  ./gradlew  assembleDebug
    

    两个包打出来,发现前者缺少了部分文件

    1. 包大小问题

    debug下,发现aar包大小为23.8MB
    release下,发现aar包大小为5.2MB

    flutter_aar_debug包目录结构.png flutter_aar_release包目录结构.png

    从上图可以看出,debug包会包含3种类型so库,而release只包含arembi-v7a类型的so库

    3.打开Flutter界面会黑屏问题
    debug包会黑屏,release的包则没有这问题

    相关文章

      网友评论

          本文标题:flutter基础认知

          本文链接:https://www.haomeiwen.com/subject/sjccbqtx.html