# Flutter 项目建立

# 建立项目

# 建立

# org name 与程序上架的注册的id 
flutter create --org com.jingmin demo
1
2

如果开始无法确定 org,到发版的时候才确定怎么办。 对于新手来说,与其做修改,不如直接新建项目,把 lib 下面的文件 copy 过来,并对 android 下面的内容做相应修改,这样肯定效率更高,也不容易出错。

# 修改版本号

打开 pubspec.yaml 找到 version: 1.0.0+1。

一般来讲大部分的软件版本号 分 3 段,比如 A.B.C

  • A 表示大版本号,一般当软件整体重写,或出现不向后兼容的改变时,增加A。
  • B 表示功能更新,出现新功能时增加B。
  • C 表示小修改,如修复bug,只要有修改就增加C

还有后面的 +1 是怎么回事? +号可以看做是分隔符。1 是累计版本,从 1 开始,只能增加,不能减小,并且,每次发版必须增加。这个版本号是给内部用的。比如苹果商店,android 平台都用这个版本号来判断软件的新旧。3 位版本号是给用户看的。3 位版本号包含软件更新的信息,让人一看就知道是重大更新,还是功能增加,还是 bug 修复。

# 设置 sdk 版本

  • compileSdkVersion 告诉 gradle 用哪个 Android SDK 版本编译你的应用。compileSdkVersion 决定了你可以用哪个版本的 api。比如你的 compileSdkVersion 是 31,如果你在代码中用了 33 的 api,编译会报错。一般我们都把 compileSdkVersion 设置为最高版本。
  • minSdkVersion 是应用可以运行的最低版本要求。也就是你要向下兼容哪些版本。根据 app 的用户特点,尽量设得高一些,否则很多插件不能用。
  • targetSdkVersion 告诉 android 系统,app 要在哪个版本运行。android 的 api 在不同版本之间,虽然接口没有变化,但内部的行为可能发生了变化。当你指定了 targetSdkVersion 后,一定要在这个版本做完整的测试。新开项目 targetSdkVersion 应该和 compileSdkVersion 保持一致。支持新近的 API 级别有助于让您的应用利用平台的最新功能,为用户提供愉悦的体验。
compileSdkVersion 33
minSdkVersion 23
targetSdkVersion 33
1
2
3

# 图标及开机屏幕

# 图标

# 加入依赖、

mkdir -p ./assets/images
flutter pub add dev:flutter_launcher_icons
1
2

# 在pubspec.yaml修改配置

flutter_icons:
  image_path: "images/icon1024.png"
  android: true 
  ios: true 
1
2
3
4

# 运行命令

flutter pub run flutter_launcher_icons:main
1
  • Format: 32-bit PNG
  • icon 大小必须是 1024x1024
  • 确保在 40px 大小时也能清晰可见,这是 icon 最小的尺寸。
  • icon 不能大于 1024KB
  • icon 不能是透明的。
  • 必须是正方形,不能有圆角。

# 开机屏幕 Splash Screen

# 安装

flutter pub add flutter_native_splash
1

# 在pubspec.yaml修改配置

flutter_native_splash:
  color: "#42a5f5"
  image: images/splash.png
1
2
3

# 执行命令

flutter pub run flutter_native_splash:create
1

# android 权限

# 生成签名

  • dname 指定证书发行者信息 其中: “CN=名字与姓氏,OU=组织单位名称,O=组织名称,L=城市或区域名 称,ST=州或省份名称,C=单位的两字母国家代码”
  • keypass 指定别名条目的密码(私钥的密码
  • storepass 指定密钥库的密码(获取keystore信息所需的密码)
keytool -genkey -keystore key.keystore -keyalg RSA  \
  -validity 36000 -alias jingmin -signerkeypass xxxx12345@ \
  -storepass xxxx12345@ \
  -dname CN=xxxx,OU=xxxx,O=xxxx,L=wuhan,ST=hubei,C=china

keytool -list -v -keystore key.keystore
1
2
3
4
5
6

# 网络访问的权限

<!--网络访问 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
1
2
3

如果要用 http ,但是需要在 AndroidManifest.xml 的 applictation 加如下配置android:usesCleartextTraffic="true"

# 打包

  • 打包
    flutter build apk --release --target-platform=android-arm64,android-arm
    
    1
  • 安装
    flutter install build\app\outputs\apk\release\app-release.apk
    
    1