浅谈跨平台框架 Flutter 的搭建与运行 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
getui
V2EX    问与答

浅谈跨平台框架 Flutter 的搭建与运行

  •  
  •   getui 2019-05-22 21:10:47 +08:00 2875 次点击
    这是一个创建于 2334 天前的主题,其中的信息可能已经有所发展或是发生改变。

    作者:个推 iOS 开发工程师 伊泽瑞尔

    Flutter 是 Google 推出的跨平台的解决方案,用以帮助开发者在 Android 和 iOS 两个平台开发高质量原生应用的全新移动 UI 框架。 之前我们为大家介绍了《跨平台框架 Flutter 的优势与结构》,概括了 Flutter 选择 Dart 语言的必要性及其自底而上的框架结构,大家可以点击标题链接来回顾前文。在本文中,我们将带大家进一步了解 Flutter 的搭建与运行。

    01Flutter 开发环境搭建( Windows 版)

    一、系统环境要求:要安装并运行 Flutter,开发环境必须满足以下条件。 操作系统:Windows 7 或更高版本( 64-bit ); 磁盘空间:400MB ; 工具:Flutter 依赖 PowerShell 5.0 或更新的版本和 Git for Windows ( Git 命令行工具)这些命令行工具。

    我们可以去 Flutter 官网下载最新可用的安装包。 下载地址: https://flutter.io/sdk-archive/#windows 注意:Flutter 的渠道变动频繁,请以官网为准。同时,我们也推荐去 Flutter github 项目下下载安装包。 下载地址: https://github.com/flutter/flutter/releases

    下载完成后,请先将安装包 zip 解压到想安装 Flutter SDK 的路径(注意:不要将 Flutter 安装到需要高权限的路径,如 C:Files)。之后,在 Flutter 安装目录的 flutter 文件下找到 flutter_console.bat ,双击运行并启动 flutter 命令行。

    二、更新环境变量:若想在 Windows 系统自带命令行运行 flutter 命令,开发者需要添加以下环境变量到用户 PATH:“控制面板->用户账户->更改我的环境变量”,同时,在“用户变量”下检查是否有名为“ Path ”的条目:如果该条目存在,追加 flutter \ bin 的全路径,使用;作为分隔符。如果该条目不存在,创建一个新用户变量 Path,然后将 flutter \ bin 的全路径作为它的值。Flutter 的执行需要联网,还需要设置: export PUB_HOSTED_URL=https://pub.flutter-io.cn export FLUTTER_STORAGE_BASH_URL=https://storage.flutter-io.cn

    三、运行 flutter doctor 命令:开发者需在 Flutter 命令行运行 flutter doctor 命令来查看是否需要安装其它依赖,如果需要,则进行安装。在终端中输入 flutter doctor,如果出现和下图类似的结果,甚至得到的 x 比图示更多,主要原因是没有安装 Android studio。下面我们将列出 Android Studio 的安装步骤。

    四、Android Studio 的安装: 在官网下载 Android Studio,下载地址: https://developer.android.com/; 启动 Android Studio,执行“ Android Studio 安装向导”并安装最新的 Android SDK、Android SDK 工具和 Android SDK 构建工具,这些都是用 Flutter 进行 Android 开发所需要的; 打开 Android Studio 软件,找到 Plugin 的配置,搜索 Flutter 插件,出现如图所示页面。点击中间“ Search in repositories ”,然后点击安装,全部安装完成后需重启。

    五、安装 Android 证书 安装好 Android Studio 后,再次打开终端(命令行),输入 flutter doctor,这时 x 的数量会明显减少,但可能还是会遇到 1-2 个,如果只有 1 个就说明没有安装证书,开发者只需在终端里执行以下命令即可: flutter doctor --android-licenses 当提示 Y/N 选择时,请直接选择 Y 即可完成安装。

    02Flutter 开发环境搭建( Mac 版)

    一、系统环境要求:要安装并运行 Flutter,开发环境必须满足以下条件。 操作系统:MacOS ( 64-bit ); 磁盘空间:大于 700M,如果算上 Android Studio 等编辑工具,尽量大于 3G ; 命令行工具:bash、mkdir、rm、git、curl、unzip、which、brew。

    二、下载 Flutter SDK 包: 推荐在官网下载,网址: https://flutter.io/setup-macos/ 。 下载完成后,解压安装包到想安装的目录,如:cd ~/development unzip ~/Downloads/flutter_macos_v0.5.1-beta.zip

    三、配置环境变量 压缩包下载好以后,选择位置进行解压,压缩包解压的位置在下面配置环境变量的时候仍要使用。 首先打开终端工具,使用 vim 进行配置环境变量,命令如下: vim ~/.bash_profile 然后,在打开的文件里增加一行代码,配置 flutter 命令,使其在任何地方都可以使用。添加的代码为: export PATH=/app/flutter/bin:$PATH 这行命令需要根据压缩包解压的位置来进行编写,内容是你的路径。配置完成后,还需用 source 命令重新加载,具体命令如下: source ~/.bash_profile 完成以后,flutter 的安装工作已基本完成,但要进行开发,还需要使用命令来检测其是否成功安装。

    四、检查开发环境:如上图所示,已经成功安装了 Flutter,但是还不具备开发环境,可以用 flutter doctor 命令来检查还需安装的插件和软件。

    五、安装 Xcode:要为 iOS 开发 Flutter 应用程序,需要 Xcode9.0 或更高版本。 在苹果商店安装 Xcode 9.0 或更新版本。 配置 Xcode 命令行工具以使用新安装的 Xcode 版本,命令如下: sudo xcode-select --switch/Applications/Xcode.app/Contents/Developer 在大多数的情况下,当你想要使用最新版本的 Xcode 时,这是正确的路径。如果需要使用不同版本的 Xcode,请指定相应的路径。 确保 Xcode 许可协议是通过打开一次 Xcode 或通过命令 sudo xcodebuild license。

    六、安装 Android Studio:和 Windows 一样,在 Android 设备上构建并运行 Flutter 程序都需要先安装 Android Studio。

    03 升级 Flutter

    Flutter SDK 有多个分支,如 beta、dev、master、stable,其中 stable 为稳定分支,dev 和 master 为开发分支。flutter 安装完成后,可以运行 flutter channel,查看所有分支。

    若想升级 flutter SDK,需要执行命令:flutter upgrade。

    该命令会同时更新 Flutter SDK 和 flutter 项目依赖包。若只更新项目依赖包(不包括 Flutter SDK ),可以使用以下命令: flutter packages get 获取项目所有的依赖包。 flutter packages upgrades 获取项目所有依赖包的最新版本。

    04 开发工具的配置与使用

    一、Android studio 配置与使用 首先需要安装两个插件,分别是 Flutter 和 Dart 插件: Flutter 插件:支持 Flutter 开发工作流(运行、调试、热重载等); Dart 插件:提供代码分析(输入代码时进行验证、代码补全等)。 1.安装步骤 启动 Android Studio ; 打开插件首选项 ( MacOS:Preferences>Plugins, Windows:File>Settings>Plugins ); 先选择 Browse repositories …,再选择 flutter 插件并点击 install ; 重启 Android Studio 后插件生效。

    2.创建 Flutter 应用 选择 File>New Flutter Project ; 选择 Flutter application 作为 project 类型, 然后点击 Next ; 输入项目名称 (如 myapp),点击 Next ; 点击 Finish ; 等待 Android Studio 安装 SDK 并创建项目。

    3.运行应用程序 定位到 Android Studio 工具栏; 在 target selector 中, 选择一个运行该应用的 Android 设备。如果没有列出可用,请选择 Tools>Android>AVD Manager 创建; 在工具栏中点击 Run 图标; 如果一切正常,在设备或模拟器上会看到启动的应用程序,如下图所示:

    4.体验热重载:Flutter 可以通过热重载实现快速的开发周期,热重载无需重启应用程序就能实时加载修改后的代码,并且不会丢失状态。对代码进行简单的更改,然后使用 IDE 或命令行工具进行重新加载,可以在设备或模拟器上看到更改。 打开lib/main.dart文件; 将字符串'You have pushed the button this many times:' 更改为'You have clicked the button this many times:'; 不要按“停止”按钮,让应用继续运行; 要查看更改,请调用 Save (cmd-s / ctrl-s),或者点击 热重载按钮 (带有闪电图标的按钮)。 二、VS Code 的配置与使用 1.安装 flutter 插件: 启动 VS Code ; 调用 View>Command Palette...; 输入'install'后选择 Extensions:Install Extension action ; 在搜索框输入 flutter,在搜索结果列表中选择'Flutter'并点击 Install ; 选择'OK'并重新启动 VS Code ; 验证配置:首先,调用 View>Command Palette...,输入'doctor',然后选择'Flutter:Run Flutter Doctor'action。查看“ OUTPUT ”窗口中的输出是否有问题。

    2.创建 Flutter 应用 启动 VS Code ; 调用 View>Command Palette...; 输入'flutter'后选择'Flutter:New Project'action ; 输入 Project 名称(如 myapp)并按回车键; 指定防止项目的位置,然后确认; 等待项目创建继续,并显示 main.dart 文件。

    3.体验热重载 用 VSCode 编写 Flutter 的缺点之一是需要手动加载更新应用,这在一定程度上影响了工作效率。当我们运行 flutter run 以后,会出现一段红色的文字提示,如下所示: r 键:点击后热加载,即重新加载; p 键:显示网格,可以掌握布局情况; o 键:切换 Android 和 iOS 的预览模式; q 键:退出调试预览模式。

    4.写一个 HelloWorld 程序 当我们搭建好开放环境搭后,按照惯例我们需要写一个 HelloWorld 程序。 将下面这段代码写在根目录.dart 文件中,作为 Flutter 主文件。 import 'package:flutter/material.dart'; //主函数(入口函数),下面我会简单说说 Dart 的函数 void main() =>runApp(MyApp()); // 声明 MyApp 类 class MyApp extends StatelessWidget{ //重写 build 方法 @override Widget build(BuildContext context){ //返回一个 Material 风格的组件 return MaterialApp( title:'Welcome to Flutteraa', home:Scaffold( //创建一个 Bar,并添加文本 appBar:AppBar( title:Text('Welcome to Flutter'), ), //在主体的中间区域,添加一个 hello world 的文本 body:Center( child:Text('Hello World'), ), ), ); } } 结果如下图所示:

    05 连接设备运行 Flutter 应用

    Window 下只支持为 Android 设备构建并运行 Flutter 应用,而 macOS 同时支持 iOS 和 Android 设备。下面将分别介绍如何连接 Android 和 iOS 设备来运行 flutter 应用。 一、连接 Android 模拟器 在 Android 模拟器上运行并测试 Flutter 应用,请按照以下步骤操作: 启动 Android Studio>Tools>Android>AVD Manager 并选择 Create Virtual Device ; 选择一个设备并选择 Next ; 为要模拟的 Android 版本选择一个或多个系统印象,然后选择 Next。建议使用 x86 或 x86_64 image ; 在 “ Emulated Performance ”下, 选择 Hardware - GLES 2.0 以启用硬件加速; 验证 AVD 配置是否正确,然后选择 Finish ; 在“ Android Virtual Device Manager ”中,点击工具栏的 Run。模拟器启动并显示所选操作系统版本或设备的启动画面; 运行 flutter run 启动您的设备。连接的设备名是 Android SDK built for <platform>,其中 platform 是芯片系列,如 x86。</platform>

    二、连接 Android 真机设备 要准备在 Android 设备上运行并测试 Flutter 应用,需要 Android 4.1 或更高版本的 Android 设备。 在 Android 设备上启用开发人员选项和 USB 调试; 使用 USB 将手机插入电脑。如果设备出现调试授权提示,请授权你的电脑可以访问该设备; 在命令行运行 flutter devices 命令以验证 Flutter 识别您连接的 Android 设备; 运行启动你应用程序 flutter run。

    三、连接 iOS 模拟器 要准备在 iOS 模拟器上运行并测试 Flutter 应用,请按以下步骤操作: 在你的 MAC 上,通过 Spotlight 或以下命令找到模拟器:open -a Simulator ; 通过检查模拟器 Hardware > Device 菜单中的设置,确保模拟器正在使用 64 位设备( iPhone 5s 或更高版本); 根据电脑屏幕大小,模拟高清屏 iOS 设备可能会溢出屏幕。可以在模拟器的 Window> Scale 菜单下设置设备比例; 运行 flutter run,启动 flutter 应用程序。

    四、连接 iOS 真机设备 如果要将 Flutter 应用安装到 iOS 真机设备,除了需要一些额外的工具和一个 Apple 账户,还需要在 Xcode 中进行一些设置。 1.安装 homebrew(如果已经安装了 brew,跳过此步骤); 2.打开终端并运行如下这些命令: brew update brew install --HEAD libimobiledevice brew install ideviceinstaller ios-deploy cocoapods pod setup 如果这些命令中的任何一个失败并出现错误,需要运行 brew doctor 并按照说明解决问题 3.遵循 Xcode 签名流程来配置项目: 在你 Flutter 项目目录中通过 open ios/Runner.xcworkspace 打开默认的 Xcode workspace。 在 Xcode 中,选择导航面板左侧中的 Runner 项目。 在 Runner target 设置页面中,确保在 General > Signing > Team 下选择你的开发团队。当你选择一个团队时,Xcode 会创建并下载开发证书,向你的设备注册你的账户,并创建和下载配置文件。 如果要开始你的第一个 iOS 开发项目,需要使用你的 Apple ID 登录 Xcode。任何 Apple ID 都支持开发和测试,但若想将应用分发到 App Store,就必须注册 Apple 开发者计划。 当你第一次使用 attach 真机设备进行 iOS 开发时,需要同时信任你的 Mac 和该设备上的开发证书。iOS 设备首次连接到 Mac 时,选择信任。然后转到 iOS 设备上的设置菜单,选择常规>设备管理并信任您的证书。 运行 flutter run,启动 flutter 应用程序。

    个推技术团队基于 Flutter 平台也进行了不少开发和探索,其中消息推送插件 Getui Flutter Plugin,作为一个特殊的 Package,可以为 Android 和 iOS 提供底层封装,在 Flutter 底层提供组件功能,使 Flutter 可以较为方便地调用 Native 模块。借助 Getui Flutter Plugin,开发者可以快速构建稳定高效的消息推送系统,满足日常的工作需求。 下载链接: https://github.com/GetuiLaboratory/getui-flutter-plugin

    1 条回复    2019-05-22 22:14:03 +08:00
    zhengger
        1
    zhengger  
       2019-05-22 22:14:03 +08:00 via Android
    这排版。。。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2686 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 13:49 PVG 21:49 LAX 06:49 JFK 09:49
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86