博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android Studio(十二):打包多个发布渠道的apk文件
阅读量:5969 次
发布时间:2019-06-19

本文共 1891 字,大约阅读时间需要 6 分钟。

Android Studio相关博客:

  以前把apk文件上传到应用市场,都是直接打个包,让运营那边的人员去负责去传,也没想过做啥应用的信息统计相关的东东,现在可不行了,小经理告诉我,我们的应用需要做些统计相关的东西,方便日后分析我们的应用还有哪些不足,好吧,既然有需求了,那就只有去做了。

  之前就已经知道友盟统计了,今天仔细看了下相关的文档,又在度娘上发现了几个使用Android Studio打包多个平台apk文件的方法,这下可好,正好满足我的需求,遂赶紧尝试研究了下。

  网上已经有些个方法,有复杂的,也有简单的,这里,我直接介绍简单的东西,省的迷惑大家了:

1. 首先配置清单文件:AndroidMainFest.xml

2. 在工程的build.gradle文件中配置

android {    signingConfigs {        designerassist {            keyAlias 'designerassist.keystore'            keyPassword 'otb2015'            storeFile file('E:/workspace/otb/designerhelper/designerassist.keystore')            storePassword 'otb2015'        }    }    compileSdkVersion 19    buildToolsVersion '22.0.1'    productFlavors {        wandoujia {}        baidu {}        c360 {}        uc {}        qq {}        xiaomi {}        meizu {}        c91 {}        huawei {}        lenovo {}        wangyi {}        yidong {}        mgyapp {}        anzhuoapk {}        tianyi {}        appchina {}        nduoa {}        umeng {}        productFlavors.all { flavor ->            flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]        }    }
说明: 

    其中name的值对相对应各个productFlavors的选项值,这样就达到自动替换渠道值的目的了。

这样生成apk时,选择相应的Flavors来生成指定渠道的包就可以了,而且生成的apk会自动帮你加上相应渠道的后缀,非常方便和直观。大家可以自己反编译验证。

    你只需要按照上面的配置写就好了,当然,是根据你的需要选择不同的平台。

打包:

 首先,你需要先配置下gradle环境:

在系统变量里添加两个环境变量:

1.1 变量名为:GRADLE_HOME,变量值就为gradle的根目录;
所以变量值为:C:\Users\ningshuai\.gradle\wrapper\dists\gradle-2.2.1-all\c64ydeuardnfqctvr1gm30w53
1.2 在系统变量里PATH里面添加gradle的bin目录
值为:C:\Users\ningshuai\.gradle\wrapper\dists\gradle-2.2.1-all\c64ydeuardnfqctvr1gm30w53\gradle-2.2.1\bin

  

  配置完变量后,便可以打包了,打开命令行,切换到你的项目目录下,你会发现自己的目录中有graldew.bat这个文件:

接下来,你就可以直接输入命令:gradle assembleRelease,就可以一次性生成所有的渠道包了:

所有生成的apk在项目的build\outputs\apk下:

如果只是想生成单个渠道的包呢?可以用命令行单独生成,比如:
gradle assembleWandoujiaRelease

当然,除此之外,你还可以直接通过Android studio导出相应平台的apk文件:

好了,so easy。接下来只需要把相应的包发布到不同的应用平台即可,这样,你可以通过友盟查看到相关渠道的下载安装情况了。

你可能感兴趣的文章
C#进行MapX二次开发之图层操作
查看>>
ASP.NET 运行机制详解
查看>>
C++ little errors , Big problem
查看>>
在 ML2 中配置 OVS vlan network - 每天5分钟玩转 OpenStack(136)
查看>>
Selenium2+python自动化34-获取百度输入联想词
查看>>
【★★★★★】提高PHP代码质量的36个技巧
查看>>
如何解决/home/oracle: is a directory报警
查看>>
python基础学习笔记(九)
查看>>
BaaS API 设计规范
查看>>
bootloader功能介绍/时钟初始化设置/串口工作原理/内存工作原理/NandFlash工作原理...
查看>>
iOS开发UI篇—Quartz2D使用(矩阵操作)
查看>>
C++ 构造函数与析构函数
查看>>
定时压缩log日志文件
查看>>
秋无痕 Windows XPSP3 集成安装增强版 V201306
查看>>
IT男成都租房记
查看>>
博为峰JavaEE技术文章 ——MyBatis Provider之@SelectProvider SQL方法
查看>>
Java核心API -- 9(异常)
查看>>
apache 编译报错:undefined reference to `apr_array_clear'
查看>>
图像识别DM8127开发攻略——UBOOT的移植说明
查看>>
ubuntu 下升级docker版本
查看>>