手把手教你使用gradle mulchannel插件,进行多渠道打包

Posted ihrthk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了手把手教你使用gradle mulchannel插件,进行多渠道打包相关的知识,希望对你有一定的参考价值。

手把手教你使用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文件,输入配置的脚本。

buildscript 
  repositories 
    mavenLocal()
    jcenter 
        url 'http://jcenter.bintray.com'
    
  

plugins 
  id "me.zhangls.mulchannel" version "0.0.2"

3.配置mulchanne插件的参数

打开build.gradle文件,接着写

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

如何获取渠道号呢?

  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 "";
    
  

以上是关于手把手教你使用gradle mulchannel插件,进行多渠道打包的主要内容,如果未能解决你的问题,请参考以下文章

手把手教你spring源码搭建

Android探索之旅(第二十八篇)手把手一步步教你集成阿里热修复SopHix

手把手教你手写一个最简单的 Spring Boot Starter

HarmonyOS - 手把手教你搭建Artifactory

手把手教你生成正式签名的APK文件

如何设置电信光猫?图解手把手教你(超级详细)