- Flutter从0基础到App上线
- 萧文翰
- 818字
- 2021-03-27 01:49:43
6.1 第一个Flutter项目
在第2章中,我们新建了一个Hello World项目,并将其成功地运行在手机上。现在对它进行深入了解,以探索其中的奥秘。
6.1.1 Flutter项目的结构
在Flutter项目中,包括以下四个重要部分:
android目录:这个目录下存放的是Android原生代码,和传统的Android项目结构大致相同。当需要和原生交互特性时,需要更改里面的代码。
ios目录:和android目录类似,该目录存放了原生iOS交互的代码。同样地,当需要和原生交互时,需要更改这个目录下的代码。
lib目录:这里存放的是Flutter的代码,用Dart语言实现,运行Hello World项目实际上执行的就是这个目录下的main.dart文件。如果你亲自动手尝试过热修复特性的话,应该就会有体会,本章的内容也基本上是通过更改这个目录中的代码来实现相应效果的。
pubspec.yaml文件:该文件是配置文件,包括当前App的版本、SDK版本、使用到的依赖库,以及某些特性的开关等。
6.1.2 日志工具的使用
为了跟踪和记录软件的运行情况,开发者通常会输出一些日志(Log),这些日志对于用户而言是不可见的。传统的iOS和Android系统都提供了完善的日志输出功能,Flutter也不例外。要实时查看Flutter的日志,只需在控制台中输入:
![img](https://epubservercos.yuewen.com/9CF474/18096059801207706/epubprivate/OEBPS/Images/txt006_1.jpg?sign=1739610446-auD4m1cJ1wEgGyJ8Zhrivp5YSnMKn4jF-0-f4ac00c236d433ed74b7d0062b347298)
在Android Studio和Visual Studio Code中,默认集成了控制台(console),可以使用它启动一个新的控制台。这里要注意的是,一旦执行了上面的命令,该控制台将会进入独占状态,即无法再使用其他的命令了,除非中断日志查看。
当我们想要在程序运行的某个地方输出日志时,通常使用debugPrint()方法。结合之前的示例,修改原来的main()方法,添加一个日志输出,内容为“我开始启动了”,未经修改的代码如下:
![img](https://epubservercos.yuewen.com/9CF474/18096059801207706/epubprivate/OEBPS/Images/txt006_2.jpg?sign=1739610446-7fzCMc9G5ER8FmnMKLLtF9zfjIgidb5m-0-0083d95c44f1c665830af8658400c368)
添加日志后的代码:
![img](https://epubservercos.yuewen.com/9CF474/18096059801207706/epubprivate/OEBPS/Images/txt006_3.jpg?sign=1739610446-2Rkz9Cibn1Ofl0Gnh1SLyFjZ4FjbDNWO-0-7b80825ff3b05ce83c76836f2599782a)
在控制台中使用flutter logs命令监视日志输出,然后重新安装并运行程序,控制台输出如下:
![img](https://epubservercos.yuewen.com/9CF474/18096059801207706/epubprivate/OEBPS/Images/txt006_4.jpg?sign=1739610446-OIuOoFBffAzVDsfXNgoXietbYzZEKhoz-0-897945794b3e239bce9a2bf881155fac)
结果如图6.1所示。
![img](https://epubservercos.yuewen.com/9CF474/18096059801207706/epubprivate/OEBPS/Images/txt006_5.jpg?sign=1739610446-fucjDSv7b5r4vb4zVLfY6rlQ1s63oqmQ-0-7116ebd6dbfd14f32d9991f23447aa9b)
图6.1 Flutter的日志输出
要结束监视日志输出,可以使用“Ctrl+C”组合键,输入“y”后按回车键确认,也可以直接关闭控制台。需要注意的是,为了保证日志输出正确无误,建议你使用英文输出,而不是直接使用中文。因为如果使用中文输出,在某些情况下,可能会显示乱码。经测试,在英文版的Windows下启动命令提示符并执行上例,会得到如下输出:
![img](https://epubservercos.yuewen.com/9CF474/18096059801207706/epubprivate/OEBPS/Images/txt006_6.jpg?sign=1739610446-HDNtmTFx5NmbbyEjFoU2CJa1FkbLhV7N-0-64b642da105fc79e76cbcb75e6fad703)