1. flutter作为一个UI前端架构,和其他原生模块的关系为

    1.统一管理模型(flutter下包括安卓和ios各自的文件夹)

    2.三端管理模式(独立的安卓以及ios,连接flutter进行管理)

    明显后者的耦合性和扩展性都要好很多。

    我所了解的,简单的全新开发的项目可以使用前者,但有着原生安卓项目的,建议使用后者。

    也就是说,flutter和Android以及ios的关系是flutter管理Android和ios,但是并不能去取代Android和ios,flutter是通过api去调用原生的Android或是ios去实现功能。(个人理解,欢迎指正)

  2. 整个环境的搭建:

    1.下载flutter,然后进行安装。

    2.下载Android studio,然后需要将flutter与Android studio进行关联。

    3.当file的new有new flutter project后表示成功,点击flutter project后点击左下角的flutter然后next进行创建项目,而不是直接创建,当然也可以使用命令行。默认创建项目为计数器。

    4.配置模拟器,首先安装adb工具,下载adb后需要将路径添加到系统变量和用户环境变量中,在path中进行新建添加。测试adb –version,如果没有被识别,可以打开在adb的安装目录下,进行adb –version测试。如果环境变量没问题,那么在安装目录下adb –version应该可以使用。abd安装后,安装夜神模拟器,在官网下载,然后进行运行(可以在右上角点击设置改变类型,比如平板or手机,屏幕清晰度等等),然后找到设置,打开到版本号,多次反复点击开启开发者模式。此时,使用abd devices进行测试,是否识别。

    如果没有识别比如adb server version (36) doesn’t match this client (41); killing…
    adb版本不匹配,需要检查版本,

    ​ 1.adb –version

    ​ 2.D:\XXXXX\Nox\bin\nox_adb.exe(命令行直接输入)

    ​ 3.把android-sdk里面的adb.exe版本复制出,改名 nox_adb.exe,替换nox安装的路径:\Nox\bin下的nox_adb.exe文件.

    ​ 4.重启模拟器,在cmd输入adb devices

    (这一段不匹配参考blog:adb server version (36) doesn‘t match this client (41)解决_adb server version (36) doesn’t match this client -CSDN博客

    5.然后就可以了,模拟器应该可以直接运行example

    6.在进行打包或是运行他人的库的时候,可能会遇到整体版本问题:此时需要检查app下的build.gradle, 以及main函数下的Androidmanifest.xml。建议是升级到最新版本,如果之前的工作不多的话,因为未来更多的三方库肯定是适应用于最新版本的。有一个直接的方法就是直接新建一个默认的flutter去抄里面的配置。

    7.附上打包的方法

     1. 直接使用debug版本,将其压缩成一个zip进行发送或是进行邮件发送(仅限自己测试功能!!)
     2. flutter build apk -v 在项目的根目录下,比如我是D:\FlutterProject\other\sensors_project_name\example> flutter build apk -v 
     3. 使用abd,比如(例子是开着夜神模拟器,然后install到了模拟器上,也可以使用usb安装到真机上):D:\FlutterProject\other\sensors_project_name\example\build\app\outputs\flutter-apk>adb install app-debug.apk
     Performing Streamed Install
     Success