在android中配置多渠道打包
2016-07-26 16:05
387 查看
由于国内Android市场众多渠道,为了统计每个渠道的下载及其它数据统计,就需要我们针对每个渠道单独打包,如果让你打几十个市场的包岂不烦死了,不过有了Gradle,就可以很方便的一键进行多渠道打包。
此文将以项目中使用的百度统计为例,进行gradle配置多渠道打包讲解。使用其他友商进行多渠道打包同理。废话不多说,马上进入正题。
androidManifest中有这么一段代码,其中百度统计给的备注很明朗了,name字段无需更改,不同的渠道只要修改value即可。
在AndroidManifest中配置PlaceHolder,将value的值修改为${BAIDU_CHANNEL_VALUE},当然BAIDU_CAHNNEL_VALUE只是一名字而已,你也可以换成你喜欢的名字。目的就是要让我们的这个value在进行多渠道打包的时候自动变更。
在项目gradle中配置各种渠道号,这里"android"、"android_sougou"等等就是你的渠道号,各自要求的渠道标志不一样,可以根据自己的项目进行命名。
在项目gradle中配置在打包时的一些信息,例如显示log日志、还可以配置打包之后输出的apk文件名根据渠道命名、apk文件的输出位置等等。
利用AS的Generate Build进行多渠道打包
在gradle配置完成之后,那么就可以进行一键多渠道打包了,在AS中利用Generate build即可,打包开始之后,静默等待打包完成就行啦!具体操作如下截图:
图1 在AS的build菜单中选择generate signed apk
进入generate signed apk之后会让你输入密码,这个密码是本机用户管理你的签名文件密码用的,用于校验是否本人操作。如果你还没设置过的话,AS会提醒让你完成该密码设置的。
图2 输入master password
进入之后,需要你填入你这个apk的签名文件和密码,相信这个应该不用详细讲解了吧,按要求填入然后点击next按钮即可。
图3 填入签名文件和密码
完成签名文件输入点击下一步之后,最重要的页面来了。这里就是选择你要打包的类型,两个选择:release/debug,release和debug有些区别,release模式会比debug模式严格一些。然后flavors这里显示的就是你在gradle中配置的所有渠道啦。如果需要全部打包,就全选即可。如果个别打包的,就只要选中其中一个或多个打包就行。最后点击finish,静静等待打包完成吧!!打包的速度取决于你的机子性能和你项目的一些其他依赖等等。
图4 选择渠道打包
百度多渠道打包
此文将以项目中使用的百度统计为例,进行gradle配置多渠道打包讲解。使用其他友商进行多渠道打包同理。废话不多说,马上进入正题。androidManifest中有这么一段代码,其中百度统计给的备注很明朗了,name字段无需更改,不同的渠道只要修改value即可。
<!-- 百度统计 --> <!-- 渠道商编号,其中 name 请不要改,将 value 修改为渠道商编号。渠道名称请到 mtj.baidu.com 的渠道管理中修改 --> <meta-data android:name="BaiduMobAd_CHANNEL" android:value="CHANNEL_ID" />
在AndroidManifest中配置PlaceHolder,将value的值修改为${BAIDU_CHANNEL_VALUE},当然BAIDU_CAHNNEL_VALUE只是一名字而已,你也可以换成你喜欢的名字。目的就是要让我们的这个value在进行多渠道打包的时候自动变更。
<!-- 百度统计 --> <!-- 渠道商编号,其中 name 请不要改,将 value 修改为渠道商编号。渠道名称请到 mtj.baidu.com 的渠道管理中修改 --> <meta-data android:name="BaiduMobAd_CHANNEL" android:value="CHANNEL_ID" />
在项目gradle中配置各种渠道号,这里"android"、"android_sougou"等等就是你的渠道号,各自要求的渠道标志不一样,可以根据自己的项目进行命名。
android { // 你的其他gradle配置信息省略... // 配置所有的渠道名,如需增加其他渠道,则以类似的形式在productFlavors里面添加对应的即可 productFlavors { android { manifestPlaceholders = [BAIDU_CHANNEL_VALUE: "android"] } android_sougou { m 4000 anifestPlaceholders = [BAIDU_CHANNEL_VALUE: "android_sougou"] } android_huawei { manifestPlaceholders = [BAIDU_CHANNEL_VALUE: "android_huawei"] } android_pp { manifestPlaceholders = [BAIDU_CHANNEL_VALUE: "android_pp"] } } }
在项目gradle中配置在打包时的一些信息,例如显示log日志、还可以配置打包之后输出的apk文件名根据渠道命名、apk文件的输出位置等等。
android { // 其他的配置信息省略... buildTypes { release { minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro' // 不显示Log buildConfigField "boolean", "LOG_DEBUG", "false" minifyEnabled false // 移除无用的resource文件 shrinkResources true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' applicationVariants.all { variant -> variant.outputs.each { output -> def outputFile = output.outputFile if (outputFile != null && outputFile.name.endsWith('.apk')) { // 输出apk名称为app_v3.0(45)_pp.apk def fileName = "app_v${defaultConfig.versionName}(${defaultConfig.versionCode})_${variant.productFlavors[0].name}.apk" output.outputFile = new File(outputFile.parent, fileName) } } } } }
利用AS的Generate Build进行多渠道打包
在gradle配置完成之后,那么就可以进行一键多渠道打包了,在AS中利用Generate build即可,打包开始之后,静默等待打包完成就行啦!具体操作如下截图:
图1 在AS的build菜单中选择generate signed apk
进入generate signed apk之后会让你输入密码,这个密码是本机用户管理你的签名文件密码用的,用于校验是否本人操作。如果你还没设置过的话,AS会提醒让你完成该密码设置的。
图2 输入master password
进入之后,需要你填入你这个apk的签名文件和密码,相信这个应该不用详细讲解了吧,按要求填入然后点击next按钮即可。
图3 填入签名文件和密码
完成签名文件输入点击下一步之后,最重要的页面来了。这里就是选择你要打包的类型,两个选择:release/debug,release和debug有些区别,release模式会比debug模式严格一些。然后flavors这里显示的就是你在gradle中配置的所有渠道啦。如果需要全部打包,就全选即可。如果个别打包的,就只要选中其中一个或多个打包就行。最后点击finish,静静等待打包完成吧!!打包的速度取决于你的机子性能和你项目的一些其他依赖等等。
图4 选择渠道打包
相关文章推荐
- android 适配性完全攻略
- Intent案例--判断电话号码是否符合规范
- android之Canvas浅谈常用几个方法
- Android应用界面开发06
- Android插件化(一)
- Android Studio发布项目到Bintray jCenter
- android manifest.xml配置文件中的 Service节点
- Android开发笔记(一百一十一)聊天室中的Socket通信
- android:scaleType 设置图片显示
- android.view.ViewRootImpl$CalledFromWrongThreadException:
- Android基础——对话框集合
- 移动应用开发效率工具
- 新手使用Android Studio 获取SHA1 信息
- android组件 fragment 重叠现象解决思路
- Android Sensor框架简述(三)
- Android Material 之NavigationView和TextInputLayout的使用
- Android 实现双击退出的功能
- 企业移动应用开发基本知识树 (Android & iOS)
- 解决android启动黑白屏最简洁的方式 一行代码搞定
- 合理应用activity的生命周期优化程序内存