引言

作为Android开发人员,很有必要学习一下Flutter,那么Flutter是什么呢?它到底有什么作用呢?我们一一来揭晓。
Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。它也是构建未来的Google Fuchsia应用的主要方式。Fuchsia是谷歌继Android和Chrome OS之后开发的第三个系统,未来,谷歌是计划将Flutter作为这款操作系统的构建方式的。

什么是Flutter?

Flutter实际上是一个包含多种内容的软件包,它是用来创建移动2D应用程序SDK的软件开发包,如果你计划在某些游戏中使用3D应用程序,那么Flutter将无法满足你的需求,但如果你的计划是在APP商店中的大多数的2D应用程序,那么Flutter就是你的选择。
Flutter软件包中最重要的就是编程框架,编程框架使用Dart作为编程语言。而实际上,我们不会直接调用Dart,所以我们不需要去深入学习Dart语言。Flutter附带了大量的小控件,能够帮助开发者省去很多功夫。

下载安装Flutter

现在我们就来看看如何下载安装Flutter,首先浏览器搜索Flutter,找到官网进入,点击Get started。

选择对应的操作系统,就会跳转至下载界面。
由于在国内访问Flutter有可能会受到限制,Flutter官方为中国开发者搭建了临时镜像,大家可以将如下环境变量加入到用户变量中。

PUB_HOSTED_URL:https://pub.flutter-io.cn
FULTTER_STORAGE_BASE_URL:https://storage.flutter-io.cn

Flutter镜像设置完成以后,接下来就可以获取Flutter SDK了。去Flutter官网下载最新可用的安装包。下载完成后解压即可。
解压完后,打开flutter文件夹,找到flutter_console.bat,双击运行,进行命令行的安装。

当看到这样的一个控制台界面,说明Flutter启动成功。启动成功后,我们还需要配置Flutter的环境变量。需要将bin文件夹的位置配置到用户环境中。需要注意的是:这里配置的是用户变量,不是系统变量。将bin目录位置添加到用户变量的path中。
配置完后,我们就可以使用Flutter命令了,打开一个控制台,输入指令:

flutter doctor

这是一条用于检查当前电脑是否包含运行Flutter的全部环境。运行该条指令便会去自动下载所需资源。

需要注意的是,打勾的地方说明资源下载成功,而感叹号的位置说明资源下载异常,我们需要去解决这些异常的下载,才能使Flutter正常地运行。

解决资源异常问题

我这里因为有了Android的运行环境和Android Studio开发工具,所以都是感叹号,而没有这些东西的同学就会打一个红色的叉,看到红色的叉也不要惊慌失措,只需要将Android的环境下载好即可。
下载好Android环境后,我们接着输入指令:

flutter doctor --android-licenses

该条指令的作用是接受Android许可,执行该条指令后会多次询问是否许可,只需输入’y’回车即可。
再次输入flutter doctor来检查一下环境。

证明第二项的异常我们解决了。
接下来我们解决第三个异常,也就是Android Studio的异常。
我们打开Android Studio,点击File,然后点击Setting,最后点击Plugins,打开插件窗口,在该窗口中点击Browse repositories,选择从网络上下载插件。在搜索框中搜索Flutter并下载,在下载前Android Studio会询问是否同意下载Dart插件,我们允许即可。下载完成后重启Android Studio,我们再次到控制台中检查一下资源,输入flutter doctor指令,会发现,第三项也打勾了,问题成功解决。

第四项异常是因为IDEA没有安装Flutter的插件,这里我们只用Android Studio进行开发,所以可以不用管,没有这个开发工具的同学也不会产生这个问题。那么接下来,我们看最后一个异常,这个异常是因为现在没有设备连接,所以我们必须准备一个Android设备。

创建Flutter项目并启动

经过前面的一些操作,Flutter总算是成功安装上来了,那么,接下来,我们就尝试创建一个Flutter项目并运行到设备上。
在这之前,我们需要再设置一些信息,在Android Studio中点击File,然后点击Setting,找到Flutter设置界面。

将我们最开始下载的Flutter的解压文件路径设置上去,Dart我们可以不用设置,它会自动去寻找路径。设置完成后点击OK,然后新建一个Flutter Project,点击Flutter Application。

点击Next,然后点击Finish。等待片刻,Android Studio会自动帮我们构建开发环境。构建完成后我们右上角选择一下运行设备,然后点击运行。

然而点击运行之后,有些同学会发现Android Studio停留在了这个界面。

再也没有变化过,这不禁让人感到奇怪,这么长的构建时间,它到底在干什么?其实这不奇怪,展开gradle-wrapper文件夹。

发现了没,构建工具并不存在,所以,Android Studio其实就是在下载构建工具,通过观察文件夹变化,我找出了它需要下载的版本。

这个版本确实是我所有构建版本中没有的,然后因为网络的原因,下载速度极慢,于是便出现了刚才的那一幕,所以,该怎么解决呢?两种办法,要么就一直等,网速再慢,几十MB的东西下个一天还下不完吗?哈哈,开个玩笑。第二个办法,就是自己把它需要的构建版本下载好,然后放到这个文件夹下面去。当然,还是有其它办法的,就是去gradle-wrapper.properties文件中将构建工具版本改为自己已经有的,这样也是可以的,我就不演示了。
将下载完的构建工具放进去,我们停止构建,然后重新运行,果然这一次就快了许多,应用很快就运行到了Android设备上。

这是Flutter项目自动生成的,我们并没有编写一条代码。
需要注意的是,很多同学可能在这里还会遇到一些问题,比如在运行的时候报这个错。

Error:FAILURE: Build failed with an exception.* What went wrong:
Could not resolve all files for configuration ':app:debugCompileClasspath'.
> Could not resolve com.google.android.gms:play-services-ads:latest.release.Required by:project :app> Could not resolve com.google.android.gms:play-services-ads:12.0.1.> Could not get resource 'https://jcenter.bintray.com/com/google/android/gms/play-services-ads/12.0.1/play-services-ads-12.0.1.pom'.> Could not GET 'https://jcenter.bintray.com/com/google/android/gms/play-services-ads/12.0.1/play-services-ads-12.0.1.pom'.> Read timed out* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.* Get more help at https://help.gradle.orgBUILD FAILED in 35s

这还是因为网络的原因,无法下载到这些资源文件,解决方案如下:
在project级别下的build.gradle文件中添加如下代码:

