15 最后一步---将应用发布到360应用商店
15.1 生成正式签名的APK文件
并不是所有的APK文件都能成功安装到手机上,Android系统要求只有签名后的APK文件才可以安装。
以前练习时,Android Studio使用了一个默认的keystore文件帮我们自动进行了签名。我们所有通过Android Studio来运行的程序都是使用了这个debug.keystore文件来进行签名的。
15.1.1 使用Android Studio生成
点击Android Studio导航栏上的Build--->Generate SignedAPK。
在Validity一栏中填写keystore文件的有效时长,单位是年,一般建议时间可以填的长一些。
15.1.2 使用Gradle生成
上一小节中我们使用了Android Studio
提供的可视化工具来生成带有正式签名的APK
文件。Android Studio
其实还提供了另外一种方式---使用Gradle
生成。
编辑app/build.gradle
文件,在android
闭包中添加如下内容:
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
闭包中添加了一个signingConfigs
闭包,然后在signingConfigs
闭包中又添加了一个config
闭包。接着在config
闭包中配置keystore
文件的各种信息,storeFile
用于指定keystore
文件的位置,storePassword
用于指定密码,keyAlias
用于指定别名,keyPassword
用于指定别名密码。
将签名信息都配置好了之后,接下来只需要在生成正式版APK
的时候去应用这个配置就可以了。编辑app/build.gradle
文件。
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
**signingConfig signingConfigs.config**
}
}
我们在buildTypes
下面的release
闭包中应用了刚才添加的签名配置,这样当生成正式版APK
文件的时候就会使用我们刚才配置的签名信息来进行签名了。
那么我们如何才能生成APK
文件呢?Android Studio
中内置了很多的Gradle Tasks
,其中就包括了生成APK
文件的Task
。
Gradle--->项目名--->:app--->Tasks--->build.
assembleDebug
用于生成测试版的APK文件,assembleRelease
用于生成正式版的APK文件,assemble
用于同时生成测试版和正式版的APK
文件。在生成APK
文件之前,先要双击clean
这个Task
来清理一下当前项目,然后双击assembleRelease
。
目前keystore
文件的所有信息都是以明文的形式直接配置在build.gradle
中的,这样就不太安全。
Android Studio
项目的根目录下有一个gradle.properties
文件,它是专门用来配置全局键值对数据的,我们在gradle.properties
文件中添加如下内容:
KEY_PATH=E:/Key/Weather.jks
KEY_PASS=123456
ALIAS_NAME=Meng
ALIAS_PASS=123456
这里将keystore
文件的各种信息以键值对的形式进行了配置,然后我们在build.gradle
中去读取这些数据就可以了。
编译build.gradle
文件
signingConfigs {
config {
storeFile file(KEY_PATH)
storePassword KEY_PASS
keyAlias ALIAS_NAME
keyPassword ALIAS_PASS
}
}
这里只需要将原来的明文配置改成相应的键值。