App 初始化操作!

来源:互联网 发布:linux 字符集设置 编辑:程序博客网 时间:2024/06/07 12:43

签名配置

虽然APP离真正发布还很远,按我个人习惯还是把APP必须的东西但基本不会怎么变动的先配置了。

AS上建立签名文件太Easy: 工具栏Build > Generate Sign Apk > create new,然后填写签名相关信息即可。具体也可参考官网说明。

1.创建完后打开Project Structure(windows快捷键ctrl+alt+shift+s),切换到app并填写填写签名信息如下图,, 填写完确定将签名信息写入到app/build.grade中:



2.配置签名后再看看我们的app/build.grade会发现多签名信息:

123456789101112
signingConfigs {    release {        keyAlias 'huchiwei'        keyPassword 'password123'        storeFile file('E:/我的坚果云/Android开发/签名文件/android.hucw.signkey.jks')        storePassword 'password123'    }}...release {    signingConfig signingConfigs.release}
3.此时打开AS右侧Gradle面板执行下assembleRelease任务,如果正常的话,在app的build/outputs/apk能够见到已经签名的app-release.apk

     2.多渠道打包:
(1).

同样地,我也到友盟申请个App统计应用,按照SDK文档配置下。

manifest.xml

123
<meta-data    android:name="UMENG_CHANNEL"    android:value="${UMENG_CHANNEL_VALUE}" />

在app的build.gradle设置produceFlavors

12345678910111213
// 友盟多渠道打包productFlavors {    wandoujia {}    _360 {}    baidu {}    xiaomi {}    tencent {}    taobao {}}productFlavors.all { flavor ->    flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]}

然后格式化名称输出apk

123456789101112131415161718192021222324252627
def releaseTime() {    return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC"))}android {    defaultConfig {        // dex突破65535的限制        multiDexEnabled true        // 默认是umeng的渠道        manifestPlaceholders = [UMENG_CHANNEL_VALUE: "umeng"]    }        buildTypes {        release {            applicationVariants.all { variant ->                variant.outputs.each { output ->                    def outputFile = output.outputFile                    if (outputFile != null && outputFile.name.endsWith('.apk')) {                        // 输出apk名称为gankessence_v1.0_2015-01-15_wandoujia.apk                        def fileName = "gankessence_v${defaultConfig.versionName}_${releaseTime()}_${variant.productFlavors[0].name}.apk"                        output.outputFile = new File(outputFile.parent, fileName)                    }                }            }        }    }}

最后再一次执行assembleRelease,如果正常的话应该可以看到如下结果