转载请注明出处:http://blog.csdn.net/darling_R/article/details/76050360
1.签名文件的安全配置
有时候需要把项目上传到GitHub上,但是签名文件在gradle里面配置,密码都会暴露出去,所以采用以下方式配置就可以保证签名文件的保密性
1.在项目的根目录下,有一个文件:gradle.properties,这个文件一般是不需要上传的,打开这个文件,在文件最末添加以下内容:
# 签名别名
RELEASE_KEY_ALIAS=此处写你的签名文件的别名
# 签名密码
RELEASE_KEY_PASSWORD=这是密码
# 签名文件地址
RELEASE_STORE_FILE=这是签名文件的路径
# store密码
RELEASE_STORE_PASSWORD=密码
2.在model下的build.gradle文件里添加以下代码,对上面的配置进行引用
android{
...
signingConfigs {
relase {
keyAlias RELEASE_KEY_ALIAS
keyPassword RELEASE_KEY_PASSWORD
storeFile file(RELEASE_STORE_FILE)
storePassword RELEASE_STORE_PASSWORD
}
}
...
}
2.Android Studio 项目多渠道打包配置 步骤详解(以友盟为例)
1.首先配置好友盟的appkey
<meta-data android:name="UMENG_APPKEY" android:value="59b769261c5dd02bc4000069"/>
<!--${CHANNEL_VALUE} 占位符,用于后面替换渠道名使用-->
<meta-data android:name="UMENG_CHANNEL" android:value="${CHANNEL_VALUE}"/>
2.设置productFlavors(两种方式)
a:
(1)直接打开build.gradle 文件,在android{}里新建productFlavors{}:
android{
productFlavors {
huawei {
manifestPlaceholders = [CHANNEL_VALUE: "huawei"]
}
qh360 {
manifestPlaceholders = [CHANNEL_VALUE: "qh360"]
}
yiyongbao {
manifestPlaceholders = [CHANNEL_VALUE: "yiyongbao"]
}
}
}
(2)批量修改渠道名
android{
productFlavors {
huawei {}
qh360 {}
yiyongbao {}
}
productFlavors.all {
flavor -> flavor.manifestPlaceholders = [CHANNEL_VALUE: name]
}
}
里面的每一个便签对应一个渠道,名字自己随便取,
b:
如果不想一行行的写代码,也可以使用studio的界面设置,如下图:
需要几个渠道,就在这里新建几个Flavors,后面的内容都可以空着,这里新建之后,去build.gradle文件里查看,就会自动生成productFlavors{}标签,如下:
然后自行配置里面的内容,或者批量修改。
还可以自定义apk打包后的输出位置以及名称,配置如下:
android {
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.relase
// 自定义输出配置
applicationVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
// 输出apk名称为qqbike_v1.0_wandoujia.apk
def fileName = "qqbike_v${defaultConfig.versionName}_${variant.productFlavors[0].name}.apk"
output.outputFile = new File(outputFile.parent, fileName)
}
}
}
}
debug {
signingConfig signingConfigs.relase
}
}
到此,配置已完成,可以开始打包了,走正常的打包流程,在打包过程中会出现以下界面,选择需要打包的渠道
然后 开始执行打包过程,等待结束之后,就可以看到有不同名称的apk安装包啦。
使用命令来进行打包(逼格更高一点)
1.打开studio的控制面板,Terminal;
直接输入gradlew assembleRelease 来执行打包;
如果只打包其中一个渠道的包,例如只要360的
gradlew assembleQh360
如果只打包release包
gradlew assembleQh360Release
只打包Debug
gradlew assembleQh360Debug
其他渠道同上。
3.Dialog里面有EditText的时候,软键盘不能弹出的解决方案
添加下面这行代码就可以了,
dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
软键盘的显示与隐藏
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
//下面这行代码会自动检测软键盘的显示与否,如果此时是显示的,就会隐藏,否则 反之;
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);