手把手教你使用gradle mulchannel插件,进行多渠道打包
2016-01-04 19:29
736 查看
手把手教你使用gradle mulchannel插件,进行多渠道打包
开头声明:这个多渠道打包插件,是使用命令行来运行的。不依赖任何IDE的,你的开发环境是Eclipse还有Android Studio都是可以的。不需要APK的源代码,仅仅需要一个打包好的APK就可以。(一般是正式版本的并且已经签名和混淆的APK文件)。速度大约是:Rate = 10apk/20sec(300apk/10min)
开源地址:https://github.com/ihrthk/android-gradle-mulchannel-plugin
参考地址:http://tech.meituan.com/mt-apk-packaging.html
检查确认你的计算机是否安装gradle
1.按住Win+R键打开运行界面
2.点击确认,打开终端
3.在任意目录下输入gradle
4.查看输入的信息
如果能正确显示gradle的帮助信息,说明机器上已经安装了gradle。这时,你可以跳过安装Gradle,进行下一步。否则,你需要按照
安装Gradle一步一步操作,把Gradle安装到自己的计算机里。
注意:我这里显示的Gradle版本是2.7,要保证自己计算机安装的gradle是2.1以上才行。因为配置mulchannel插件的时候使用了plugins关键字,这个关键字是Gradle 2.1添加一种简单写法。代替了原来classpath和apply plguin两个关键字的用法。
安装Gradle
1.下载Gradle
打开gradle的官网gradle.org(由于现在正在从gradle.org,往gradle.com中迁移,以后官网会变成gradle.com,请大家注意)找到并点击右上角的Download,推荐大家下载Complete distribution。这里包括二进制执行文件,源码,还有文档。
也可以直接使用浏览器打开https://services.gradle.org/distributions/gradle-2.10-all.zip进行下载
2.解压zip文件
解压gradle-2.10-all.zip文件,可以看到这里有一个bin目录3.把bin目录添加到环境变量里
在我的桌面上的计算机,点击右键。点击高级设置
在点击环境变量
在系统变量里面找到Path并打开
最后在bin目录添加到环境变量,就OK了。
4.检查时候安装成功
打开cmd,在任意目录下。执行gradle,看一下是否可以显示gradle的帮助信息。配置脚本
1.新建一个build.gradle文件
找到那个要进行多渠道打包的APK文件,在其同级目录下建立一个build.gradle的文件。2.配置构建脚本
打开build.gradle文件,输入配置的脚本。[code]buildscript { repositories { mavenLocal() jcenter { url 'http://jcenter.bintray.com' } } } plugins { id "me.zhangls.mulchannel" version "0.0.2" }
3.配置mulchanne插件的参数
打开build.gradle文件,接着写[code]mulchannel { //APK文件的路径,相对路径 inputFile = file('lite-cmxj-debug.apk') //APK解压之后的目录,可选 tempDir = file('temp') //多渠道APK输出之后的路径 outputDir = file('out') //渠道号列表 channels = ["qihu360","baidu","yingyongbao","wandoujia","taobao","xiaomi","nearme","anzhuo","anzhi","meizu"] }
执行脚本
1.打开cmd
2.切换到和build.gradle及apk同一目录下
3.执行gradle mulchannel
如何获取渠道号呢?
[code] public static String getChannel(Context context) { ApplicationInfo appinfo = context.getApplicationInfo(); String sourceDir = appinfo.sourceDir; String ret = ""; ZipFile zipfile = null; try { zipfile = new ZipFile(sourceDir); Enumeration<?> entries = zipfile.entries(); while (entries.hasMoreElements()) { ZipEntry entry = ((ZipEntry) entries.nextElement()); String entryName = entry.getName(); if (entryName.startsWith("META-INF/mulchannel")) { ret = entryName; break; } } } catch (IOException e) { e.printStackTrace(); } finally { if (zipfile != null) { try { zipfile.close(); } catch (IOException e) { e.printStackTrace(); } } } String[] split = ret.split("_"); if (split != null && split.length >= 2) { return ret.substring(split[0].length() + 1); } else { return ""; } }
相关文章推荐
- POJ-1926 Pollution
- I/O流类库(二)
- jetty性能优化思路整理
- xtrabackup 2.3.3编译安装
- 1.4编程基础之逻辑表达式与条件分支
- XmlPullParserException: Unexpected token (position:TEXT @1:2 in java.io.StringReader)
- (实训第一天)讲一讲main函数返回值、参数argc、argv、并模仿登录功能
- IOS开发之----四舍五入问题
- MAC下使用终端和Xcode 7进行SVN服务器建立与使用
- ios开发之《版本控制》
- centos7 关闭SELINUX 防火墙
- 解释器模式
- 初学MFC
- phpcms V9 首页模板文件解析
- 课程设计--学生信息管理系统
- build.gradle_2.5
- win8如何获得管理员权限
- 利用霍纳规则,编写C语言程序对多项式进行求值
- 手机安全卫士第二天下
- Ubuntu 下安装 nfs