您的位置:首页 > 其它

手把手教你使用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 "";
    }
  }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: