前言

最近学习了多渠道打包,此博客用以记录学习的内容
多渠道打包,渠道可以理解为应用市场,多渠道打包就是生成支持各种应用市场的apk文件,因为安卓的应用市场很多,所以这个知识也是很重要的
··············································
开始,我们使用友盟的多渠道打包sdk
首先把步骤列出

获取appkey

那么第一步
百度搜索友盟,注册账号
找到U-APP应用统计,点击进入

进入后,点击立即使用

进入后,左下角会有一个添加新应用

打开android stuido新建一个安卓项目
刚好今天新建了一个broadcastreceiver demo就将就着用吧
然后点击添加新应用
下面是我填写好后的信息

点击提交,获取appkey

这个时候完成了我们的第一步
获取到了我们的应用对应的appkey

添加友盟的sdk

接下来添加友盟的统计库
android studio可以直接使用代码添加,eclipse的可以去友盟官网看一下导入方法,都是很简单的
在app的build的配置文件中dependencies下添加

compile 'com.umeng.analytics:analytics:latest.integration'

如果添加失败了
就在project的build中添加

allprojects {repositories {mavenCentral()     }
}

这是添加maven库,默认的只有jcenter库,有的时候可能会有一些奇怪的原因导致你在jcenter库中没有下载下来,

配置manifest文件

首先添加权限
添加在applica标签的外面

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

接下来添加友盟对应的meta-data

<meta-data android:value="YOUR_APP_KEY" android:name="UMENG_APPKEY"/>
<meta-data android:value="Channel ID" android:name="UMENG_CHANNEL"/>

添加在application标签的里面
对齐进行修改

<meta-dataandroid:name="YOUR_APP_KEY"android:value="58b3959875ca351577000840"/><meta-dataandroid:name="UMENG_CHANNEL"android:value="${UMENG_CHANNEL_NAME}"/>

因为我们添加的是多渠道打包,所以需要动态的配置,所以这里使用占位符$,这样方便在后续的操作中进行修改

生成签名文件,并配置进项目

首先生成签名文件,需要debug包的也可以配置debug配置
点击build,在点击红色圈选中的选项


点击creat new

接下来大家自己生成俩个,一个的buildtype选择debug一个选择release就行了
然后得到了俩个jks文件

接下来把签名文件配置到我们的APP项目中
点击


将debug和release都配置好
进入APP的build中
会发现帮我们默认生成了很多东西
比如
···
signingConfigs {
debug {
keyAlias ‘china’
keyPassword ‘123456’
storeFile file(‘D:/work/debug.jks’)
storePassword ‘123456’
}
release {
keyAlias ‘china’
keyPassword ‘123456’
storeFile file(‘D:/work/release.jks’)
storePassword ‘123456’
}
}
···

添加打包脚本

接下来继续对app的build进行修改
修改如下,新添加的代码行我都标上了注释

