APT Android模块化开发

742 阅读2分钟

背景

APT代码字段重复定义检测工具已经写好了,这个时候我们需要集成到项目里面,如何引入? 可以方便后面的开发扩展.

解决方式

看下butterknife的解决方式.

1.butterknife模块化开发.

大致看了下butterknife的gradle文件,整理出来如下集成方式. 猜测butterknife是他的主要入口,runtime模块负责注入,annotations模块负责注解申明,compiler模块负责动态代码生成. 因为依赖传导关系4个module,我们只需要依赖2个.

dependencies {
  implementation 'com.jakewharton:butterknife:10.2.1'
  annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'
}

2.利用仓库发布

butterknifer代码发布到了 mavenCentral()

  repositories {
    mavenCentral()
    google()
   }

利用仓库发布,可以极大的提高迭代效率,减少事故. 这种在前端开发很常见,甚至在reactnative开发的时候,因为都把组件传到node_modules,于是诞生了node_modules黑洞的说法.

但是在目前所在的Android团队中,还没有普遍意识这样做,不清楚读者你的团队是否是这样. 如果害怕代码泄露,不想用jcenter,可以购买私有服务器,或者自己搭建仓库来解决.

3.设计我们的结构

因为我们比较简单,不需要外观也不需要注入,直接把这两个模块删掉,剩下两个模块.

4.利用bintray管理

利用novoda上传到https://bintray.com/
这里给我一个启发,novoda的简单配置+https://bintray.com/ 图形化界面管理,傻瓜式上传,很快就熟悉了. 但是公司提供的集成开发与发布环境用起来很麻烦,是否是因为开发工具的落后导致大家不愿意使用公司的集成环境发布.

总结

  1. 模块化开发,借鉴优秀开源项目的思路,不仅看他的代码实现,也要借鉴其架构,代码风格.
  2. 组件化,中台化的第一步是在远端建一个库.