“附加组件”如何为本机应用程序工作?

时间:2012-08-25 12:01:12

标签: java android iphone windows-phone-7 deployment

我正在使用GWT和PhoneGap为Android,iPhone / iPad和Windows Phone设计应用程序。 GWT将允许我用Java编写整个应用程序(我的强项,不像JavaScript或CSS),并将其转换为跨浏览器的JavaScript / AJAX。然后,PhoneGap将包装生成的JavaScript并将其转换为上述三个平台中的每一个的本机应用程序。

我希望有一个“面向插件的架构”,用户可以选择购买(或通过其他方式获得资格)“附加组件”(插件/扩展),这将增强应用程序的功能。

通常我会使用Java Simple Plugin Framework (JSPF)来完成此操作,并允许用户在付费时下载插件JAR。然后将这些插件JAR添加到主应用程序的类路径中,以便下次启动并扫描类路径中的插件时,它会找到并加载它们。

原生应用是否可以实现?我不相信我可以将除APK,IPA和XAP(分别为Android,iPhone和WinPhone)以外的任何文件部署到这些市场。

在Java-land中,这就像必须以可执行JAR(包含其自己的main方法)的形式下载“基础”应用程序,然后必须下载“插件”应用程序,也是一个可执行的JAR,并以某种方式使两者表现得像一个普通的插件架构(如果你有1个可执行的JAR基础应用程序,然后是1个插件不可执行的JAR库)。

所以我问:从部署/下载的角度来看,加载项如何为本机应用程序工作?如何在客户端获得2个或更多APK / IPA / XAP进行通信?如果不可能,本机应用程序开发人员如何处理附加组件(我知道它们存在,我已经看过它们了!)?提前谢谢!

2 个答案:

答案 0 :(得分:0)

至于iPhone - 唯一的方法是实施其他功能并禁用它们,直到用户在应用中购买以解锁该功能。

在Android中,您可以让应用程序相互通信,以便用户只需加载仅提供附加功能的附加应用程序。有关此问题的详细信息.. android communication between two applications

WP8 - 我还没有经验

答案 1 :(得分:0)

虽然我不是核心的Android开发者,但从我到Android的经验来看,这里有一些建议:

Android的一个可能解决方案是使用Updates for application。实现此目的的一种方法是使用后台服务,该应用程序在应用程序启动时检查更新,或使用GCM(Google云消息传递)将更新消息推送到应用程序。第二个选项要好得多,因为只要他/她购买了添加功能,您就可以基于每个设备(用户可以拥有多个设备)为用户提供即时更新。用户获得更新消息后,您可以使用新功能下载整个应用程序并在设备上更新应用程序。当然,在这种情况下,您需要备份应用程序的现有数据,并在安装更新的应用程序后恢复。

我不知道这件事是否可以完成但是如果你能通过Android Market提供一个合法的用户,他们已经购买了特定的添加,更新的应用程序,那么这也是一个不错的选择。< / p>

另一种方法是将每个添加创建为Service,然后让主应用程序在启动时检测(或bind)这些服务,如果它们可用,您的应用可以与它们通信容易。您甚至可以使用Intents和BroadcastReceivers从主应用程序调用新部署的添加的UI部分。

就Android而言,您可能还会发现this非常有用:

  

但是,应用程序有一些方法可以与其他人共享数据   应用程序和应用程序访问系统服务:

     

可以安排两个应用程序共享同一个Linux   用户ID,在这种情况下,他们可以访问彼此的文件。至   节省系统资源,具有相同用户ID的应用程序也可以   安排在同一个Linux进程中运行并共享同一个VM(   申请还必须使用相同的证书签名。)

希望这能为您提供一些有用的信息。