15 最后一步---將應(yīng)用發(fā)布到360應(yīng)用商店
15.1 生成正式簽名的APK文件
并不是所有的APK文件都能成功安裝到手機(jī)上,Android系統(tǒng)要求只有簽名后的APK文件才可以安裝。
以前練習(xí)時(shí),Android Studio使用了一個(gè)默認(rèn)的keystore文件幫我們自動(dòng)進(jìn)行了簽名。我們所有通過(guò)Android Studio來(lái)運(yùn)行的程序都是使用了這個(gè)debug.keystore文件來(lái)進(jìn)行簽名的。
15.1.1 使用Android Studio生成
點(diǎn)擊Android Studio導(dǎo)航欄上的Build--->Generate SignedAPK。
在Validity一欄中填寫keystore文件的有效時(shí)長(zhǎng),單位是年,一般建議時(shí)間可以填的長(zhǎng)一些。
15.1.2 使用Gradle生成
上一小節(jié)中我們使用了Android Studio
提供的可視化工具來(lái)生成帶有正式簽名的APK
文件。Android Studio
其實(shí)還提供了另外一種方式---使用Gradle
生成。
編輯app/build.gradle
文件,在android
閉包中添加如下內(nèi)容:
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.mengweather.android"
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
signingConfigs {
config {
storeFile file('E:/Key/Weather.jks')
storePassword '123456'
keyAlias 'Meng'
keyPassword '123456'
}
}**
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
在android
閉包中添加了一個(gè)signingConfigs
閉包,然后在signingConfigs
閉包中又添加了一個(gè)config
閉包。接著在config
閉包中配置keystore
文件的各種信息,storeFile
用于指定keystore
文件的位置,storePassword
用于指定密碼,keyAlias
用于指定別名,keyPassword
用于指定別名密碼。
將簽名信息都配置好了之后,接下來(lái)只需要在生成正式版APK
的時(shí)候去應(yīng)用這個(gè)配置就可以了。編輯app/build.gradle
文件。
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
**signingConfig signingConfigs.config**
}
}
我們?cè)?code>buildTypes下面的release
閉包中應(yīng)用了剛才添加的簽名配置,這樣當(dāng)生成正式版APK
文件的時(shí)候就會(huì)使用我們剛才配置的簽名信息來(lái)進(jìn)行簽名了。
那么我們?nèi)绾尾拍苌?code>APK文件呢?Android Studio
中內(nèi)置了很多的Gradle Tasks
,其中就包括了生成APK
文件的Task
。
Gradle--->項(xiàng)目名--->:app--->Tasks--->build.
assembleDebug
用于生成測(cè)試版的APK文件,assembleRelease
用于生成正式版的APK文件,assemble
用于同時(shí)生成測(cè)試版和正式版的APK
文件。在生成APK
文件之前,先要雙擊clean
這個(gè)Task
來(lái)清理一下當(dāng)前項(xiàng)目,然后雙擊assembleRelease
。
目前keystore
文件的所有信息都是以明文的形式直接配置在build.gradle
中的,這樣就不太安全。
Android Studio
項(xiàng)目的根目錄下有一個(gè)gradle.properties
文件,它是專門用來(lái)配置全局鍵值對(duì)數(shù)據(jù)的,我們?cè)?code>gradle.properties文件中添加如下內(nèi)容:
KEY_PATH=E:/Key/Weather.jks
KEY_PASS=123456
ALIAS_NAME=Meng
ALIAS_PASS=123456
這里將keystore
文件的各種信息以鍵值對(duì)的形式進(jìn)行了配置,然后我們?cè)?code>build.gradle中去讀取這些數(shù)據(jù)就可以了。
編譯build.gradle
文件
signingConfigs {
config {
storeFile file(KEY_PATH)
storePassword KEY_PASS
keyAlias ALIAS_NAME
keyPassword ALIAS_PASS
}
}
這里只需要將原來(lái)的明文配置改成相應(yīng)的鍵值。