我在我的项目中有(java类的)包。哪些需要在某些需求下被删除。 我编译我的项目目标在Java中优化代码
高端
和
低端
需求约束
- 包裹需要在Highend那里,不应该在那里的低端。
- 我的代码库是相同的两个目标
为了实现这一目标requiment我想要的方式来定义
class myclass{
static final boolean isEnable = false;
public void API1(){
if(isEnabled){
//function logic
}
}
public boolean API2(){
if(isEnabled){
//function logic
//return value
}
else
return false;
}
}
虽然“静最后的”私有变量提供一个解决方案,以减少我的班级规模是isEnabled代码是错误的。编译器从编译的类中移除字节码。但是使用这个我认为它不会解决我的问题,它减少了低端目标的类大小但是函数持续返回一些默认值。 有没有更好的方法或设计模式解决了这个问题,就像现在的解决方案一样,我必须对包中所有类的所有API进行更改,尽管我必须删除所有完整的包。
这一要求涉及到java包中的Android,所以我把它放置在标签的Android
谷歌的功能切换Android上线一起,找到的东西[像这样](http://www.togglz.org/),这可以做到。注意:我不认可这个,这只是第一个结果。或者,也许你可以为highend api做一些“库”,并有两个版本 –
听起来就像你想要一个预处理器。也许看看[Java中的条件编译选项](https://stackoverflow.com/q/4526113)? – Siguza
我建议配置你的构建工具(gradle,maven,ant,...)来生成两个工件,比如'highend.jar'和'lowend.jar'。唯一的问题是你必须实施API1和API2两次,每个工件一次。 –