项目gradle学习之路(1)

1.写在前面

一般在项目开发中,我们打包时每次可以通过as提供的UI界面来操作,步骤一般是 Build-->Generate Signed APK,这种比较简单这里内容不错。但是在实际开发中,这样比较麻烦,并且 如果我们在使用第三方的服务,比如微信第三方登录时,在创建项目时它一般要我们填写签名的SHA值,无疑,我们填写的是发布版的签名,但是这样就导致在平时测试时很麻烦,因为我们在AS点击运行按钮时,当项目跑到手机上会默认使用debug版本的签名,那这样就测试不了了。如果我们每次通过Generate Signed APK获得apk后到手机安装测试,那太麻烦了。
所以我们希望可以在gradle中配置,实现:
1.打包签名时不用那么麻烦,比如填写别名 密码(虽然可以保存),直接通过build apk可以得到;
2.如果有类似微信第三方登录功能(填写发布版keystore的SHA1值)测试时可以方便点。


2.完成

(一)
其实在gradle配置别名 密码的方法很多,可以通过AS提供的UI界面,也可以直接通过写代码的方式,直接UI界面我不太习惯,但是也学习了一遍,大致步骤是,在Project的格式预览下,右键整个项目把Project Structure打开,可以看到如下图的界面
项目gradle学习之路(1)
然后将里面的内容全部填写好,点击OK就会在build.gradle里面生成相应的代码,在回到这个界面在Build Types里面引用刚才的自己定义的signingConfigs里面的内容。
项目gradle学习之路(1)
OK好了,这是一种,因为我不喜欢用,第二种就是全部都在build.gradle中用代码完成,其实和刚才一i样,刚才上面的内容全部填写完,会自动把代码生成在gradle.build里面。第二种文件在写上如下代码
android{

xxxxxxxxxxxx

signingConfigs {
release {
keyAlias 'kstar'
keyPassword ''
storeFile file('D:/android/AsWorkSpace/PowerDevice/app/ksolar.jks')
storePassword ''
}
debug{
}

}
然后再在buildTypes中引用刚才定义的,引用的代码如下
signingConfig sigingConfig.release
这名字是可以随便自己定义的,只要保持一致就可以了。
然后使用的话,直接点击Build-->Select Build Variant...
项目gradle学习之路(1)


选择你想要打包出来的,如下图,选择好以后点击Build APK,就会把相应的apk(测试版和发布版)生成在app\build\outputs\apk下面
项目gradle学习之路(1)

(二)

对于第二个要求,其实我们可以从上面看到一些启发,就可以很“流氓的解决”,比如我们直接在signingConfigs 中配置的两种模式,release和debug都使用发布版本的keystore,这样在AS中运行项目时,就是使用我们写的发版本的签名打包。这样就解决问题了,其实根据这种思路,我们还可以在buildTypes中的debug引用时 引用signingConfigs中release的配置,哈哈,服了吧,感觉挺“流氓的”,这样也可以解决。

ps:一直在用公司的开发项目测试配置gradle,所以我会慢慢丰富学习gradle的使用,丰富它,这是第一篇有关的文章,后面慢慢都会记录下来