Java 允许在其他应用程序中嵌入我的Android视图

Java 允许在其他应用程序中嵌入我的Android视图,java,android,Java,Android,在基于web的开发和基于Windows的开发中,可以开发其他应用程序可以无缝嵌入到自己UI中的小程序或组件。我有一个组件(源于视图),它可以制作一些实时动画,我希望其他应用能够嵌入到它们自己的视图或活动中。是否可以允许其他应用程序将此组件嵌入其中,以便在更新我的应用程序时,其他应用程序将自动在其嵌入的组件中显示更新的行为 如果这是可能的,我很难弄清楚用来查找如何做到这一点的搜索词。一个应用程序如何嵌入另一个应用程序的视图,如果没有安装另一个应用程序,会发生什么情况?您可以将当前项目设置为库项目。

在基于web的开发和基于Windows的开发中,可以开发其他应用程序可以无缝嵌入到自己UI中的小程序或组件。我有一个组件(源于
视图
),它可以制作一些实时动画,我希望其他应用能够嵌入到它们自己的视图或活动中。是否可以允许其他应用程序将此组件嵌入其中,以便在更新我的应用程序时,其他应用程序将自动在其嵌入的组件中显示更新的行为


如果这是可能的,我很难弄清楚用来查找如何做到这一点的搜索词。一个应用程序如何嵌入另一个应用程序的视图,如果没有安装另一个应用程序,会发生什么情况?

您可以将当前项目设置为库项目。使用自定义
视图将库项目添加到所需的项目中。您的自定义
视图将可在该项目中访问


通过转到project Properties>Android并选中相应的复选框,可以将项目标记为库项目。

您可以将当前项目设置为库项目。使用自定义
视图将库项目添加到所需的项目中。您的自定义
视图将可在该项目中访问


通过转到project Properties>Android并选中相应的复选框,您可以将项目标记为库项目。

您不能直接允许以iframe的方式进行嵌入

但是,您可以将视图设置为其他开发人员可以在其应用程序中包含的库项目,就像他们包含其他公司的SDK一样。要允许自动更新,您需要在安装应用程序的同时安装应用程序,并且在制作库项目时,您必须制作一个广播接收器,该接收器可以对您从应用程序发送的广播做出反应,以更新其他应用程序中的视图


然后,您的SDK可以接收这些广播,并相应地更新您的视图。

您不能直接允许以iframe的方式进行嵌入

但是,您可以将视图设置为其他开发人员可以在其应用程序中包含的库项目,就像他们包含其他公司的SDK一样。要允许自动更新,您需要在安装应用程序的同时安装应用程序,并且在制作库项目时,您必须制作一个广播接收器,该接收器可以对您从应用程序发送的广播做出反应,以更新其他应用程序中的视图


然后,您的SDK可以接收这些广播,并相应地更新您的视图。

您可以为您的应用程序创建一个应用程序小部件,并且该小部件可以被任何充当小部件主机的应用程序使用(很少有人这样做),但至少您可以在主屏幕上使用它。我想知道为什么不做更多的工作——这将是许多应用程序的杀手级功能


提供更多信息。

您可以为您的应用程序创建一个应用程序小部件,并且该小部件可以被任何充当小部件主机的应用程序使用(很少有人这样做),但至少您可以在主屏幕上使用它。我想知道为什么不做更多的工作——这将是许多应用程序的杀手级功能


提供更多信息。

不,您唯一的选择是在库项目中制作组件。然后,其他开发人员可以在创建自己的应用程序时引用您的库项目。这将允许他们使用您的视图,但它无法神奇地自我更新,如果他们想使用更新的功能/行为,他们可以更新您的库项目。虽然这不会解决您的特定问题,但可以通过发布
RemoteView
,发布可以嵌入其他应用程序中的UI,与应用程序小部件、富通知等的操作相同。此目录有一对示例应用程序演示了这一点:但是,
remoteview
不适用于自定义
View
类,仅适用于库存类(实际上仅适用于其中的一个子集)。不,您唯一的选择是在库项目中创建组件。然后,其他开发人员可以在创建自己的应用程序时引用您的库项目。这将允许他们使用您的视图,但它无法神奇地自我更新,如果他们想使用更新的功能/行为,他们可以更新您的库项目。虽然这不会解决您的特定问题,但可以通过发布
RemoteView
,发布可以嵌入其他应用程序中的UI,与应用程序小部件、富通知等的操作相同。此目录中有一对示例应用程序演示了这一点:但是,
remoteview
不适用于自定义
View
类,仅适用于库存类(实际上仅适用于其中的一个子集)。这在实践中是否已经实现过?有这样做的应用程序的例子吗?通知其他应用程序更新?收到通知的应用程序是否需要重新编译,或者是否有某种方式可以自动下载更新的封装组件?@BlueMonkMN我迄今为止从未见过这样做,但理论上应该是可行的。但是,如果您更新视图组件的源代码,您的第三方用户将不得不使用更新的库项目重新编译其应用程序。如果应用程序在收到更新通知时需要重新编译,我看不到作为广播接收者的目的。这不是可以自动完成的事情,但要记住这是一个有趣的提示,它可能会以某种方式发挥作用。@BlueMonkMN如果视图的内容发生了更改,则无需重新编译。在这种情况下,您可以使用BroadcastReceiver传递视图绘制所基于的新数据,接收应用程序可以获取新数据并重新绘制视图。如果更改视图用于绘制其内容的代码,则只需重新编译;现在我想起来了,如果我想