Flutter安装笔记
我平时喜欢看小说,但是现在的小说APP广告太多了:启动应用有广告,从其他APP切换回来又有广告,体验很不好。因此我想自己写一个简单的文档阅读APP。考虑到现在Flutter挺火的,就准备用这个试一试。因此这里记录下安装Flutter的过程中遇到的一些问题。
流程
安装Flutter
我是按照官方文档来进行安装的,整个安装过程还是挺顺利的。
安装Android Studio
这里遇到一个小问题:第一次需要安装Android SDK。这里设置为自动识别代理,然后继续安装即可。
创建Hello World项目
感觉这个和npm一样,有拉取包的概念。
这里遇到的问题稍多一些,记录如下:
Running “flutter pub get” in hello_world…一直卡住
这是依赖包没有拉取到的缘故,需要修改flutter的包源的镜像地址,从默认的国外地址改为国内地址:
1 | |
F5启动调试程序,在Running Gradle task ‘assembleDebug’…卡住了
看起来像是Gradle用了默认的国外镜像,根据这篇文章改为国内镜像,发现还是不行;然后根据上文,下载了对应版本的gradle的complete文件包,放到对应的目录下(注意,直接将下载的zip包放到目录下即可,不用自己解压)还是不行。我仔细查看了下控制台的报错信息,发现程序会读取本地的这个zip包,但是在尝试解压zip的时候报错,怀疑是因为zip包放到了C盘,而我的VSCode启动的时候没有以管理员身份启动的缘故。因此我改为以管理员身份启动VSCode,然后重新执行F5启动程序,这次没有报这个错误了,看来就是这个原因。
Failed to find Build Tools revision 28.0.3
这是上一个问题解决后随之而来的报错,看起来是没有安装28.0.3版本的Build Tool,然后按照下面这个文章安装了这个版本(我之前Android Studio安装过更高版本的Build Tool,应该在哪里设置下使用这个更高版本的即可,但是目前我不熟悉这些工具,担心出现一些版本兼容性问题,因此先选择安装这个默认提示的低版本的工具,先让程序跑起来):
https://stackoverflow.com/questions/47721952/how-to-solve-failed-to-find-build-tools-revision-26-0-2
Failed to find Platform SDK with path: platforms;android-29
根据下面这个文章的提示,是没有安装对应版本的Android SDK:
https://www.jianshu.com/p/cae468d1056d
然后启动Android Studio,在SDK Manager中安装好这个29版本对应的SDK,即Android 10.0(Q),然后再次F5启动程序,就可以了。
至此,Hello World程序终于跑起来了,整个过程还是比较顺利的,网上都有现成的解决方案。
另外,启动这些程序是很耗费内存的,我16G的内存居然出现了不足的情况。Android Studio没事就可以关掉,这样能节省1G-2G的内存。
发布
我现在只是想跑通流程,因此发布的一些注意事项,比如签名、代码混淆等等我都没有去考虑,直接选择了使用默认配置打包APK文件的形式,详见官方文档:
1 | |
安装
拷贝
生成的apk文件直接拷贝到手机上即可安装。我的手机是红米K30 Pro,因此要安装ARM架构的这个APK文件,比如app-arm64-v8a-release.apk
flutter install
除了上面的拷贝APK文件到手机里的方式外,也可以在开发电脑上通过命令行安装(需要先进入项目根目录):
1 | |
注意这种方式,需要先在手机的开发者模式下,将USB 安装这一项开启,否则会安装失败。
如果识别到有多个设备,命令行会提示你选择一个设备进行安装。查看当前识别到的设备,可以用这个命令:
1 | |
一些感想
现在的技术学习门槛越来越低了,丰富的文档和更全面的安装体验,让大家不再需要耗费很多时间在基础环境的安装和配置上了。
感觉写Flutter就是用一个类似MintUI的UI库,拼接页面,设置定位、样式、事件属性,加入数据,操纵数据,看起来似乎很简单,和常规的前端开发区别不大。可能难点会在实现个性化的组件上?
了解Flutter的组件机制应该是一个必备的要求。
还有一些基础类和方法也要弄清楚,我看Demo中有很多@Override的方法,了解了这些,应该就能对框架的设计有个大致认识了。
Hot Reload很赞,Flutter的Debug Mode自带就有,且速度非常快,每次reload只需几百毫秒,基本无感知。
开发环境的一些建议
1、大内存,至少16G起步
2、优秀的CPU,我的AMD R7 4800H启动也需要大约18秒,不过我看CPU频率没有拉上4GHz,且似乎没有将多核利用起来,因此可能默认高频率的Inter CPU会更好一些?
3、大屏幕,因为同时要查看编辑器、模拟器、查阅文档