首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为MIDlets创建“扩展包”或“附加组件”?

为MIDlets创建“扩展包”或“附加组件”?
EN

Stack Overflow用户
提问于 2012-07-29 15:23:56
回答 1查看 91关注 0票数 1

当前的情况:

我正在为支持Java的手机(基于MIDlet的“哑巴手机”,而不是Android)开发一个小应用程序。应用程序的结构如下:

  1. “基础设施”,具有核心功能
  2. A类模块(实现接口ModuleA的类)
  3. B型模块(实现接口ModuleB的类)

A和B类型的模块基本上是根据用户从列表中选择的内容在基础设施中实例化的类,它们以自己特定的方式执行任务。想想“战略模式”。当用户使用应用程序时,她探索了基础设施提供的屏幕,然后看了A类型模块的列表(见它们的标题)。然后,她选择其中一个模块,该模块被实例化,并为她做一些事情。

我所希望的

我想知道是否有可能(如果是,如何)将整个基础设施打包到一个JAR文件中,但是将A类型的模块和B类型的模块保存在其他JAR文件中,这些模块将来可以安装在设备上(比如基础设施的附加组件)。我在想这个场景:

  1. 用户安装基础设施
  2. 用户安装“初学者”插件,它与基础设施同时可用。
  3. 几周后,开发人员创建了一个新的插件,比如用户可以安装的“特殊圣诞节模块”,因此已经安装在设备上的基础设施将在插件中列出模块。
  4. 一年后,又发布了一个插件,其中包含有其他功能和想法的模块。

首先,这样的附加功能可以安装在移动设备上吗?它们是否必须包含MIDlet类(不做任何操作或通知基础设施)?基础设施能检测到那些包含我的应用程序附加组件的JAR吗?或者,基础设施能否与其他JAR中的类进行交互?

注意:只有Infrastructure会包含一个有用的MIDlet类。此外,加载项将包含A型模块和B型模块的任何组合。

可能的解决方案?(但不完整)

也许这些附加组件看起来、行为和气味都像设备本身的MIDlet应用程序,因此它们可以作为任何普通的MIDlet应用程序安装。加载项可以声明为与基础设施相同的套件的一部分,因此他们可以通过写信到基础设施记录存储(我知道每个MIDlet套件都有一个记录存储)通知他们的存在。基础设施读取新的记录,并知道它现在有额外的模块。它能访问打包在外接MIDlet JAR中的类并实例化它们吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-15 05:41:51

MIDP规范不支持您所描述的实现目标。除其他外,您不能拥有属于同一MIDlet套件的几个JAR。

如果您想实现某种模块化,则需要使用不同的运行时。一个可以在一个MIDlet中实现的定义自己的方法。

当二进制文件可用时,您可以编写一个下载二进制文件的MIDlet。相同的MIDlet可以解释这些二进制文件。二进制文件可以包含更改MIDlet行为的命令。MIDlet需要支持二进制文件要求它执行的所有可能的操作(不过,MIDlet可以升级)。

基本上,在您的MIDlet中,您需要为您定义的任何新编程语言编写一个虚拟机,它是运行时的实现。

这将是一项艰巨的工作。你很可能最终会制造一个大到不能安装在很多手机上的MIDlet。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11710420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档