apply plugin: 'com.android.application'android {compileSdkVersion 25buildToolsVersion "25.0.1"defaultConfig {applicationId "com.anlaiye.swt.broadcastreceiver"minSdkVersion 14targetSdkVersion 25versionCode 1versionName "1.0"testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"multiDexEnabled true //突破应用方法数为65535的限制manifestPlaceholders = [UMENG_CHANNEL_NAME: "UMENG"]  //为meta_data添加placeholder} //导入jks文件后会自动生成signingConfigs {debug {keyAlias 'china'keyPassword '123456'storeFile file('D:/work/debug.jks')storePassword '123456'}release {keyAlias 'china'keyPassword '123456'storeFile file('D:/work/release.jks')storePassword '123456'}} //这里添加release,和debug的指向buildTypes {release {minifyEnabled false   //这里是代码混淆,展示不需要,默认false就行signingConfig signingConfigs.release  //添加release签名proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}debug {minifyEnabled falsesigningConfig signingConfigs.debug  //添加debug签名proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}}productFlavors {  //在这里添加你所有需要打包的渠道xiaomi {}        //xiaomi渠道
meizu {}         //魅族 //遍历上面填写的渠道修改为对应的nameproductFlavors.all { flavor ->flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]}} //对生成的apk进行一些简单的配置applicationVariants.all { variant ->variant.outputs.each { output ->def outputFile = output.outputFiledef buildTypeif (variant.buildType.name.equals('release')) {buildType = "release"} else if (variant.buildType.name.equals('debug')) {buildType = "debug"}if (outputFile != null && outputFile.name.endsWith('.apk')) { // 输出apk名称为我们自己配置的名字+.apk //def fileName = "Anlaiye-v${defaultConfig.versionName}-${getDate()}-${variant.productFlavors[0].name}-${buildType}.apk"def fileName = "Sunwentao-v${defaultConfig.versionName}-${variant.productFlavors[0].name}-${buildType}.apk"output.outputFile = new File(outputFile.parent + buildType, fileName)}}}}dependencies {compile fileTree(include: ['*.jar'], dir: 'libs')androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {exclude group: 'com.android.support', module: 'support-annotations'})compile 'com.android.support:appcompat-v7:25.0.1'testCompile 'junit:junit:4.12'compile 'com.umeng.analytics:analytics:latest.integration'
}

mac打包命令
./dradlew assembleRelease
windows下打包命令
gradlew assembleRelease

输入后开始打包

打包成功
在project视图下 找到build目录下面有个release

可以看到生成了xiaomi和魅族的release包
同时生成的名字也是我们自定义设置的名字
到这里基本上就都已经结束了
同时这里要说一个坑 就是signingConfigs 要放到buildtype上面,不然会报错 ,很奇怪的东西
同时360渠道的渠道包是需要下载360加固助手进行加固才能上到应用市场的
好了 祝大家打包愉快

安卓多渠道打包的搭建相关推荐

  1. 安卓多渠道打包(三)360加固多渠道打包

    如题,本次实践项目为使用360加固+多渠道打包. 首先,从官网下载360加固软件,博主使用的是windows系统. 360加固下载地址 选择对应平台下载即可. 代码地址在文末 实战: 一.代码设置 ( ...

  2. 安卓转战React-Native之签名打包成Apk并极速多渠道打包

    前言 搞安卓的开发应该知道开发好的apk都是需要上传到应用市场给用户下载的,当然有些公司的产品是不用上传到应用市场的(比如我们公司放七牛云)但是也需要放在云上面给用户下载.react-native直接 ...

  3. 【安卓开发系列 -- 开发环境】Unbuntu 下 Android 持续集成打包环境搭建 -- Jenkins 构建工具安装(gradle + git + android 工具)

    [安卓开发系列 -- 开发环境]Unbuntu 下 Android 持续集成打包环境搭建 -- Jenkins 构建工具安装(gradle + git + android 工具) [1]Unbuntu ...

  4. python安卓打包_Android多渠道打包之Python打包

    我们做Android用户级应用开发的时候都要考虑这样的问题,目前的应用市场有很多,我们的安装包是通过哪个渠道进入用户手机的,总得统计一下吧,这就要说到多渠道打包了.多年前刚入行的时候,打包就是在代码里 ...

  5. android 乐固渠道打包,安卓腾讯乐固(legutools)多渠道打包(友盟)

    腾讯云.移动安全生成友盟多渠道方法 https://www.jianshu.com/p/b17c3a7fab28 注意:该方案于2019.2.18日发现存在问题,原因是由于乐固对多渠道的支持有问题.详 ...

  6. Android Studio 多渠道打包、自动版本号及 gradlew 命令的基本使用

    Android Studio 真可谓神器,详细请点这里:打造安卓开发航空母舰 这里介绍其多渠道打包: 1 建立多渠道 这里介绍一种简单的,直接as操作: 直接上图咯,在项目结构你添加flavor就好了 ...

  7. android打包工具多渠道批量打包,Android 快速渠道批量打包详解教程-美团多渠道打包方案...

    今天写一篇文章来总结下android批量打渠道包美团版本.之前项目上一直用的是gradle 批量打包方式,那个速度啊真是令人发指,15个渠道得跑上半个小时,出去吃顿饭回来,还在跑.特别是赶上项目上线的 ...

  8. Android 新一代多渠道打包神器

    作者 :李涛 ApkChannelPackage是一种高速多渠道打包工具.同一时候支持基于V1签名和V2签名进行多渠道打包.插件本身会自己主动检測Apk使用的签名方法,并选择合适的多渠道打包方式.对使 ...

  9. walle多渠道打包+Tinker(bugly)热更新集成+360加固(乐固)

    这三个东东是干啥的相信大家都有所耳闻了,如果你没有听说过,请出门左拐,百度一下你就知道.这里不对这三个东东具体的集成方式做详细的介绍,因为官方文档已经写的很详细了,主要是对同时使用这三个东东时所需要注 ...

最新文章

  1. 【BZOJ2140】稳定婚姻 Tarjan
  2. 计算机网络谢希仁第七版课后答案第三章 数据链路层
  3. div高度、宽度100% div width、height 100%
  4. python template languages_Python template.TemplateSyntaxError方法代碼示例
  5. 今日起开始预约!北京将发放5万份数字人民币红包
  6. 【php】使用phpdbg来调试php程序
  7. Python基础知识 D2
  8. 多进程|多线程的不同应用场景:Python还是C
  9. [转载]你是那个能和我同行一生的人吗?
  10. 服务器操作系统使用相关要求,服务器操作系统使用相关要求
  11. 25个超适合学生党的0成本兼职,自我增值的最有效方式
  12. 服务器无线路由器桥接,三个无线路由器怎么设置桥接
  13. 什么是质量功能配置(QFD)(转载)
  14. eclipse官网下载不了eclipse开发工具的解决方法
  15. HDU - 1431 素数回文 [ 学到了 ]
  16. vue push html,html5 - Vue 2.0 javaScript 数组循环push json 对象问题
  17. 解决本地新建项目推送到码云失败的问题
  18. ant-design中取消tab激活时候的下划线、以及修改tab激活时候下划线颜色
  19. 识别电路板上贴片电阻型号0805 0402 0603 1206封装信息
  20. Java、JSP基于WEB的师生互动系统

热门文章

  1. [ZT]MS SQL Server查询优化方法
  2. 《30天自制操作系统》笔记(09)——绘制窗口
  3. InteliJ IDEA + Genymotion搭建Android开发环境(win 7)
  4. tp5 CURL POST
  5. identifier of an instance of xxx was altered from 1 to 1
  6. 筋膜枪功能方案+PCBA
  7. linux系统下查看nginx配置文件路径
  8. (LeetCode刷题)Day03 无重复字符的最长子串
  9. PHP message:filesize(): stat failed for 错误
  10. Guitar Pro钜惠来袭,三折战双“11”