• 跨平台开发方案调研


    1 uni-app介绍

    uni-app 是一个使用 Vue.js开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝)、快应用等多个平台。

    • DCloud公司拥有900万开发者、数百万应用、12亿手机端月活用户、数千款uni-app插件、70+微信/qq群。阿里小程序工具官方内置uni-app,腾讯课堂官方为uni-app录制培训课程,开发者可以放心选择。
    • uni-app在手,做啥都不愁。即使不跨端,uni-app也是更好的小程序开发框架、更好的App跨平台框架、更方便的H5开发框架。不管领导安排什么样的项目,你都可以快速交付,不需要转换开发思维、不需要更改开发习惯。

    2 flutter介绍

    Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。

    2.1 主要特点

    • 快速开发

      Flutter的热重载可帮助您快速地进行测试、构建UI、添加功能并更快地修复错误。在iOS和Android模拟器或真机上可以在亚秒内重载,并且不会丢失状态。

    • 富有表现力,漂亮的用户界面

      使用Flutter内置美丽的Material Design和Cupertino(iOS风格)widget、丰富的motion API、平滑而自然的滑动效果和平台感知,为您的用户带来全新体验。

    • 现代的,响应式框架

      使用Flutter的现代、响应式框架,和一系列基础widget,轻松构建您的用户界面。使用功能强大且灵活的API(针对2D、动画、手势、效果等)解决艰难的UI挑战。

    2.2 安装和配置

    2.2.1 Windows

    (1)系统配置要求

    • 操作系统:Windows10或更高版本(基于x86-64的64位操作系统)。
    • 系统设置:启用开发者模式。
    • 依赖工具:

    (2)获取Flutter SDK

    (3)更新path环境变量

    • 控制面板->系统和安全->系统->高级系统设置->环境变量->用户变量。
    • 找到path条目(没有则新建path条目),加入flutter/bin的完整路径。

    (4)运行flutter doctor检查(根据检查结果,完成依赖配置)。

    2.2.2 Linux

    (1)系统配置要求

    • 操作系统:Linux64位。
    • 命令工具:bash、curl、file、git 2.x、mkdir、rm、unzip、which、xz-utils、zip。
    • 公用库:libGLU.so.1。

    (2)获取Flutter SDK

    # 更新软件源
    sudo apt-get update
    # 安装snap工具
    sudo apt-get install snap
    # 安装flutter
    sudo snap install flutter --classic
    

    (3)运行flutter doctor检查(根据检查结果,完成依赖配置)。

    2.3 运行与发布

    flutter常用命令:

    # 查看帮助
    flutter -h
    # 创建项目
    flutter create Project_Name
    # 运行项目
    flutter run
    	--v				# 查看日志输出
    	--release		# 发布模式
    	--debug			# 调试模式
    	--hot			# 热重载启动
    # 查看设备列表
    # 设备名称	·	设备ID	·	系统架构	·	系统版本(API版本)
    flutter devices
    # 切换设备
    flutter run -d 设备名称/设备ID
    # 安装程序
    flutter install
    # 查看配置情况	加-v可查看详细情况
    flutter doctor
    # 升级flutter
    flutter upgrade
    # 打包apk
    flutter build apk
    # 添加平台支持
    flutter create --platforms=windosw,macos,linux .
    
    2.3.1 运行到Windows平台
    # 1.为已有的 Flutter 项目添加桌面支持
    flutter create --platforms=windows .
    # 2.确保开启开发者模式
    start ms-settings:developers
    # 3.基于Android Studio IDE开发的移动应用运行到Windows
    flutter run -d windows
    

    image-20220903120557203

    2.3.2 发布到Windows平台
    # 构建发布版本
    flutter build windows --release
    # 生成的发布版路径为 /build/windows/runner/release
    # release目录结构如下
    .
    ├── amc1600e.exe		// 可执行程序
    ├── data				// 包含应用资源文件,如字体和图片
    └── flutter_windows.dll	// 必需的动态库文件
    
    2.3.3 运行到Linux平台
    # 1.为已有的 Flutter 项目添加桌面支持
    flutter create --platforms=linux .
    # 2.基于Android Studio IDE开发的移动应用运行到Ubuntu
    flutter run -d linux
    

    image-20220903141417063

    2.3.4 发布到Linux平台
    # 构建发布版本
    flutter build linux --release
    # 生成的发布版路径为 /build/linux/x64/release/bundle
    # bundle目录结构如下
    .
    ├── amc1600e	// 可执行程序
    ├── data		// 包含应用资源文件,如字体和图片
    └── lib			// 包含必需的动态库文件
    
    2.3.5 运行到Android平台

    在项目路径下,按住Shift,单击右键,选择在此处打开Powershell窗口:

    • 输入flutter devices查看设备列表。

    • 输入flutter run -d emulator-5554

    image-20220903111512498

    2.3.6 发布到Android平台

    (1)检查APP Manifest

    (2)查看构建配置

    (3)添加启动图标

    (4)APP签名

    (5)开启混淆压缩

    (6)构建发布版apk

    # 构建apk
    flutter build apk
    # 安装apk
    flutter install
    

    3 对比分析

    跨平台方案优点缺点
    uni-app1. 内部兼容了vue的写法,用于跨平台。
    2. 同时支持发布到iOS、Android、Web、多家主流小程序、快应用等多个平台。
    1. 很多web库以及第三方web库都不支持。
    2.如果想个性化定制功能或UI界面比较难,基本上只能按照uni-app的要求去做。
    3. 对移动设备的调试和兼容不太友好。
    flutter1. 快速开发,支持毫秒级热重载。
    2. 提供丰富的组件支持,富有表现力和灵活的UI。
    3. 自带渲染引擎,不依赖于任何平台,可达到原生应用一样的性能。
    4. 开源免费,提供社区支持。
    5. 一套代码即可编译成多个平台的应用程序(移动、Web、桌面、嵌入式)。
    1. 需要了解dart语言。
    2. 需要了解原生开发。
  • 相关阅读:
    创建一个给定形状的数组,并用给定的值填充numpy.full()
    React函数式组件渲染、useEffect顺序总结
    Linux系统中使用CURL模拟请求HTTP服务
    PrintWrter中的write()和print()方法
    回归预测 | MATLAB实现RBF径向基神经网络多输入多输出预测
    Deformable DETR(2020 ICLR)
    电脑案件冲突问题
    爬虫之xpath插件下载与安装
    Vue自定义指令
    英特尔12代酷睿架构,十二代酷睿架构
  • 原文地址:https://blog.csdn.net/qq_40531408/article/details/126689257