【问题标题】:What is the right way to insert an activity in another project?在另一个项目中插入活动的正确方法是什么?
【发布时间】:2016-07-18 02:57:57
【问题描述】:
我有一个 Android Studio 项目
其中包含一个登录活动以及相关的style、manifest、IntentService 和其他内容。
我想在许多其他应用程序中插入这个小项目,最好的方法是什么?
模块是正确的方式吗?
最终目标仍然是易于维护,例如如果有一天服务器应该更改 URL,我将不必在任何使用此登录活动的应用程序中进行更改 :-)
【问题讨论】:
标签:
android
android-studio
android-activity
【解决方案1】:
您需要将这些组件提取到单独的module:
模块是一个独立的功能单元,您可以对其进行编译,
独立运行、测试和调试。
模块包含其特定任务所需的一切:
源代码、构建脚本、单元测试、部署描述符和
文档。但是,模块存在并且仅在
项目的上下文。
然后,include that module 在所有使用它的项目中。
其实你可以在自己的独立"library" project中创建模块。 add it as a dependency 用于所有使用它的项目。
更进一步,您可以将开源库项目的输出发布为.aar 或.jar 在 maven Central、jcenter 和其他公共存储库上。然后其他人也可以使用您的模块。
创建 android 库项目时要记住的一些要点:
库的资源(字符串、布局、xml、图像)将在构建时与最终项目的资源合并。您模块的 R 类仍将保留在您模块的包名称下。
库清单文件中的某些属性可能会合并到最终项目的属性中(例如 <application> 的属性)。所以,一个库模块应该有一个最小的清单文件,最多有包名。
您可以在库模块中包含示例应用程序项目,但不要使用库重新分发示例应用程序项目。这会给使用您的库构建应用程序的人带来麻烦。
【解决方案2】:
我认为你需要做的是先导出你的原始项目:
文件>>导出
然后转到您的新项目并导入原始项目。
不要忘记修改 setContentView() 方法以指向您的原始活动(您导入的活动)
最后不要忘记你的意图方法!
如果您有任何问题,请告诉我,我会为您创建详细的答案,但我认为您会没事的!