我有很多疑问,经过两天的搜索,我仍然没有找到解决问题的好方法。
我有一个应用程序的项目已经在商店中,这个项目有很多活动,碎片,服务,IntentServices,布局和资源(图像,字符串,整数,颜色,样式,原始,drawables等。 )。
现在,我需要实现一个新的应用程序几乎是第一个应用程序的副本,我只需要更改背景,一些资源(但几乎99%保持不变),也许在一个或两个片段中我将需要更改一些代码(实现不同的逻辑语句)。
我决定并且我认为在图书馆项目中转换所有项目是很自然的。
我做了:
1º创建一个名为framework的新项目并配置为库。将原始项目中的所有代码和资源(资产文件夹除外)复制到此处。 2º在原始项目中,我只保留manifest,proguard文件。我更改了manifest和proguard文件以引用新库的类。
我测试了应用程序,看看它是否仍在运行,而且还可以。直到现在我才进行了分离。
现在,出现了问题。我需要创建一个可重用的解决方案,并为该库提供标量,允许我在不同的应用程序中使用它。
在我的原始项目中,我创建了一个Application类的子类,用于全局变量。
没有任何其他想法,我决定如下: 1º在抽象类中转换MyApplication类。此外,我创建了一个接口ApplicationInterface,其中包含一些方法,如isBackgroundOverlayed()或getBackgroundResource(),我在片段中使用它来更改背景或最初定义的任何其他逻辑。 2º在App的项目中,我创建了一个新的Application类,它扩展了抽象类MyApplication并实现了ApplicationInterface接口,并在清单文件的Application标签中声明。
结论:这一切都有效,我能够有两个应用程序的项目,具有不同的背景和其他图像,如徽标甚至更改一些代码逻辑。一个例子是在原始App中当用户按下某个按钮时,App会显示一个对话框选项。在新应用中,当用户按下按钮时,它会执行一个片段(无选择)。
我的担忧:我认为这不是问题或最佳做法或良好“模式”的最佳解决方案。
你有什么想法吗?
提前谢谢!
ps:对不起,如果我没有正确使用这个论坛。我寻找答案,但我没有找到答案。
答案 0 :(得分:1)