无名 发表于 2022-5-8 17:02:43

【LSP】Android组件化project


http://cdn.u1.huluxia.com/g4/M01/65/7B/rBAAdl91ScKAP_j8AACt4WdlvYs155.jpg
1、组件化需要一个控制文件管理各个项目的配置包括sdk版本、依赖包等等该文件应该位于project的根目录下http://cdn.u1.huluxia.com/g4/M01/65/7B/rBAAdl91ScOALiZ6AAHZGJlX-eg137.png
项目控制文件.png 2、project要使用控制文件,必须要build.gradle中将控制文件引入http://cdn.u1.huluxia.com/g4/M01/65/7B/rBAAdl91ScSAbJIkAAHSnG1mWAs098.png
引入控制文件.png3、各个模块的build.gradle引入1步创建的控制文件http://cdn.u1.huluxia.com/g4/M01/65/7B/rBAAdl91ScWAI2_IAAES7GMzvfI066.png
配置参数.pnghttp://cdn.u1.huluxia.com/g4/M01/65/7B/rBAAdl91ScaAZllXAAHkrMtD4Wc614.png
依赖包.png 4、动态切换app与library模式根据控制文件中的参数(该示例为isModule)可动态切换模式http://cdn.u1.huluxia.com/g4/M01/65/7B/rBAAdl91ScaAOBmSAAHrrfcj7cw225.png
动态切换.png5、分离AndroidMainfest文件 分离AndroidMainfest文件.pngdebug中的AndroidMainfest文件为常规配置,包含启动图标、文件等等 http://cdn.u1.huluxia.com/g4/M01/65/7B/rBAAdl91SceABqHGAAF1fc_Jakg416.png
debug.png模块根目录下的AndroidMainfest文件,不包含启动图标等等,只有基础四大组件声明[图片上传失败...(image-d9856f-1601520061781)]6、模块间资源命名冲突当组件为library时,组件间如果资源名相同会出现冲突,我们只需要保证资源文件不存在同名即可,并且尽量保证模块前缀统一。http://cdn.u1.huluxia.com/g4/M01/65/7B/rBAAdl91SciAQebuAAHklg2QKiA160.png
定义资源名.png 7、组件化与butterknife在使用组件化与butterknife时,会提示元素值必须是常量表达式,因为在主app中,这些id都是常量,但是在组件中,这些id就不是常量了。官方的解释是从ADT14开始Library中的R文件才从静态常量变为非常量.因为如果在多个Library中可能出现id冲突的问题.在ADT14以前则采用的是将所有的资源文件和相关的代码重新随着主项目一起编译,导致编译速度过慢.因此,从ADT14开始就变成了非常量的id了。
页: [1]
查看完整版本: 【LSP】Android组件化project