Flutter初體驗(yàn)(二)安卓打包
一直以以來(lái)都是用android studio 打包,今天來(lái)研究一下怎么用命令行打包APK;
首先捌刮,打開flutter項(xiàng)目包下目錄
android/app/src/main/res/
可以看到有這個(gè)幾個(gè)目錄
mipmap-mdpi(160dpi)
mipmap-hdpi (240dpi)
mipmap-xhdpi(320dpi)
mipmap-xxhdpi(480dpi)
mipmap-xxxhdpi(640dpi)
按照對(duì)應(yīng)像素放入對(duì)應(yīng)大小的圖標(biāo)文件,圖片格式為?.png
配置APP名稱和圖標(biāo)玩徊、系統(tǒng)權(quán)限谍失,打開目錄:
/android/app/src/main/AndroidManifest.xml
? android:label="myflutter"? //設(shè)置APP名稱,可以為中文就不多說(shuō)了
? android:icon="@mipmap/ic_launcher"? //配置APP圖標(biāo)路徑
生成?keystore
keytool -genkey -v -keystore /E:/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
注意:/E:/key.jks?為需要存儲(chǔ).jks文件的目錄
安卓根目錄下創(chuàng)建?key.properties文件
添加如下代碼:
storePassword=秘鑰庫(kù)密碼
keyPassword=KEY密碼
keyAlias=key
storeFile=<E:/key.jks> // 生成的文件路徑
打開?build.gradle配置文件嫡丙,
/android/app/build.gradle
在?android對(duì)象中添加 如下代碼:
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? ? ? ? ? ? ? ? ? ? ? // 可運(yùn)行應(yīng)用的最低版本的 Android 平臺(tái)拴袭,由該平臺(tái)的 API 級(jí)別標(biāo)識(shí)符指定
? ? ? ? targetSdkVersion 27? ? ? ? ? ? ? ? ? // 指定運(yùn)行應(yīng)用的目標(biāo) API 級(jí)別。在某些情況下曙博,這允許應(yīng)用使用在目標(biāo) API 級(jí)別中定義的清單元素或行為拥刻,而不是僅限于使用那些針對(duì)最低 API 級(jí)別定義的元素或行為。
? ? ? ? versionCode 1? ? ? ? ? ? ? ? ? ? ? ? // 版本號(hào)
? ? ? ? versionName "1.0" ? ? ? ? ? ? ? ? ? // 版本名稱
? ? ? ? testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
? ? }
flutter build apk
成功之后會(huì)顯示如下圖內(nèi)容:
這樣我們的apk包就新鮮出爐了父泳;
注意:樓主親測(cè)般哼,,惠窄,打包之后閃退問(wèn)題修復(fù)
添加ndk 不能設(shè)置的多蒸眠,多了也會(huì)閃退