Flutter初体验(二)安卓打包

Flutter初体验(二)安卓打包

一直以以来都是用android studio 打包,今天来研究一下怎么用命令行打包APK;

第一步

配置图标

首先,打开flutter项目包下目录

android/app/src/main/res/
可以看到有这个几个目录

  • mipmap-mdpi(160dpi)
  • mipmap-hdpi (240dpi)
  • mipmap-xhdpi(320dpi)
  • mipmap-xxhdpi(480dpi)
  • mipmap-xxxhdpi(640dpi)
    按照对应像素放入对应大小的图标文件,图片格式为 .png

第二步

配置APP名称和图标、系统权限,打开目录:

/android/app/src/main/AndroidManifest.xml

  android:label="myflutter"   //设置APP名称,可以为中文就不多说了
  android:icon="@mipmap/ic_launcher"  //配置APP图标路径

第三步

生成 keystore

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

注意:/E:/key.jks 为需要存储.jks文件的目录

第四步

安卓根目录下创建 key.properties文件

添加如下代码:


	storePassword=秘钥库密码
	keyPassword=KEY密码
	keyAlias=key
	storeFile= // 生成的文件路径

第五步

配置 KEY 注册

打开 build.gradle配置文件,

/android/app/build.gradle

android对象中添加 如下代码:


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

修改下面代码

buildTypes {
    release {
        signingConfig signingConfigs.debug
    }
}

为:

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

并添加如下代码:

defaultConfig {
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId "com.example.myflutter" //APPID
        minSdkVersion 16                      // 可运行应用的最低版本的 Android 平台,由该平台的 API 级别标识符指定
        targetSdkVersion 27                   // 指定运行应用的目标 API 级别。在某些情况下,这允许应用使用在目标 API 级别中定义的清单元素或行为,而不是仅限于使用那些针对最低 API 级别定义的元素或行为。
        versionCode 1                         // 版本号
        versionName "1.0"	                  // 版本名称
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

最后一步

打包

flutter build apk

成功之后会显示如下图内容:
Flutter初体验(二)安卓打包_第1张图片

这样我们的apk包就新鲜出炉了;

注意:楼主亲测,,,打包之后闪退问题修复
Flutter初体验(二)安卓打包_第2张图片
添加ndk 不能设置的多,多了也会闪退

闪退的话试试这个

flutter build apk --target-platform android-arm64

如果包体积过大的话,可以考虑使用:

flutter build apk --split-per-abi

上述打包命令会在/build/app/outputs/apk/release目录下生成两个apk文件:

app-armeabi-v7a-release.apk
app-armeabi-v8a-release.apk

移除 --split-per-abi参数后,会生成支持所有ABI平台的Apk文件,这样会导致文件体积变大。

你可能感兴趣的:(移动APP,文章,Flutter)