Android上如何实现app子组件的模块化结构?

2024-04-04

我的 Android 主应用程序将包含一个主程序,以及一些预安装的模块。
然后我想稍后提供不同的模块,最好作为单独的文件。模块如:位置、天气、议程。

你将如何实现这一目标?

我想将已安装/存在的模块保留在数据库中。因此,有时我必须将模块放入数据库中,也许是通过检测启动时是否存在。主应用程序将基于这些模块运行。

如何将这些模块构建为单独的文件?它们不会成为我的申请的切入点。所以它们一定不是导航菜单中的应用程序。

这可能吗?
我该如何使用 Eclipse 创建它?
我将以什么格式提供模块?
用户将如何添加/删除模块?


Android 允许您将应用程序松散地耦合在一起Intents and ContentProviders,所以应该可以实现您正在寻找的目标。困难的部分是预先规划一切,这样你就可以对功能进行逻辑划分(这样就可以轻松地将所有内容插入在一起)。

我想将已安装/存在的模块保留在数据库中。因此,有时我必须将模块放入数据库中,也许是通过检测启动时是否存在。主应用程序将基于这些模块运行。

您可以注册一个BroadcastReceiver for ACTION_PACKAGE_ADDED,每当安装新应用程序时就会触发。您的主应用程序应该能够使用它来确定何时安装附加模块。

我将以什么格式提供模块?

您可能仍希望将模块打包为 apk,以便将它们上传到市场。如果您希望它们不出现在启动器(应用程序抽屉)中,您可以随时删除默认的 并且应用程序将无法启动(但仍然可以删除)。

我该如何使用 Eclipse 创建它?

您的模块仍然是独立的应用程序。

用户将如何添加/删除模块?

从市场或直接从网络下载(如果您愿意)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android上如何实现app子组件的模块化结构? 的相关文章

