Android多渠道打包与360加固apk并自动签名

一.场景

应用须要接入统计服务,了解应用在不一样应用市场的表现时,分发到不一样应用市场的apk须要一个渠道名区分不一样应用市场。这时就须要打多个不一样的包,每一个包对应一个渠道名, 即对应一个应用市场。android

二.多渠道打包实践(以友盟统计为例)

1.Gradle方式app

(1)在AndroidManifest.xml清单文件中设置友盟统计的APPKEY和应用推广的渠道名称。gradle

<!--value的值填写你在友盟后台申请的应用Appkey-->
        <meta-data android:value="5b9a2d49f29d9833fa0000e" android:name="UMENG_APPKEY"/>
        <!--value的值填写渠道名称,例如yingyongbao。这里设置动态渠道名称变量-->
        <meta-data android:value="${UMENG_CHANNEL_VALUE}" android:name="UMENG_CHANNEL"/>

(2)在项目Module的build.gradle文件的android标签下添加代码,配置多个渠道。ui

flavorDimensions "a"
    /*配置渠道*/
    productFlavors {

        yingyongbao {
            dimension "a"
            //设置yingyongbao 应用市场渠道名为yingyongbao
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "yingyongbao"]
        }

        wandoujia {
            dimension "a"
            //设置wandoujia 应用市场渠道名为wandoujia
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]
        }

        xiaomi {
            dimension "a"
            //设置xiaomi 应用市场渠道名为xiaomi
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "xiaomi"]
        }
    }

(3)签名打包,这时就会生成对应(2)中配置的三个渠道的三个apk文件。3d

(4)特殊需求:每一个渠道包的图标和应用名都不同。code

a.在AndroidManifest.xml清单文件中设置包名和图标时以下xml

<application
  android:icon="${app_icon}"
  android:label="${app_name}">

b.步骤(2)中修改如下blog

flavorDimensions "a"
    /*配置渠道*/
    productFlavors {

        yingyongbao {
            dimension "a"
            //设置yingyongbao 应用市场渠道名为yingyongbao
            manifestPlaceholders = [app_name: "@string/app_name_baidu",
                                    app_icon: "@string/app_name_baidu",
                                    UMENG_CHANNEL_VALUE: "yingyongbao"]
        }

        wandoujia {
            dimension "a"
            //设置wandoujia 应用市场渠道名为wandoujia
            manifestPlaceholders = [app_name: "@string/app_name_baidu",
                                    app_icon: "@string/app_name_baidu",
                                    UMENG_CHANNEL_VALUE: "wandoujia"]
        }

        xiaomi {
            dimension "a"
            //设置xiaomi 应用市场渠道名为xiaomi
            manifestPlaceholders = [app_name: "@string/app_name_baidu",
                                    app_icon: "@string/app_name_baidu",
                                    UMENG_CHANNEL_VALUE: "xiaomi"]
        }
    }

2.使用360加固保加固apk并自动签名string

(1)下载360加固助手io

(2)签名配置

点击“配置信息”,选择“签名配置” ,勾选“启用自动签名”,点击“浏览” 按钮,选择须要使用的签名 Keystore 文件,并输入 Keystore 密码。密码正确时 会显示别名,而后输入正确的别名密码,点击“添加”,完成签名配置操做。 

(3)多渠道配置

在 “配置信息”菜单中,选择“多渠道配置”,勾选“启用多渠道打包”可 以在加固应用的同时自动打出对应的渠道加固包,根据须要的渠道包,填写相关的配置信息,单击“添加”按钮。

如上图添加了三个渠道
选择友盟统计平台对应步骤(1)中设置渠道名中的name:UMENG_CHANNEL
填写渠道编号对应步骤(1)中设置渠道名中的value:wandoujia

(4)使用AndroidStudio打包一个apk,以下图所示:

(5)再用360加固宝对apk加固,以下图所示:

(6)加固完成后,鼠标右键——>“打开输出路径”,以下图所示:

(7)这时就会产生3个渠道的加固后的apk。以下图所示:

至此多渠道加固介绍完毕,有问题的地方请留言!