之前在 [ 跨平台应用程序开发框架那家强?] 一贴总请教了一下跨平台框架选型的问题。现在已经进入 Dart 和 Flutter 初学阶段, 目前遇到一些疑惑,再次请教一下各位:
Flutter 在生成目标平台的时候和之前的 Qt 一样都付带一个 Flutter 运行支持库(比如:Windows 会生成一个 flutter_windows.dll ; Android 会生成多个不同架构的 libflutter.so ),第三方框架附带一个运行支持库也不是什么问题,问题是:
这个库文件是只编译打包了程序依赖的部分,还是不论程序是否用到都一并讲整个框架打包进去(类似 Qt 支持库)? 之所以这样问无非就是整个库太大了(比如:flutter_windows.dll 整个库最小就 15M ),很多时候远远大于纯原生程序,这个问题如何破?
运行支持库支持静态直接编译进目标程序文件总吗,特别是 Linux / Windows 这种 PC 平台上是否支持?
这个运行支持库是只能固定这个名字还是可以做自定义(比如: 修改 CMakelist.txt 等方式),毕竟每个平台应用的目录结构,命名规则或者说开发者习惯等都有一些不同,如果是不能修改看起来就很怪异!
运行支持库生成的时候如何分别增加平台二进制包独有的扩展属性,比如:Windows 下 flutter_windows.dll 这个库 就不包含 版本信息,含文件说明、文件版本、版权等信息。我看框架生成的 exe 都支持这些扩展属性,所以我想应该是可以通过修改 CMakelist.txt 等方式实现。
除了上面运行支持库,框架还会生成一个 data 目录里面又包含了很多文件(如下图),这个文件夹也是必须的吗,还是仅仅是我的程序默认需要这个(因为我删除之后程序启动就闪退)?说实话这个文件及其里面的东西不论从大小( app.so 3M 多)还是里面文件的命名方式( windows 下 app.so )等还是都很难让人感觉到专业。
不知道这一些问题是一个跨平台框架需要考虑的问题吗,还是只要实现快速跨平台开发即可,根本不用考虑包大小和个平台特异性和规范的问题?我认为一个应用除了 性能,开发便捷之外,臃肿和是否符合各平台规范和特性应该也应该考量
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.