Android-Gradle(2)-productFlavor多风味打包

享学课堂诚邀作者:周周

转载请声明出处!

前言

手把手讲解系列文章,是我写给各位看官,也是写给我自己的。
文章可能过分详细,但是这是为了帮助到尽量多的人,毕竟工作5,6年,不能老吸血,也到了回馈开源的时候.
这个系列的文章:
1、用通俗易懂的讲解方式,讲解一门技术的实用价值
2、详细书写源码的追踪,源码截图,绘制类的结构图,尽量详细地解释原理的探索过程
3、提供Github 的 可运行的Demo工程,但是我所提供代码,更多是提供思路,抛砖引玉,请酌情cv
4、集合整理原理探索过程中的一些坑,或者demo的运行过程中的注意事项
5、用gif图,最直观地展示demo运行效果

如果觉得细节太细,直接跳过看结论即可。
本人能力有限,如若发现描述不当之处,欢迎留言批评指正。

学到老活到老,路漫漫其修远兮。与众君共勉 !

正文大纲

1. gradle是什么
2. groovy语言的特性以及它和java的关系
3. 为什么你的apk打包这么慢
4. 如何利用gradle编程解决工作中的实际问题
5. gradle的高级用法(gradle多渠道快速打包插件)

承接上文【Android Gradle(1) 概念及基础】https://www.jianshu.com/p/c36cd9aa2724

4. 如何利用gradle编程解决工作中的实际问题

前置知识

前面提到了,gradle可以编写代码逻辑。那么既然是可以自定义逻辑,那么我们在熟悉gradle编程规范之后,能把我们自己的逻辑,嵌入到 gradle的编译打包过程中去。

但是在此之前,有必要了解一下gradle的打包流程


上图中,把gradle的整体编译过程分为了3个阶段:
初始化=>配置=>执行
初始化:执行的是 setting.gradle文件
配置:执行的是 所有的build.gradle文件
执行: 到了这里,系统中就生成了一个有序状态图(taskGraph),系统按照这个taskGraph去执行所有的task,完成打包。
而上图中,还有3个 Hook 钩子,这意味着,我们可以通过gradle编程手段,自己定义3个hook,来干涉编译打包的过程,达成我们自己的目的。钩子同样也会进入到有序状态图(taskGraph),随着打包的过程一起执行。

这里涉及到一个task的概念,它是gradle中的一个重要概念,代表一个任务。
如何查看当前环境有哪些task可用?

两种方式,
图形化界面去查看,你可以直接双击某个task去执行:
命令行去查看:
gradlew tasks 回车

你也可以通过命令行去执行某个task,比如说:
我要 安装一个debug版本的apk到设备上:
gradlew installDebug 回车.
我们加入自己的逻辑,一般都会以task为单位去执行。

要编程,除了要了解语法之外,还需要了解 gradle的api架构层级关系,请到gradle的下载根目录,找到下面的目录:
C:\Users\adminstrator\.gradle\wrapper\dists\gradle-4.4-all\9br9xq1tocpiv8o6njlyu5op1\gradle-4.4\src\core-api\org\gradle\api
C:\Users\adminstrator\.gradle\wrapper\dists\gradle-5.1.1-all\97z1ksx6lirer3kbvdnh7jtjg\gradle-5.1.1\src\core-api\org\gradle\api
这里应该包含了我们gradle编程需要用到的所有类。

官方参考文档

除此之外,了解了代码框架之外,我们还需要知道 gradle里面一些配置应该参考的官方文档,这里给出:
http://google.github.io/android-gradle-dsl/current/

上主菜

推荐一种沟通发言说话面试的神级技巧STAR法则,按照 situation 情境 ,task 任务 ,action 行动,result 结果 的顺序来描述一件事,条理清楚,有理有据,说服力强

situation 情境

国内android大环境大家心里都有数,各大厂家各自为政,经常互掐,应用市场也是门派林立,各自有各自的要求。于是,老板要求,我们开发的app能够快速打出 对应的应用市场的apk,发布到对应的应用市场,并且,老板还想玩点骚操作,经常给app换点主题颜色什么的,今天红色, 下个月白色…虽然心里MMP,但是脸上还是要笑嘻嘻的去跟老板说“包在我身上”…

task 任务

上面的情境中,我们分析出老板的2个核心需求,app代码开发完毕之后,我们要在打包的时候设定特殊的参数,让app在不同的应用市场下的表现有所差异,达到该应用市场的要求。老板的骚操作ÿ

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值