1.签名
Android系统要求只有签名后的APK文件才可以安装,因此我们还需要对生成的APK文件进行签名。而平时我们通过Android Studio 将程序安装到手机上,是因为AS使用了一个默认的keystore文件帮我们自动进行了签名。
Android Studio提供的可视化工具生成带有正式签名的APK文件,还可以通过Gradle生成。
signingConfigs{
config{
storeFile file()
storePassword
keyAlias
keyPassword
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.config
}
}
}
在android闭包中添加一个signingConfigs闭包,然后在signingConfigs闭包中添加一个config闭包,接着在config闭包中配置keystore文件的位置,storePasswrod用于指定密码,keyAlias用于指定别名,keyPassword用于指定别名密码。接着在buildTypes下面的release闭包中应用了刚才添加的签名配置,这样当生成正式版APK文件的时候就会自动使用我们刚才配置的签名信息来进行签名。
2.打包
Android Studio中内置了很多Gradle Task。
assembleDebug用于生成测试版的APK文件,assembleRelease用于生成正式版的APK文件,assemble用于同时生成测试版和正式版的APK文件。APK会自动生成在app/build/outputs/apk目录下。
keystore文件的所有信息都是以明文的形式直接配置在build.gradle中的,这样就不太安全,Android推荐的做法是将这类敏感数据配置在一个独立的文件中,然后再在build.gradle中去读取这些数据。Android Studio根目录下有一个gradle.properties文件,专门用来配置全局键值对数据的。这样直接查看build.gradle文件是无法看到keystore文件的各种信息的,只有查看gradle.properties文件才能看到,然后我们只需要保护gradle.properties文件就可以了,比如让它从git中删除,这样文件就只保留在本地,不用担心keystore文件信息泄漏了。
3.多渠道APK文件
1.添加productFlavors闭包,在该闭包中添加所有渠道配置。
2.渠道名不能以数字开头,渠道名的闭包中可以复写defautConfig中的任何一个属性。
3.差异性的代码可以在app/src目录下,main的平级目录新建一个渠道名的目录,再新建java和res两个目录。