我将开始在Android库上工作,该库将公开自定义视频播放器(围绕ExoPlayer的包装,以处理与我们的CMS,广告,分析等的集成)
一些基本的实现细节将根据播放器所运行的特定设备(Android Mobile与Android TV)进行更改。我计划有效地构建如下内容:
Main SDK
|- MobilePlayer SDK
|- TVPlayer SDK
|- CMS API SDK
但是,如果有人要使用此SDK构建移动应用程序,则他们只会使用“ MobilePlayer”和“ CMS API”。 “ TVPlayer”将是自重。
因此,我对某些有条件地仅链接和编译特定设备所需实现的方法感兴趣。如果有人要使用我的SDK来构建Android TV应用程序,我希望它链接TVPlayer而不是用未使用的MobilePlayer夸大该应用程序。同样,如果有人要使用我的SDK构建Android Mobile应用程序,我希望它链接MobilePlayer,而不是用未使用的TVPlayer夸大该应用程序。
这可能吗?是否需要创建两个单独的SDK(“ Main-TV”和“ Main-Mobile”)?是否存在仅用于导入我想要的实现的编译器指令,或者Java编译器是否支持某种形式的摇树?
请注意,我要寻找的实际上是Strategy Pattern,但在编译时而不是在运行时解决。