Flutter框架在项目中使用App Manifest检查用户界面以及配置混乱之后对于构建配置的方案【Flutter】

简介: Flutter框架在项目中使用App Manifest检查用户界面以及配置混乱之后对于构建配置的方案【Flutter】

@[toc]

配置混乱

默认情况下,flutter不支持Android混淆。
如果使用第三方Java或Android库,可能需要减小apk文件的大小或防止代码被反向破解。

创建/android/app/proguard-rules.pro文件并添加以下规则:

buildTypes {
    release {
        signingConfig signingConfigs.debug
    }
}
-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.**  { *; }

上述配置只会混淆Flutter引擎库。任何其他库(如Firebase)都需要添加相应的规则。
启用混淆/压缩
打开/android/app/build.gradle文件并找到buildTypes块。
在发行版配置中,将minimiEnabled和useProguard设置为true,然后将混淆文件指向上一步中创建的文件。

android {

    ...

    buildTypes {

        release {

            signingConfig signingConfigs.release

            minifyEnabled true
            useProguard true

            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

        }
    }
}

构建发布APK
本节介绍如何构建APK版本。如果完成上一节中的签名步骤,APK将被签名。
使用命令行:
Cd(是的项目目录)
运行颤振构建apk(默认情况下,颤振构建包括--release选项)
打包发行版APK位于/build/app/outputs/APK/app-release.APK中。
在设备上安装分发APK
按照以下步骤在连接的Android设备上安装上一步骤中内置的APK
使用命令行:
使用USB将Android设备连接到PC
cd<app dir>。
运行颤振安装

构建配置

检查默认的Gradle build file“build.Gradle”,该文件位于/android/app/中,以验证这些值是否正确,尤其是:
DefaultConfig:applicationId:指定始终唯一的(应用程序Id)appid版本代码和版本名称:指定应用程序版本号和版本号字符串。有关详细信息,请参阅版本文档minSdkVersion&targetSdkVersion:以指定应用程序设计运行的最低API级别和API级别。有关更多信息,请参阅发布文档中的API级别部分。

storePassword=<password from previous step>
keyPassword=<password from previous step>
keyAlias=key
storeFile=<location of the key store file, e.g. /Users/<user name>/key.jks>

当创建一个新的Flutter应用程序时,它有一个默认的启动程序图标。要自定义此图标,请执行以下操作:
查看Android启动图标设计指南,然后创建图标。
在/android/app/src/main/res/目录中,将图标文件放在一个名为配置限定符的文件夹中。默认的mipmap文件夹演示了正确的命名约定。
在AndroidManifest.xml中,更新应用程序标签的android:icon属性以引用上一步骤中的图标(例如,<application android:icon=“@mipmap/ic_launcher”…)。

android {

要验证图标是否已被替换,请运行应用程序并检查应用程序图标

def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))

android {

App Manifest

检查默认应用程序清单文件(AndroidManifest.xml文件位于/android/app/src/main/中),并验证这些值是否正确,尤其是:
应用程序:编辑应用程序标签,即应用程序的名称。
使用权限:如果的应用程序代码不需要Internet访问,请删除android.permission.Internet权限。标准模板包含此标志,以启用Flutter工具和正在运行的应用程序之间的通信。

signingConfigs {
    release {
        keyAlias keystoreProperties['keyAlias']
        keyPassword keystoreProperties['keyPassword']
        storeFile file(keystoreProperties['storeFile'])
        storePassword keystoreProperties['storePassword']
    }
}
buildTypes {
    release {
        signingConfig signingConfigs.release
    }
}

检查用户界面

Flutter框架使用小部件作为其核心构建块。从控件(文本、按钮、切换等)到布局(居中、填充、行、列等)都是。Inspector是可视化和浏览Flutter等小部件树的强大工具。在以下情况下可能会有所帮助:

IntelliJ Flutter Inspector Window

现有布局不清楚
诊断布局问题
IntelliJ Flutter检查器窗口
单击Flutter Inspector工具栏上的“选择小部件”,然后单击设备(真机或虚拟机)以选择小部件。选定的小部件将在设备和小部件树中突出显示。
选择演示
然后,可以在IDE中浏览交互式小部件树,以查看附近的小部件及其字段值。如果要调试布局问题,Widgets树可能不够详细。在这种情况下,单击“渲染树”选项卡以在树中的同一位置查看渲染树。调试布局问题时,关键是查看大小和约束字段。约束沿树向下传递,尺寸向上传递。
交换机树

相关文章
|
1月前
|
XML Java 数据库
安卓项目:app注册/登录界面设计
本文介绍了如何设计一个Android应用的注册/登录界面,包括布局文件的创建、登录和注册逻辑的实现,以及运行效果的展示。
140 0
安卓项目:app注册/登录界面设计
|
1月前
|
移动开发 开发框架 小程序
uni-app:demo&媒体文件&配置全局的变量(三)
uni-app 是一个使用 Vue.js 构建多平台应用的框架,支持微信小程序、支付宝小程序、H5 和 App 等平台。本文档介绍了 uni-app 的基本用法,包括登录示例、媒体文件处理、全局变量配置和 Vuex 状态管理的实现。通过这些示例,开发者可以快速上手并高效开发多平台应用。
|
10天前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
46 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
7天前
|
设计模式 移动开发 开发框架
如何学习 Flutter 框架?
学习 Flutter 需要耐心和持续的努力,通过系统的学习、实践、交流和不断跟进最新技术,你将逐渐掌握 Flutter 框架,并能够开发出高质量的移动应用。
|
7天前
|
开发框架 移动开发 Dart
Flutter 框架的缺点
以上缺点并不意味着 Flutter 框架不优秀,只是在使用过程中需要开发者根据具体的项目需求和场景,充分考虑这些因素,并采取相应的措施来克服或缓解这些问题,以充分发挥 Flutter 的优势,开发出高质量的移动应用。
|
7天前
|
IDE 开发工具 Android开发
Flutter 框架的优点
综上所述,Flutter框架以其跨平台一致性、高性能表现、丰富的组件和插件生态、热重载等诸多优点,为移动应用开发带来了全新的体验和强大的开发能力,成为了越来越多开发者的首选框架。
|
1月前
|
移动开发 小程序 数据可视化
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
214 3
|
16天前
|
缓存 JavaScript API
Flutter&鸿蒙next 状态管理框架对比分析
在 Flutter 开发中,状态管理至关重要,直接影响应用的性能和可维护性。本文对比分析了常见的状态管理框架,包括 setState()、InheritedWidget、Provider、Riverpod、Bloc 和 GetX,详细介绍了它们的优缺点及适用场景,并提供了 Provider 的示例代码。选择合适的状态管理框架需考虑应用复杂度、团队熟悉程度和性能要求。
82 0
|
1月前
|
Dart IDE 开发工具
鸿蒙Flutter实战:09-现有Flutter项目支持鸿蒙
本文介绍了将现有Flutter项目适配鸿蒙系统的步骤。首先,根据[鸿蒙Flutter适配指南]搭建开发环境,并使用fvm管理多版本SDK。项目采用模块化设计,包括apps、common、components、modules和plugins等目录,分别对应不同功能模块。重点在于在apps目录下创建新的鸿蒙项目,逐步添加依赖并解决版本兼容性问题。最后,通过配置pubspec.yaml文件和特定插件的鸿蒙化适配,完成项目的编译与运行测试。
67 0
|
1月前
|
缓存 开发框架 移动开发
uni-app:下载使用uni&创建项目&和小程序链接&数据缓存&小程序打包 (一)
uni-app 是一个跨平台的开发框架,它允许开发者使用 Vue.js 来构建应用程序,并能够同时发布到多个平台,如微信小程序、支付宝小程序、H5、App(通过DCloud的打包服务)等。uni-app 的目标是通过统一的代码库,简化多平台开发过程,提高开发效率。 在这一部分中,我们将逐步介绍如何下载和使用uni-app、创建一个新的项目、如何将项目链接到小程序,以及实现数据缓存的基本方法。