随机推荐

  • Chrome 中意外的令牌默认值 ({}).default

    我收到错误 SyntaxError 意外的默认令牌 在 Chrome Opera 中的任何对象上获取或设置属性 默认 时 default 有人可以解释为什么会发生这种情况吗 upd 请大家注意 这对 FF 没有意义 因此在测试时您可能会错过
  • 选择未聚合的变量,功能上依赖于 GROUPing 变量

    背景 我正在一个非常受限的 T SQL 环境中工作 其中只能定义一个对象的 主体 VIEW 大概是 in CREATE VIEW My View AS 在引擎盖下 这是我的 VERSION https learn microsoft com
  • 如何获取多选框的所有选定值?

    我有一个
  • 从列表 PySpark 的列表中创建单行数据框

    我有一个这样的数据data 1 1 1 2 1 3 1 4 1 5 1 6 我想创建一个 PySpark 数据框 我已经使用了 dataframe SQLContext createDataFrame data features 但我总是得
  • 共享主机上的 403 禁止 Laravel

    我有一个共享主机 我正在尝试让我的 laravel 项目在其上运行 我正在使用 voyager 进行管理面板 我将我的应用程序公共文件夹放在 public html 中 并将项目的其余部分放在 public html 的同一级别上 所以它看
  • 从代理服务器后面调用 Web 服务

    我需要在将使用 Web 服务 XML SOAP 服务 的应用程序 C 中添加功能 现在 该应用程序可以 并且大部分 在具有代理服务器的企业环境中使用 我了解 SOAP 服务使用 HTTP 协议 因此应该使用端口 80 该端口通常保持打开状态
  • 如何在这个线性模型中强制删除截距或等效项?

    考虑下表 DB lt data frame Y rnorm 6 X1 c T T F T F F X2 c T F T F T T Y X1 X2 1 1 8376852 TRUE TRUE 2 2 1173739 TRUE FALSE 3
  • Laravel Model->save() 返回 false 但没有错误

    通常当我打电话时Model gt save 它成功地在数据库中创建了新记录 我正在尝试调试没有发生任何事情的情况Model gt save 返回假 我怎样才能知道发生了什么 user new User user gt fields exam
  • Confluence Schema 注册表持久化

    我希望即使服务器重新启动也能够保留具有固定 id 的模式 是否可以将架构保留在架构注册表中 以便在服务器崩溃后使它们具有相同的 id 否则 当模式注册服务器启动时 是否可以对具有固定 id 的模式进行硬编码 这就是模式注册的目的 模式有一个
  • Whatsapp消息自动回复方法

    我在play store上看到很少有应用程序支持WhatsApp的自动回复 我在网上搜索了方法 但我找到的只是这段代码 Uri uri Uri parse smsto 99 Intent i new Intent Intent ACTION
  • Jquery 延迟加载回调

    我目前正在使用Jquery 延迟加载 http www appelsiini net projects lazyload我想知道当我的容器中的所有图像结束加载时 当延迟加载发挥了所有魔力时 是否有一种方法可以进行回调 原因是我正在使用jSc
  • 如何将虚拟机组合到 Aurelia 验证渲染器中的视图中

    我正在尝试使用 aurelia validation 插件对表单执行验证 我正在创建一个自定义验证渲染器 它将更改输入框的颜色并在框旁边放置一个图标 单击或悬停该图标时 会出现一条弹出消息 其中显示实际的错误消息 目前 我正在渲染器中手动渲
  • 在 django 中处理动态 MultipleChoiceField

    到目前为止我看到的所有答案都让我感到困惑 我制作了一个根据传入的参数以及数据库中存储的问题动态构建的表单 这一切都工作正常 注意 它不是一个 ModelForm 只是一个 Form 现在我正在尝试保存用户的响应 我如何迭代他们提交的数据以便
  • SwiftUI:仅在 iOS 14+ 上使用“accessibilityIdentifier”

    给出以下代码 struct CopyButtonStyle ButtonStyle init func makeBody configuration Configuration gt some View let copyIconSize C
  • SQL 比较每小时总订单并删除当前库存可能吗?

    不确定是否可以单独使用 sql 来完成此操作 但我宁愿询问然后向流程添加另一个步骤 比如说我有一组虚拟订单 Supplier Destination Req Time Prd Code Prd Description Qty A B 01
  • 什么是日志记录?如何使用 Apache Commons 日志记录?

    Web 应用程序服务器希望记录哪些信息 为什么 据我了解 org apache commons logging Log 是一个抽象了其他Logging类提供的功能的接口 这同样适用于接口LogFactory 我试图理解的代码有 Log au
  • jQuery Mobile:页面事件触发的顺序是什么?

    我必须快速构建应用程序的原型 并且我想确切地知道在哪里插入各种应用程序逻辑 您能否迭代使用 PhoneGap 和 jQueryMobile 时的事件及其触发顺序 如果能够清楚地了解以下事件 顺序 那就太好了 A 当您第一次打开应用程序时 B
  • 在 gradle-node-plugin 中配置 nodeModulesDir

    我尝试设置 npm 包的缓存 这是我的插件配置 node version 4 5 0 npmVersion 3 10 6 distBaseUrl https nodejs org dist download true workDir fil
  • 如何对 MySQL 中的 UNION 查询中的多个字段求和?

    我目前正在学习如何使用MySQL在查询中我陷入了两难的境地 目前 我有 2 个查询从多个表中获取数据 两个查询都包含相同数量的列字段和字段名称 为简单起见 查询的输出如下所示 查询一 FieldOne FieldTwo FieldThree
  • Android上如何实现app子组件的模块化结构?

    我的 Android 主应用程序将包含一个主程序 以及一些预安装的模块 然后我想稍后提供不同的模块 最好作为单独的文件 模块如 位置 天气 议程 你将如何实现这一目标 我想将已安装 存在的模块保留在数据库中 因此 有时我必须将模块放入数据库