Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android上将较小的应用程序集成到较大的应用程序中_Android_Design Patterns_Plugins_Architecture_Integration - Fatal编程技术网

在android上将较小的应用程序集成到较大的应用程序中

在android上将较小的应用程序集成到较大的应用程序中,android,design-patterns,plugins,architecture,integration,Android,Design Patterns,Plugins,Architecture,Integration,如果要求如下,将较小的android应用程序纳入较大的应用程序的正确方式是什么: 小应用程序应该是松散耦合的,应该单独开发 更大的应用程序应该处理一些常见的事情,而不是每个小应用程序自己做 更大的应用程序现在应该了解一些小应用程序的状态,以便做出一些决定 我想到的第一件事是某种插件模式(虽然我对它不太了解,所以我可能会说错),这样每个小应用程序都应该实现一些通用接口,而大应用程序在处理组件时应该使用该接口 这是正确的方法吗 将android作为一个平台,这种想法正确吗 最好的办法是让每个子应用程

如果要求如下,将较小的android应用程序纳入较大的应用程序的正确方式是什么:

  • 小应用程序应该是松散耦合的,应该单独开发
  • 更大的应用程序应该处理一些常见的事情,而不是每个小应用程序自己做
  • 更大的应用程序现在应该了解一些小应用程序的状态,以便做出一些决定 我想到的第一件事是某种插件模式(虽然我对它不太了解,所以我可能会说错),这样每个小应用程序都应该实现一些通用接口,而大应用程序在处理组件时应该使用该接口

    这是正确的方法吗


    将android作为一个平台,这种想法正确吗

    最好的办法是让每个子应用程序都成为一个“库”。在Eclipse中创建一个工作区,创建一个新的Android项目,并将其标记为库

    您可以为每个子应用程序执行此操作

    然后,您将拥有一个非库应用程序,该应用程序导入每个库,并将每个库用作完整应用程序的一部分

    这意味着您无需担心编写插件接口等问题

    此外,如果您遵循这种模式,当您创建免费与付费应用程序时,您可以添加另一个应用程序,删除/更改所有需要的功能,并从相同的代码库编译这两个应用程序

    更新

    请看一些像样的文档

    这显示了如何创建这两种类型的项目,以及如何在清单中引用它们,这是令人讨厌的部分

    更新2

    从注释中询问您是否可以在导入库的主应用程序中使用库活动

    您可以在库中创建活动

    com.example.myapp.library.MyActivity

    然后将详细信息添加到清单中

    那么让我们在那里使用它。如果需要,您甚至可以将库活动用作主要的启动活动

    您还可以通过将清单更改为来扩展库活动

    然后创建一个新的活动

    MyNewActivity类扩展了com.example.myapp.library.MyActivity

    然后,只需覆盖您想要的内容,如果需要,调用super访问您的库方法,等等


    请随意提问。

    谢谢Kirk,如果库项目包含用户界面元素(如活动),我可以创建库项目吗?我主要关心的是如何处理由其他开发者开发和维护的当前应用程序,以及未来的应用程序?你当然可以。我将尝试更新一点答案,但您在主应用程序清单中引用它们并使用它们