马上:Android pins 模块化架构

马上:Android pins 模块化架构

主工程的代码堆积,造成包目录结构臃肿,难区分。借用pins工程结构暂时,其相互独立的代码进行区分,为后期模块组件化,留下了灵活性。

pins ,原理是gradle sourceSets ,

sourceSets {
  main {
            def dirs = ['p_vpos',//vpos
                        'p_vbook',//v图
                        'p_vbook_door', //v图桌面机+门禁
                        'p_vlocker',//v柜
                        'p_thirdPart',//第三方库
                        'p_serialBus',//串口库
                        'p_commonPart',//公用库
                        'p_samplePart',//样例demo
            ]
            dirs.each { dir ->
                def projectName = project.getName()
                def javaSrcDir = "src/$dir/main/java"
                def resDir = "src/$dir/main/res"
                def javaFiles = new File(projectName, javaSrcDir)
                def resDirFiles = new File(projectName, resDir)
                println("include pins project ${javaFiles.getAbsolutePath()} ")
                if (!javaFiles.exists()) {
                    javaFiles.mkdirs()
                }

                if (!resDirFiles.exists()) {
                    resDirFiles.mkdirs()
                }
                java.srcDir(javaSrcDir)
                res.srcDir(resDir)
            }
        }
}

目录结构清新

src
main
p_commonPart
p_samplePart
p_serialBus
p_thirdPart
p_vbook
p_vbook_door
p_vlocker
p_vpos

对于,代码隔离性,可以参考微信的api, 或者一些插件MicroModule等实现。个人觉得要是模块与主工程关系不强,就是应该独立一个模块

参考网站

微信Android模块化架构重构实践

你可能感兴趣的:(Android,马上,android,架构,gradle)