【问题标题】:Can android apps be extended by third parties?第三方可以扩展安卓应用吗?
【发布时间】:2015-07-17 21:44:15
【问题描述】:

我想知道我的 android 应用是否可以由第三方扩展不必为每个扩展修改基本应用,就像 eclipse 所做的那样及其插件。

基本应用程序将非常简单,某种本地数据管理器(CRUD 操作)。例如,给定的插件可以在其他活动/片段中对所述数据执行操作(例如,不同的显示方式)。

通过一些研究,我发现如果我要同时开发基础应用程序和插件,我可以通过创建用户无法直接访问的新 apk(主/启动器)和从基础应用程序查询设备上是否安装了给定的插件,如果是,则在 UX 上显示其他选项。我可以使用它,但我想知道是否没有其他选项允许第三方扩展。

搜索“扩展点”似乎不会产生 android 结果。也许不可能?

【问题讨论】:

    标签: android plugins


    【解决方案1】:

    例如,给定插件可以在其他活动/片段中对所述数据执行操作(例如,不同的显示方式)。

    第 1 步:将所述数据公开给第三方应用,例如通过ContentProvider

    现在,您已经完成了,除了“在 UX 上显示其他选项”部分。为此:

    第 2 步:记录第三方应用在他们希望从您的应用启动的任何 Activity 上应具有的 <intent-filter>。这可能涉及自定义操作和/或类别和/或 MIME 类型。

    第 3 步:当您需要“在 UX 上显示其他选项”(我将其解释为某种列表或菜单)时,在 PackageManager 上使用 queryIntentActivities() 以查找所有实现了 @987654325 的活动@ 您在步骤 #2 中记录的内容,并将它们包含在该列表中。

    【讨论】:

      【解决方案2】:

      对于您的特定场景,只需从基础应用程序存储和检索数据,您可以使用与联系人应用程序相同的方法,即使用内容提供程序。

      您可以在此处阅读有关内容提供程序以及如何实现它们的更多信息:Content Providers | Android Developers

      如果您正在考虑扩展已安装的应用程序,则必须预定义一组动态类来呈现数据,以及一组规则和插件的语言/界面以扩展您的您自己的应用程序中的应用程序功能。

      您还可以考虑在运行时将外部 .jar 文件加载到您的应用程序中。 It looks like others have been successful before

      【讨论】:

        猜你喜欢
        • 2017-12-21
        • 2011-06-23
        • 1970-01-01
        • 2013-11-01
        • 1970-01-01
        • 2011-03-19
        • 1970-01-01
        • 1970-01-01
        • 2011-02-15
        相关资源
        最近更新 更多