当前位置: 首页 > wzjs >正文

做外汇网站代理赚钱吗深圳网站公司排名

做外汇网站代理赚钱吗,深圳网站公司排名,新疆生产建设兵团社会保障网站,党建工作网站建设情况在 Flutter 混合开发中,iOS 端的 ​​Flutter 引擎初始化时机​​ 取决于集成方式(纯 Flutter 或混合开发)。以下是详细分析: ​​1. 纯 Flutter 应用(默认 Flutter App)​​ ​​初始化时机​​ ​​启动…

在 Flutter 混合开发中,iOS 端的 ​​Flutter 引擎初始化时机​​ 取决于集成方式(纯 Flutter 或混合开发)。以下是详细分析:


​1. 纯 Flutter 应用(默认 Flutter App)​

​初始化时机​
  • ​启动即初始化​​:当应用启动时,Flutter 引擎会在 main() 函数执行前自动初始化。
  • ​调用栈​​:
    UIApplicationMain → FlutterAppDelegate → FlutterEngine 初始化 → Dart `main()` 执行
​关键代码​
  • AppDelegate​(自动生成):
     

    swift

    复制

    @UIApplicationMain
    class AppDelegate: FlutterAppDelegate {override func application(_ application: UIApplication,didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {// FlutterEngine 已由父类 FlutterAppDelegate 初始化GeneratedPluginRegistrant.register(with: self) // 注册插件return super.application(application, didFinishLaunchingWithOptions: launchOptions)}
    }

​2. 混合开发(iOS Native + Flutter Module)​

​初始化方式​

开发者需 ​​手动控制​​ Flutter 引擎初始化时机,常见两种场景:

​① 提前初始化(应用启动时)​
  • ​目标​​:减少首次进入 Flutter 页面的延迟。
  • ​代码示例​​:
     

    swift

    复制

    // AppDelegate.swift
    import Flutter
    import FlutterPluginRegistrant@main
    class AppDelegate: UIResponder, UIApplicationDelegate {var flutterEngine: FlutterEngine?func application(_ application: UIApplication,didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {// 提前初始化 FlutterEngineflutterEngine = FlutterEngine(name: "io.flutter")flutterEngine?.run() // 启动 Dart 虚拟机GeneratedPluginRegistrant.register(with: flutterEngine!) // 注册插件return true}
    }
​② 懒加载(首次进入 Flutter 页面时)​
  • ​目标​​:节省内存,按需加载。
  • ​代码示例​​:
     

    swift

    复制

    // FlutterViewController 加载时初始化
    class FlutterWrapperViewController: UIViewController {private var flutterEngine: FlutterEngine?override func viewDidLoad() {super.viewDidLoad()flutterEngine = FlutterEngine(name: "flutter_engine")flutterEngine?.run(withEntrypoint: nil)let flutterVC = FlutterViewController(engine: flutterEngine!, nibName: nil, bundle: nil)addChild(flutterVC)view.addSubview(flutterVC.view)flutterVC.didMove(toParent: self)}
    }

​3. 关键结论​

​场景​​初始化时机​​优点​​缺点​
​纯 Flutter 应用​应用启动时自动初始化无需手动管理无法延迟,占用内存
​混合开发(提前)​在 AppDelegate 中提前初始化减少首次进入 Flutter 页面的延迟增加启动时间,占用内存
​混合开发(懒加载)​首次打开 Flutter 页面时初始化节省内存,按需加载首次进入可能有短暂延迟

​4. 性能优化建议​

  1. ​预初始化 + 缓存引擎​

    • 在 AppDelegate 中初始化并缓存 FlutterEngine,避免重复创建:
       

      swift

      复制

      class AppDelegate: UIResponder, UIApplicationDelegate {static let sharedFlutterEngine = FlutterEngine(name: "shared_engine")func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {AppDelegate.sharedFlutterEngine.run()return true}
      }
  2. ​多引擎管理​

    • 为不同的 Flutter 页面创建独立的 FlutterEngine(隔离状态):
       

      swift

      复制

      let profileEngine = FlutterEngine(name: "profile_engine")
      profileEngine.run(withEntrypoint: "profileMain")
  3. ​插件注册优化​

    • 懒加载非必要插件:
       

      swift

      复制

      flutterEngine?.plugins.add(MyLazyPlugin()) // 按需注册

​5. 常见问题​

​Q1:Flutter 引擎初始化失败怎么办?​
  • ​检查项​​:
    • Flutter 模块是否正确集成(flutter pub get 和 pod install)。
    • 确保 FlutterEngine.run() 调用在 ​​主线程​​ 执行。
​Q2:如何监听引擎初始化完成?​
  • 通过 FlutterEngine 的 binaryMessenger 属性判断:
     

    swift

    复制

    if flutterEngine?.binaryMessenger != nil {print("引擎已就绪")
    }
​Q3:引擎初始化耗时多久?​
  • ​实测数据​​(iPhone 13, Release 模式):
    • 冷启动:~200ms(首次初始化)。
    • 热复用:~10ms(已缓存引擎)。

​总结​

  • ​纯 Flutter 应用​​:引擎自动初始化,无需干预。
  • ​混合开发​​:根据需求选择 ​​提前初始化​​(优化体验)或 ​​懒加载​​(节省资源)。
  • ​最佳实践​​:预初始化 + 缓存引擎,平衡性能与内存占用。
http://www.dtcms.com/wzjs/274507.html

相关文章:

  • 哥哥做姐姐干网站房产网站建设
  • 怎么网站做二维码宁德市人民医院
  • 网站建设 英文百度推广好做吗
  • 什么网站系统好百度竞价排名费用
  • 都有什么公司需要网站建设网站的网络推广
  • 做网站 用什么建站软件好企业产品推广运营公司
  • wordpress外贸发布接口网站seo收录
  • 请兼职做企业网站设计怎么收费搜索引擎seo是什么意思
  • 网站的页面设计什么是网络营销?
  • 个人网站网站网站建设制作教程
  • 长沙做公司网站南昌seo网站管理
  • wordpress配置ip访问公司网站seo公司
  • 公司建设网站费用怎么记账软文广告是什么意思
  • 做学习交流网站营销广告
  • 个人博客网站模板素材中文搜索引擎排名
  • 荥阳市建设局网站搜索引擎优化方法包括
  • 庆阳市镇原县疫情最新情况网站页面优化内容包括哪些
  • 怎么看别人网站是哪里做的网站营销推广有哪些
  • 什么网站上做推广百度百家号官网
  • 网站收录下降原因怎么做网站广告
  • 个人可以采集视频做网站吗成都seo优化
  • 东莞网站建设设商丘 峰少 seo博客
  • 一级a做爰片免费网站丶网络营销价格策略有哪些
  • 推广自己的网站需要怎么做中国十大软件外包公司
  • 静态wordpress ajaxseo管理是什么
  • 给工厂做英文外贸网站seo搜索引擎优化内容
  • 宁波优化网站排名软件嘉兴seo网络推广
  • 帮企业建网站步骤社群运营的经典案例
  • 山东济宁网站建设设计杭州优化公司哪家好
  • 怎么用php做网站优化排名案例