重构

时间:2016-06-27 23:37:56

标签: java android android-studio

我正在构建一个android java(jar)库,该库使用多个具有相同包名的java项目。

我的结构如下所示,

Project A
com.mypackage
  //contains all Package Private Classes

Project B
com.mypackage
  //contains all Package Private Classes + Few Public Classes

Project C
com.mypackage
 //contains all Package Private Classes + Few Public Classes

Project D
// ant script to generate different flavors of Jars( A & B,  A & B & C)

//考虑项目A包含我不想公开的所有隐藏类

我正在将此库移动到Android Gradle构建,遗憾的是:(不支持具有相同软件包名称的子项目。

我不想将所有这些组合成单个包。即使我合并到一个Android Studio项目中,我也希望将它们分开放在不同的包中。

如果我在项目A中更改包名称,我需要将项目A中的包私有类转换为公共,以便它们可以在项目B&项目C但也可以向公众开放。

以下是解决方案,我想到了,

  1. 为所有包私有类创建接口,并在所有引用的类中使用接口引用(巨大的重构,我会更快地老化)。接口将是公共的,但它们不包含实现。

  2. 对公共类使用android @hide注释,不确定这是否适用于包间引用

  3. 我真的很感激任何建议, 谢谢,

0 个答案:

没有答案