• Flutter开发体验


    1 安装前提

    2 获取 Flutter SDK

    Flutter_Windows_2.0.6-stable.zip

    解压后将 flutter 目录拷贝到D盘或其他路径。

    3 设置环境变量

    在高级系统设置中选择环境变量,在 Path 中添加Flutter SDK的路径,比如D:\flutter\bin

    4 运行 flutter doctor

    按照提示运行:

    flutter doctor --android-licenses
    
    • 1

    按照提示一直输入 y 即可,然后再次运行:

    flutter doctor
    
    • 1

    提示 No issues found! 说明环境配置正确了。

    5 安装依赖包

    如果工程使用了依赖包,可以运行以下命令来安装:

    flutter packages get
    
    • 1

    Flutter 启动调试工具报错,可能是调试工具没有安装并激活,可以运行以下命令:

    flutter pub global activate devtools
    
    • 1

    当运行flutter doctor后出现Android Studio not installed时,需要指定Android Studio的安装路径,需要运行如下命令:

    flutter config --android-studio-dir "YourAndroidStudioInstallPath"
    
    • 1

    再次运行flutter doctor

    6 创建工程

    (1)File->New Flutter Project->Flutter App

    (2)选择Flutter SDK Path。

    (3)填写工程名。

    (4)填写工程路径。

    7 Android构建发布

    (1)检查APP Manifest

    /android/app/src/main路径下查看AndroidManifest.xml文件,验证这些值是否正确,特别是:

    Application:应用名称

    User-permission:使用权限,必须包含网络访问权限。

    若没有加入网络权限,则在上添加以下内容:

    (2)查看构建配置

    /android/app/路径下查看build.gradle文件,验证这些值是否正确,特别是:

    defaultConfig:

    applicationId:指定始终唯一的appid

    versionCode & versionName:指定应用程序版本号和版本字符串

    minSdkVersion & targetSdkVersion:指定最低的API运行级别以及应用程序运行的API级别。

    (3)添加启动图标

    /android/app/src/main/res/路径下,将图标文件放入使用配置限定名命名的文件夹中,默认使用mipmap文件夹演示正确的命名约定。

    AndroidManifest.xml文件中,将android:icon属性更新为引用上一步中的图标,如android:icon=”mipmap/ic_launcher”

    (4)APP签名

    创建keystore

    在命令行窗口进入路径,输入以下指令,根据提示输入对应信息,生成密钥结构如下所示:

    keytool -genkey -v -keystore ./key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

    image-20220725133511680

    引用应用程序中的keystore

    /android/在创建一个名为key.properties的文件,其中包含对密钥库的引用:

    storePassword=密钥库口令

    keyPassword=key的密钥口令

    keyAlias=key

    storeFile=/key.jks

    在gradle中配置签名

    /android/app/路径下编辑build.gradle文件,

    ”android {“前加上如下内容:

    def keystorePropertiesFile = rootProject.file("key.properties")
    
    def keystoreProperties = new Properties()
    
    keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
    
    • 1
    • 2
    • 3
    • 4
    • 5

    buildTypes {
    
      release {
    
    ​    // TODO: Add your own signing config for the release build.
    
    ​    // Signing with the debug keys for now, so `flutter run --release` works.
    
    ​    signingConfig signingConfigs.debug
    
      }}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    替换为:

    signingConfigs {
    
      release {
    
    ​    keyAlias keystoreProperties['keyAlias']
    
    ​    keyPassword keystoreProperties['keyPassword']
    
    ​    storeFile file(keystoreProperties['storeFile'])
    
    ​    storePassword keystoreProperties['storePassword']
    
      }}buildTypes {
    
      release {
    
    ​    signingConfig signingConfigs.release
    
      }}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    (5)开启混淆

    配置混淆

    /android/app/路径下创建一个名为proguard-rules.pro的文件,并加入以下规则:

    \#Flutter Wrapper
    
    -keep class io.flutter.app.** { *; }
    
    -keep class io.flutter.plugin.** { *; }
    
    -keep class io.flutter.util.** { *; }
    
    -keep class io.flutter.view.** { *; }
    
    -keep class io.flutter.** { *; }
    
    -keep class io.flutter.plugins.** { *; }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    开启混淆压缩

    /app/build.gradle文件中,定位到buildTypes

    release配置中将minifyEnableduseProguard设为true,并将混淆文件指向proguard-rules.pro

    修改后的buildTypes如下所示:

     buildTypes {
            release {
                signingConfig signingConfigs.release
                minifyEnabled true
                useProguard true
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    (6)构建发布版apk

    进入应用程序目录

    cd

    构建apk(构建好的apk位于/build/app/outputs/apk/app-release.apk

    flutter build apk

    安装apk

    flutter install

    构建apk结果如下所示:

    image-20220725134059854

  • 相关阅读:
    kepler.gl笔记:添加数据
    如何让背景色在任何设备宽高都能填充整个屏幕
    【优化选址】遗传算法求解物流配送中心选址【含Matlab源码 1917期】
    face_recognition:高准确率、简单易用的人脸识别库 | 开源日报 No.79
    springboot shiro vue使用websocket案例
    深入理解算法:从基础到实践
    学术加油站|面向HTAP数据库的基准评测工具研究进展
    Scott Brinker:API对今天的Martech用户来说「非常重要」 ,但它们对即将到来的人工智能代理浪潮至关重要
    条码录入,使用盘点机PDA,移动便携,将商品本身的条码录入到电脑汉码进销存商品档案里
    MCS:离散随机变量——Pascal分布
  • 原文地址:https://blog.csdn.net/qq_40531408/article/details/126688992