buildscript {repositories {google()jcenter()}dependencies {classpath 'com.android.tools.build:gradle:3.1.1' classpath 'com.google.gms:google-services:4.0.1'  //谷歌服务库依赖}
}allprojects {repositories {google()jcenter()mavenCentral ()maven {url 'https://dl.bintray.com/jetbrains/anko'} //这个是解决这个问题的关键}
}task clean(type: Delete) {delete rootProject.buildDir
}

这样问题应该就解决了,我也不可能一一地列举出所有的问题,如果大家还是碰到了问题,可以自行百度解决。

总结

经历了千辛万苦,第一个Flutter项目终于成功运行起来了。Flutter打包出来的是纯原生应用,和浏览器应用完全不同,原生应用指的是安装在手机内部会带图标的应用,这种应用是可以发布到Android市场或者App Store里面的。

最后贴上gradle构建工具的下载网址:http://services.gradle.org/distributions/

谷歌移动UI框架Flutter入门相关推荐

  1. 谷歌移动UI框架Flutter教程之Widget

    引言 在之间我已经介绍了关于Flutter的下载安装以及配置,还有开发工具Android Studio的配置,还不知道的同学可以看看我这篇博客--谷歌移动UI框架Flutter入门.这里为什么非要用A ...

  2. Google跨平台UI框架 Flutter beta 重磅发布,这里有你需要了解的一切

    2018年2月27日,在西班牙巴塞罗那世界移动大会上,Google发布 Flutter 的第一个 beta 版本.Flutter 是 Google 用以帮助开发者在 iOS 和 Android 两个平 ...

  3. Carson带你学Android:手把手带你入门跨平台UI开发框架Flutter

    前言 Flutter 作为Google出品的一个新兴的跨平台移动客户端UI开发框架,正在被越来越多的开发者和组织使用,包括阿里的咸鱼.腾讯的微信等. 今天,我将献上一份 <全面 & 详细 ...

  4. 告别XML,Android新声明式UI框架《Jetpack Compose入门到精通》最全开发指南

    什么是Jetpack Compose? Jetpack Compose是Android的新声明式UI框架.长期以来, Android 开发人员习惯于使用带有状态视图的xml编写UI,这些状态视图通过逐 ...

  5. 前端UI框架《Angulr》入门

    Angulr 项目的名称为 Angulr,对!没错!就是少个 a,少个 a 就是它正确的拼写. 是一个以 Bootstrap 和 AngularJS 为基础,并使用了大量前端开源组件合成的一个前端UI ...

  6. unity ui框架_[教程汇总+持续更新]Unity从入门到入坟——收藏这一篇就够了

    ----------------塔防(更新中),作者重写了基础篇(下方目录为:1.1(新) 基础)目前还在持续连载了5篇,因为不多我们更新完就能追到原作者的进度了------------------- ...

  7. 谷歌开源的跨平台UI开发框架Flutter

    谷歌开源的跨平台UI开发框架Flutter Flutter是Google一个新的用于构建跨平台的手机App的SDK.写一份代码,在Android 和iOS平台上都可以运行.与React Native. ...

  8. 手把手学习Android的 Facebook Litho UI框架---(一)入门篇

    1.什么是Litho? Litho是Facebook推出的一套高效构建Android UI 的声明式框架,主要 目的是提升RecyclerView复杂列表的滑动性能和降低内存的使用. Litho是一套 ...

  9. Tensorflow Federated Framework 谷歌联邦学习框架:自底向上简明入门

    0.前言 参考:谷歌联邦学习框架.谷歌联邦学习Blog.Stack Overflow上的讨论 只使用TF实现联邦学习的另两篇博客:[联邦学习]用Tensorflow实现联邦模型AlexNet on C ...

  10. 得到谷歌认证的《Android UI框架进阶解密》开源了,亮瞎我的钛合金

    根据调查显示,,iOS与Android的市场份额差距正越来越大.Android设备正在成为手机应用市场的主力军.如何从设计层面创造一个优美的App界面来吸引用户已然成为广大App开发者们必做的功课之一 ...

最新文章

  1. netty框架_Netty实战:设计一个IM框架
  2. Python安装第三方包package
  3. ostu进行遥感图像的分割
  4. Linux批量删除文件
  5. 信息学奥赛一本通(1402:Vigenère密码)
  6. 漫步最优化二十四——二分搜索
  7. PHP魔术方法小结.md
  8. 到底什么是集群分布式
  9. java的四个元注解 @Retention @Target @Document @Inherited
  10. java文件删除操作_Java文件复制删除操作合集
  11. win10如何共享计算机网络打印机,win10如何共享打印机给其它电脑,Win10设置打印机共享操作步骤...
  12. mysql无级分销_无限级分销系统数据库表设计
  13. 我的所有知识都来自大富翁游戏
  14. macOS 开发 - 打包 PKG(使用 Packages)
  15. windows server 2016 由于没有远程桌面授权服务器可以提供许可证,远程会话被中断。请跟服务器管理员联系。
  16. SQL 校验身份证号格式
  17. 服务器图片显示小方块,高手帮忙了!!验证码跟着敲好之后 服务器打开一个小方块里面空的!在线等!!!...
  18. 联想电脑开机卡在logo界面
  19. 输出一个平面点的对称点
  20. 学习笔记之Qt从入门到精通(三)

热门文章

  1. python读取rtf文件_在python中将unicode文本输出到RTF文件
  2. 2020年用于测试自动化的7种顶级编程语言
  3. C语言单片机串转并,74ls164与单片机的串并转换(串转并\串进并出)
  4. pscc显示无法访问adobe服务器,Adobe Photoshop 提示无法加载扩展,因为它未经正确签署错误提示解决方案...
  5. endnote x9破解版怎么导入word 2019使用呢?
  6. 【微信小程序开发小白零基础入门】微信小程序文件API【建议收藏】
  7. fgo最新服务器,《FGO》:现在世界上其他地区的服务器近况如何,一起来看看吧!...
  8. fgo服务器维护补偿,FGO终章活动服务器崩溃 补偿圣晶石24颗
  9. We're sorry but ***** doesn't work properly without JavaScript enabled. Please enable it to continue
  10. QNX系统和凝思系统分别系统时间设置RTC时间方法