首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android10_Launcher3根目录下build.gradle文件讲解

小伙伴们,大家好。上篇文章中,我已经介绍了Android10_Launcher3源码的下载和编译,今天我们来分析一下根目录下的build.gradle文件,我会选择这个文件中关键的部分,一一讲解,理解了这个文件,我们就能对整个Launcher3工程有一个全面的了解,为后续的源码分析,扫清障碍。

1.这一行是定义了一个变量,变量值是当前工程的根目录

2.看下边的截图,第一行,我们都知道,表示这个

module是一个Android application;那么

下边这一行,是什么意思呢,这一行表示,引用google的

protobuf插件,关于这个插件的介绍,给你附上官网的链接

https://developers.google.com/protocol-buffers

简单说,Protobuf是google推出的数据交换格式,相比xml、

json主要优势在传输数据量更小、解析更快,而且跨平台。

3.看下边的截图,第一行定义了app和recents两种flavor,

然后,在下边的productFlavors内部,有好多个用大括号

括起来的子节点,仔细看子节点的内部,都有一个属性

dimension,属性值就是第一行定义的那2货。不同

dimension的子节点,两两组合,就能形成2种编译类型了:

aospWithoutQuickStep 和 l3goWithoutQuickStep。

所以,明白了吧,这一段的功能,就是为了实现将代码编译成

不同的类型,那些分渠道打包,也是这样实现的。

4.去除了release编译类型,WithQuickstepIconRecents

只对l3go有效

5.指定了所有编译类型共有的源码和资源目录,也

指定了proto文件所在的目录,并且debug版本会

合并'AndroidManifest-common.xml' 和

"AndroidManifest.xml"

6.指定了aosp和l3go两种编译类型,对应的差异目录

7.指定了protobuf文件编译生成的java package。

最终生成的java文件,所在的目录如下

这里顺便提一下,上篇文章中,讲到编译过程中

有个异常

其实就是potobuf版本自身存在的bug,只需要将

gradle.properties中的

protobuf-gradle-plugin:0.8.7

改成

protobuf-gradle-plugin:0.8.8

以后编译就不会报这个异常了。

到此,我们把整个build.gradle文件讲解完了。

build.gradle文件是整个工程的灵魂,理解了它,我们

就对整个Launcher3的工程目录有了大致的了解,对它

编译过程中做了些什么,也都清楚了。下一篇文章,我

将来捋一捋Launcher3的启动过程。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200302A0A8V800?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券