当前位置:   article > 正文

Flutter 快速入门3-构建_flutter mavencentral

flutter mavencentral

前置信息1

  • IDE 中开启模拟器,可以直接进行 Flutter 调试,但是如果要上真机、模拟器进行测试,那么就需要进行应用构建。

  • 应用构建目标主要区分平台,目前移动端主要有 Android 和 iOS 操作系统。

  • Android 应用构建分为两种方式: AppBundle 和 APK,目前下面只涉及 APK 方式。

前置信息2

  • 使用的 IDE 是 Android Studio,支持多种语言的高亮、Lint、模拟器、功能插件和各种简便操作、配置的入口。

  • 构建面向 Android 的项目,因为目前 Android 以 Kotlin 为默认编程语言,所以需要 Kotlin 的插件。

  • 构建基础是 Flutter 框架,那么还需要 Dart 和 Flutter 的插件。

  • 项目的基础结构仍旧是 Android 等目标平台结构,以 Android 为例,其构建工具使用 Gradle。

  • Maven 有两层含义:依赖库和依赖包的管理。顺带会做一些打包构建的工作。

  • Gradle 接管了依赖包、打包构建的工作,而且更灵活。但依赖库仍旧是 maven。

  • 国内 maven 仓库都非常慢,所以初次构建可能会很慢,如果网络不通,那么也会卡死。

  • Gradle 中默认配置的 google()mavenCentral() 基本不可用。可以指定优先镜像仓库源,注意 Groovy 语法(百度上有很多瞎写的)。

  • 所以需要的插件至少是:Kotlin / Dart / Flutter / Gradle。

  1. buildscript {
  2. ext.kotlin_version = '1.7.10' // 注意这个 Kotlin 的版本需要和 classpath 中指定的版本保持一致
  3. repositories {
  4. maven {
  5. url 'https://maven.aliyun.com/repository/public' // 使用的阿里云镜像,优先级最高
  6. }
  7. google()
  8. mavenCentral()
  9. }
  10. dependencies {
  11. classpath 'com.android.tools.build:gradle:7.1.2'
  12. classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // 引用本地插件内嵌的 Kotlin
  13. }
  14. }
  15. allprojects {
  16. repositories {
  17. maven {
  18. url 'https://maven.aliyun.com/repository/public' // 应用到全部项目
  19. }
  20. google()
  21. mavenCentral()
  22. }
  23. }
  24. rootProject.buildDir = '../build'
  25. subprojects {
  26. project.buildDir = "${rootProject.buildDir}/${project.name}"
  27. }
  28. subprojects {
  29. project.evaluationDependsOn(':app')
  30. }
  31. task clean(type: Delete) {
  32. delete rootProject.buildDir
  33. }

主要配置文件

  • Android 项目配置文件位置:<app dir>/android/app/src/main/AndroidManifest.xml

  • Gradle 项目构建配置文件:<app dir>/android/build.gradle

  • Gradle 项目构建配置文件:<app dir>/android/app/build.gradle

确认 AndroidManifest.xml

  • 确认 application 配置项中 android:label 配置的 App 名字是否合适。

  • 确认 uses-permission 配置项中是否启用了本地设备权限,比如联网、外部存储、蓝牙等。

确认 build.gradle

  • defaultConfig

    • applicationId 指定唯一的 应用 ID。非常重要,决定了 App 在 Play Store 中的唯一身份。

    • minSdkVersion 指定应用适配的最低 SDK 版本。默认为 flutter.minSdkVersion

    • targetSdkVersion 指定应用适配的目标 SDK 版本。默认为 flutter.targetSdkVersion

    • versionCode 用于内部版本号的正整数。该数字仅用于比较两个版本间数字较大的为更新版本。该版本不会对用户展示。

    • versionName 向用户展示的版本号。该字段必须设置为原始字符串或字符串资源的引用。

    • buildToolsVersion 高于 3.0.0 版本的 Android Gradle Plugin 会使用 AGP 默认指定的构建工具版本。此处可手动指定版本。

  • android

    • compileSdkVersion 指定 Gradle 用于编译应用的 API 版本。默认为 flutter.compileSdkVersion,此版本必须满足两个要求:1. 兼容目标运行系统,2. 兼容插件版本要求。比如运行的模拟器版本、目标运行手机系统都是 Android API 33 ,且依赖的 Dart 插件版本也最低要求 33,此处就配 33,否则默认的配置会出问题。

配置图标

  • <app dir>/android/app/src/main/res/ 目录下,把图标放到 mipmap-*** 目录下,这是 Android 项目专用的图标目录,适配各个分辨率。

  • <app dir>/android/app/src/main/AndroidManifest.xml 文件中配置 <application android:icon="@mipmap/myIcon.jpg 指定图标。

  • 注意,配置图标 android:icon= 时不能配置后缀名,配错就找不到文件。

  • <app dir>/android/build.gradle 文件中检查 ext.kotlin_version 配置和 dependencies 配置中的 kotlin 版本是否一致,不一致构建能成功但会报错。

  • 注意,图标最好带背景色,然后核心图形在背景色中间。部分平台上不同的主题会对图标进行剪裁,边缘为透明的部分会被自动裁剪掉,所以确保边缘有色彩更美观。

其他功能

  • 如果需要发布到分发平台上——比如 Play Store,则需要给项目打包结果进行签名。

  • 如果需要减少打包体积,可以使用内置的 R8 压缩引擎压缩打包结果。

  • 如果支持的 Android API 版本低于 20,可能还需要启用 multidex 支持。

构建 APK

  • 运行 flutter build apk --split-per-abi 命令。

  • --split-per-abi 参数将面向不同架构的包拆分出来,否则将会生成一个包含所有目标架构 ABI 的 fat APK 文件。

  • flutter build 命令默认带参 --release

  • 或者在 工具栏 > Build > Flutter 中选择 Build APK 进行构建。

  • 构建结果在 <app dir>/build/app/outputs/flutter-apk 目录下。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/983965
推荐阅读
相关标签
  

闽ICP备14008679号