在库中转换一个Android项目以复制应用程序,只需很少的更改

在库中转换一个Android项目以复制应用程序,只需很少的更改,android,reusability,Android,Reusability,我有很多疑问,经过两天的搜索,我仍然没有找到我的问题的好答案 我有一个应用程序的项目已经在商店里,这个项目有很多活动、片段、服务、意图服务、布局和资源(图像、字符串、整数、颜色、样式、绘图、绘图等) 现在,我需要实现一个新的应用程序,它几乎是第一个应用程序的副本,我只需要更改背景、一些资源(但几乎99%保持不变),也许在一个或两个片段中,我需要更改一些代码(实现不同的逻辑语句) 我决定了,我认为在一个库项目中转换all项目是很自然的 我做到了: 1º创建一个名为framework并配置为libr

我有很多疑问,经过两天的搜索,我仍然没有找到我的问题的好答案

我有一个应用程序的项目已经在商店里,这个项目有很多活动、片段、服务、意图服务、布局和资源(图像、字符串、整数、颜色、样式、绘图、绘图等)

现在,我需要实现一个新的应用程序,它几乎是第一个应用程序的副本,我只需要更改背景、一些资源(但几乎99%保持不变),也许在一个或两个片段中,我需要更改一些代码(实现不同的逻辑语句)

我决定了,我认为在一个库项目中转换all项目是很自然的

我做到了:

1º创建一个名为framework并配置为library的新项目。将原始项目中的所有代码和资源(资产文件夹除外)复制到此处。 2º在原始项目中,我只保留清单、proguard文件。我更改manifest和proguard文件以引用新库的类

我测试了这个应用程序,看看它是否还在工作,是否正常。直到现在,我只做了分离

现在,问题来了。我需要为库创建一个可重用和标量的解决方案,允许我在不同的应用程序中使用它

在我最初的项目中,我创建了一个应用程序类的子类,用于全局变量

在没有其他想法的情况下,我决定: 1:在抽象类中转换MyApplication类。此外,我还使用一些方法创建了一个接口ApplicationInterface,如isBackgroundOverlayed()或getBackgroundResource(),我在片段中使用这些方法更改背景或原始定义的任何其他逻辑。 2º在应用程序的项目中,我创建了一个新的应用程序类,该类扩展了抽象类MyApplication并实现了接口ApplicationInterface,该接口在清单文件的应用程序标记中声明

结论:这一切都是可行的,我可以有两个应用程序的项目,具有不同的背景和其他图像,如徽标,甚至可以更改一些代码逻辑。例如,在原始应用程序中,当用户按下某个按钮时,应用程序将显示一个对话框选项。在新的应用程序中,当用户按下按钮时,它会执行一个片段(没有选择)

我的担忧:我不认为这是解决问题的最佳方案、最佳实践或良好的“模式”

你有什么想法吗

提前谢谢你


ps:如果我没有正确使用这个论坛,很抱歉。我在寻找答案,但没有找到任何答案。

我认为你已经实现了你想要的,但这是一个漫长而耗时的过程。我还要提到的一件事是,您不应该为不同的应用程序更改库项目

正如Android开发者指南上所说:

库项目包含可共享的Android源代码和资源,您可以在Android项目中引用这些资源。当您有想要重用的公共代码时,这非常有用

你可以从中读到更多

此外,您还必须找出哪个库正在执行哪些工作,以防忘记所做的更改

我建议您保留一个原始项目的单独副本,然后将它导入到Eclipse中的新工作空间中(通过将复制项目检查到当前工作空间,以便您有新的项目副本)并考虑更改其包名以获得新项目

您可以在此参考ans以了解如何更改包名`