每次发布新版本时,app会发布到国内各大应用市场,为了统计不同应用市场的推广效果,我们会为每一个apk添加唯一的标识(渠道号),方便进行统计。
对于渠道号的统计,可以使用第三方统计工具,如友盟,也可以在请求接口时将渠道号传递到后台自行统计。
这里以友盟统计为例。
可以选择在清单文件中添加渠道号,假如渠道号为wandoujia:
或者在java代码中添加:
由于在发版时,渠道号较多,所以需要采用自动化的方式,根据渠道列表自动生成对应的渠道包。
在Eclipse开发工具盛行的年代,一般使用Ant实现批量打包。缺陷是每打一个包,都要将工程编译,签名,效率很低。
AndroidStudio推出之后,有了替代方案,使用gradle批量打包。
实现步骤如下:
1.在AndroidManifest.xml中添加渠道占位符
2.在module的gradle文件中添加渠道号
3.点击工具栏的Build,选择Generate Signed APK,然后选中需要打包的渠道即可。
使用gradle打包,是通过修改AndroidManifest文件来实现的。每打一个渠道包,需要重新签名。这种方式现在比较流行,效率一般,当渠道号过多时略显吃力。
接下来进入本文的重点,使用python实现多渠道打包。使用这种方式,分分钟打一千个包不再是梦。
该方案出自美团分享的解决方案:
对于渠道号的统计,可以使用第三方统计工具,如友盟,也可以在请求接口时将渠道号传递到后台自行统计。
这里以友盟统计为例。
可以选择在清单文件中添加渠道号,假如渠道号为wandoujia:
<meta-data android:name="UMENG_CHANNEL" android:value="wandoujia" />
或者在java代码中添加:
import com.umeng.analytics.AnalyticsConfig;
AnalyticsConfig.setChannel(channel);
由于在发版时,渠道号较多,所以需要采用自动化的方式,根据渠道列表自动生成对应的渠道包。
在Eclipse开发工具盛行的年代,一般使用Ant实现批量打包。缺陷是每打一个包,都要将工程编译,签名,效率很低。
AndroidStudio推出之后,有了替代方案,使用gradle批量打包。
实现步骤如下:
1.在AndroidManifest.xml中添加渠道占位符
<meta-data android:name="UMENG_CHANNEL" android:value="${UMENG_CHANNEL_VALUE}" />
2.在module的gradle文件中添加渠道号
productFlavors {
wandoujia {}
qihoo360 {}
}
productFlavors.all {
flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}
3.点击工具栏的Build,选择Generate Signed APK,然后选中需要打包的渠道即可。
使用gradle打包,是通过修改AndroidManifest文件来实现的。每打一个渠道包,需要重新签名。这种方式现在比较流行,效率一般,当渠道号过多时略显吃力。
接下来进入本文的重点,使用python实现多渠道打包。使用这种方式,分分钟打一千个包不再是梦。
该方案出自美团分享的解决方案: