android画布demo,PinDemo

本文探讨了代码资源管理的问题,从传统的分目录管理到页面粒度化管理的转变。通过将页面代码和资源放在同一目录下,提高了管理和删除的便利性。同时,针对多产品场景,结合sourceSets实现灵活的页面代码复用和隔离,满足通用、专用和共享需求。这种结构优化有助于提升开发效率和代码维护性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PinDemo

背景

以前写代码的时候,代码资源结构一般是这样的:

a79532917768c7b706c51c100d2cdaa0.png

这种管理方式在开发小项目的时候问题也不大,关键是随着项目越来越大,代码量越来越多,才发现这种方式看着真是让人头大,而且管理上也不够灵活,不说别的,想想要删除一个页面相关的代码资源就知道了:要去 java 目录下一个个删除相关代码、去 res 目录下一个个删除相关布局、图片,代码/资源/图片量大的话还要一一去对比就很烦。

后来代码结构调整了一下:

f64ad0165b26711f64f5d7e3b32f1648.png

这种方式很大程度解决了前面存在的问题,但是页面代码和资源分开,在管理上并不够友好。

页面代码粒度化管理

既然把页面代码和资源分开不好,那么把它们放在同一个目录下就好了呀!

c2b01e28861485d313f1ddb3cfd4bb49.png

这样的话要看一个页面包含的内容就清晰了很多,要删除一个页面的内容也方便了很多(直接删除这个页面对应的 pin 文件夹就行)。(ps:文件夹的名字为什么叫 pins 呢?因为在学习组件化的时候有看了这篇文章:微信Android模块化架构重构实践,里面有提到 pins 工程结构,只不过这里是把它应用到页面上,把每个页面作为一个整体进行管理)

多产品场景下的页面代码粒度化管理

多产品场景下,页面代码可能存在以下三种需求:产品通用、产品专用、个别产品共用,页面代码粒度化管理后,结合 sourceSets,可以很灵活的满足这三种需求:

45fd9e8b311951ce3af69ef77849ae48.png

afe9e1b879d734ddeb92f827fefe1f3e.png

bf27cfea8f32e74735e78d9f41b19b93.png

最后附上一张合体配置图:

2aca73c1c0a108762d0adb40b5a1ea00.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值