Flutter使用
本文主要介绍Google的开源UI框架——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
按照提示一直输入 y
即可,然后再次运行:
flutter doctor
提示 No issues found!
说明环境配置正确了。
5 安装依赖包
如果工程使用了依赖包,可以运行以下命令来安装:
flutter packages get
Flutter 启动调试工具报错,可能是调试工具没有安装并激活,可以运行以下命令:
flutter pub global activate devtools
当运行flutter doctor
后出现Android Studio not installed
时,需要指定Android Studio
的安装路径,需要运行如下命令:
flutter config --android-studio-dir "YourAndroidStudioInstallPath"
再次运行flutter doctor
。
6 创建工程
(1)File
->New Flutter Project
->Flutter App
。
(2)选择Flutter SDK Path。
(3)填写工程名。
(4)填写工程路径。
7 Android构建发布
(1)检查APP Manifest
在<app_dir>/android/app/src/main
路径下查看AndroidManifest.xml
文件,验证这些值是否正确,特别是:
Application:应用名称
User-permission:使用权限,必须包含网络访问权限。
若没有加入网络权限,则在<application
上添加以下内容:
<uses-permission android:name="android.permission.INTERNET" />
(2)查看构建配置
在<app_dir>/android/app/
路径下查看build.gradle
文件,验证这些值是否正确,特别是:
defaultConfig:
applicationId:指定始终唯一的appid
versionCode & versionName:指定应用程序版本号和版本字符串
minSdkVersion & targetSdkVersion:指定最低的API运行级别以及应用程序运行的API级别。
(3)添加启动图标
在<app_dir>/android/app/src/main/res/
路径下,将图标文件放入使用配置限定名命名的文件夹中,默认使用mipmap
文件夹演示正确的命名约定。
在AndroidManifest.xml
文件中,将android:icon
属性更新为引用上一步中的图标,如android:icon=”mipmap/ic_launcher”
。
(4)APP签名
创建keystore
在命令行窗口进入<app_dir>
路径,输入以下指令,根据提示输入对应信息,生成密钥结构如下所示:
keytool -genkey -v -keystore ./key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
引用应用程序中的keystore
在<app_dir>/android/
在创建一个名为key.properties
的文件,其中包含对密钥库的引用:
storePassword=密钥库口令
keyPassword=key的密钥口令
keyAlias=key
storeFile=<app_dir>/key.jks
在gradle中配置签名
在<app_dir>/android/app/
路径下编辑build.gradle
文件,
在”android {“
前加上如下内容:
def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
将
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
}}
替换为:
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}}buildTypes {
release {
signingConfig signingConfigs.release
}}
(5)开启混淆
配置混淆
在<app_dir>/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.** { *; }
开启混淆压缩
在<app_dir>/app/build.gradle
文件中,定位到buildTypes
块
在release
配置中将minifyEnabled
和useProguard
设为true
,并将混淆文件指向proguard-rules.pro
修改后的buildTypes
如下所示:
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled true
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
(6)构建发布版apk
进入应用程序目录
cd <app_dir>
构建apk
(构建好的apk
位于<app_dir>/build/app/outputs/apk/app-release.apk
)
flutter build apk
安装apk
flutter install
构建apk
结果如下所示:
文章作者:GentleTK
原文链接:https://gentletk.gitee.io/Flutter使用