【问题标题】:How to develop an app that has add-ons?如何开发具有附加组件的应用程序?
【发布时间】:2016-05-27 01:24:49
【问题描述】:

是否有关于如何开发具有“附加组件”的应用程序的大纲或入门指南?

例如,如何开发某种框架来为应用添加“主题”?

有 2 个主题的基本应用程序。用户应该能够为某个主题下载另一个应用程序。

原来的应用程序和新下载的应用程序是如何联系在一起的?

您将如何开发原始应用程序以从仅第二个主题的应用程序中获取主题信息和图形资源?

我的理解是应用程序是完全独立的,所以这就是为什么我不清楚如何实现这一点。

【问题讨论】:

    标签: android


    【解决方案1】:

    原来的应用程序和新下载的应用程序是如何联系在一起的?

    对于一个主题,谁说他们必须一起讨论?

    您将如何开发原始应用以从仅第二个主题的应用中获取主题信息和图形资源?

    第 1 步:为您的包选择一个命名约定。例如,如果您的基础应用程序是 com.abc.app,那么您的主题可能是 com.abc.app.theme.*

    第 2 步:当用户选择主题时,请使用 PackageManagergetInstalledApplications() 通过检查主题包名称来查找主题。

    第 3 步:当需要使用主题时,请在 PackageManager 上致电 getResourcesForApplication() 以获取主题应用程序的 Resources,这样您就可以开始使用了。

    我确信有一些策略(例如,主题主要是一个传送带,将其内容部署在外部存储上的目录中,您的主应用程序从中读取信息),但这是我要开始的一个,因为它应该需要最少的用户干预。

    【讨论】:

    • 关于:“PackageManager 上的 getResourcesForApplication() 以获取主题应用程序的资源”...您可以对自己以外的应用程序执行此操作吗?是否需要实施某种安全功能以确保只有我的应用程序可以访问这些资源,而其他 3rd 方应用程序无法访问?这将是我认为开始时需要的缺失部分。
    • @CamilleSévigny:“您可以对自己以外的应用程序执行此操作吗?” - 是的。 “我是否需要实施某种安全功能来确保只有我的应用程序可以访问这些资源,而其他 3rd 方应用程序不能访问这些资源?” -- 所有应用的所有资源都可以被所有应用读取,不管你喜欢与否。
    • “所有应用程序的所有资源都可以被所有应用程序读取,无论你喜欢与否。”...不开玩笑。我不知道。感谢您的回复。
    • @CamilleSévigny:是的,当我第一次意识到这一点时,这让我大吃一惊。
    • 我已经对此进行了测试(创建一个包含资源图像等的包),然后从主应用程序中读取包资源。这很好用! :)
    【解决方案2】:

    我认为在这种情况下,最简洁的设计是在 Market 中拥有一个应用程序,并在您自己的服务器上提供可用的主题。然后用户只需从 Market 下载应用程序一次,然后应用您服务器上可用的主题。

    但是,如果您希望将它们作为单独的市场条目,您可以在清单上设置 android:sharedUserId 标志,使它们都在相同的用户 ID 下运行,这将允许您共享文件(位图等) 它们之间。请记住,它们都必须使用相同的证书进行签名。

    用户可能会感到困惑的是,他们可以在下载主应用程序之前下载插件......在这种情况下,您必须显示一条错误消息,要求他们下载主应用程序。

    【讨论】:

    • 我同意“在您自己的服务器上提供可用的主题”方法——我假设 OP 出于某种原因考虑并驳回了这一点。但是,sharedUserId 存在风险,因为它的任何更改都意味着您的应用无法再读取自己的文件。
    • sharedUserId 是否也可以用于制作一个“完整”版本的应用程序,该应用程序只是作为主应用程序的键,以启用功能?
    • 没有“服务器”哈哈。我同意从外部来源下载会很好,但这不是一个选择。我正在尝试模拟市场上您看到“Theme XXX For App YYY”的其他应用程序。这些不是完整的应用程序,而是它们的附加组件。
    • SharedUserID 选项看起来不错。我会尽快研究并接受答案。
    猜你喜欢
    • 2012-06-05
    • 1970-01-01
    • 1970-01-01
    • 2012-07-25
    • 1970-01-01
    • 2011-01-03
    • 2011-06-12
    • 1970-01-01
    相关资源
    最近更新 更多