PinDemo
背景
以前写代码的时候,代码资源结构一般是这样的:
这种管理方式在开发小项目的时候问题也不大,关键是随着项目越来越大,代码量越来越多,才发现这种方式看着真是让人头大,而且管理上也不够灵活,不说别的,想想要删除一个页面相关的代码资源就知道了:要去 java 目录下一个个删除相关代码、去 res 目录下一个个删除相关布局、图片,代码/资源/图片量大的话还要一一去对比就很烦。
后来代码结构调整了一下:
这种方式很大程度解决了前面存在的问题,但是页面代码和资源分开,在管理上并不够友好。
页面代码粒度化管理
既然把页面代码和资源分开不好,那么把它们放在同一个目录下就好了呀!
这样的话要看一个页面包含的内容就清晰了很多,要删除一个页面的内容也方便了很多(直接删除这个页面对应的 pin 文件夹就行)。(ps:文件夹的名字为什么叫 pins 呢?因为在学习组件化的时候有看了这篇文章:微信Android模块化架构重构实践,里面有提到 pins 工程结构,只不过这里是把它应用到页面上,把每个页面作为一个整体进行管理)
多产品场景下的页面代码粒度化管理
多产品场景下,页面代码可能存在以下三种需求:产品通用、产品专用、个别产品共用,页面代码粒度化管理后,结合 sourceSets,可以很灵活的满足这三种需求:
最后附上一张合体配置图: