當前位置:編程學習大全網 - 源碼下載 - Flutter初始化

Flutter初始化

新建壹個Flutter工程,android模塊。

1,只有壹個Activity組件,它是Dart層繪制Widget的容器。

2,Application配置FlutterApplication。

應用Application配置io.flutter.app.FlutterApplication類,App首次啟動時,初始化。

調用FlutterMain.startInitialization()方法。

initConfig方法,從AndroidManfest.xml配置的applicaion節點獲取meta-data數據,初始化以下默認值。

這些值都是使用中用到的name,例如,抽取apk中asset資源時,flutter_assets打包目錄,打包產物data名稱。

initResources方法, 初始化資源。

在Flutter打包apk的asset目錄下,包括fluttter_asset目錄/資源項,將資源從apk中抽取,保存在 Context.getDir("flutter", 0) 目錄下。

/data/user/0/包名/app_flutter目錄。

在目錄中創建壹個時間戳文件,根據apk版本和包信息記錄的lastUpdateTime更新時間,第二次啟動時,若apk未更新,不需要再次抽取。

加載so庫,libflutter.so,System.loadLibrary()。

主頁面繼承FlutterActivity,配置啟動模式singleTop。

FlutterActivity類在io.flutter.app包, (區別io.flutter.embedding.android包), 組件生命周期委托給FlutterActivityDelegate類。

組件啟動,onCreate方法。

FlutterMain.ensureInitializationComplete方法,確保資源成功抽取完成,創建FlutterView視圖(io.flutter.view),繼承SurfaceView類,setContentView方法,設置組件主布局即FlutterView視圖。

最後,根據Bundle路徑,runBundle()加載運行,

調用FlutterView的runFromBundle方法,入口點在dart的main方法,

通過FlutterNativeView,調用FlutterJNI的native方法。

nativeRunBundleAndSnapshotFromLibrary方法。

任重而道遠

  • 上一篇:64位操作系統是什麽?
  • 下一篇:追溯碼是強制性的嗎?
  • copyright 2024編程學習大全網