- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
目前情况:
我正在为支持 Java 的手机(基于 MIDlet 的“哑手机”,而不是 Android)制作一个小型应用程序。该应用程序的结构如下:
ModuleA
的类)ModuleB
的类)类型 A 和 B 的模块基本上是类,它们根据用户从列表中选择的内容在基础结构中实例化,并且它们以自己的特定方式执行操作。思考“策略模式”。当用户使用该应用程序时,她会浏览基础设施提供的屏幕,然后看到 A 类型的模块列表(查看它们的标题)。然后她选择其中一个模块,该模块被实例化并为她做一些事情。
我的愿望
我想知道是否可以(如果可以,如何)将整个基础设施打包在一个 JAR 文件中,但将 A 类型的模块和 B 类型的模块保留在其他 JAR 文件中,以便将来可以安装在设备上(例如基础设施的附加组件)。我正在考虑这个场景:
首先,这样的插件可以安装在移动设备上吗?它们是否必须包含 MIDlet 类(不执行任何操作或通知基础结构)?基础设施能否检测到那些包含我的应用程序附加组件的 JAR?或者基础设施可以与其他 JAR 中打包的类进行交互吗?
注意:只有基础结构 JAR 才会包含有用的 MIDlet 类。此外,附加组件将包含 A 类型模块和 B 类型模块的任意组合。
可能的解决方案? (虽然不完整)
也许这些附加组件在外观、行为和气味上都像设备本身的 MIDlet 应用程序,因此它们可以像任何普通的 MIDlet 应用程序一样安装。附加组件可以将自己声明为与基础设施相同的套件的一部分,因此它们可以通过写入基础设施的记录存储来通知其存在(据我所知,每个 MIDlet 套件都有一个记录存储)。基础设施读取新记录并知道它现在有额外的模块。它可以访问附加 MIDlet JAR 中捆绑的类并实例化它们吗?
最佳答案
MIDP 规范不支持您所描述的实现。除此之外,您不能拥有属于同一个 MIDlet 套件的多个 JAR。
如果你想实现某种模块化,你需要使用不同的运行时。一种由您自己定义并可以在一个 MIDlet 内实现的方法。
您可以编写一个 MIDlet,在二进制文件可用时下载它们。同一个 MIDlet 可以解释这些二进制文件。二进制文件可以包含更改 MIDlet 行为的命令。 MIDlet 需要支持二进制文件要求它执行的所有可能的操作(不过,MIDlet 可以升级)。
基本上,在 MIDlet 内部,您需要编写一个虚拟机代码,该虚拟机是您定义的任何新编程语言的运行时实现。
这将是一项艰巨的工作。您很可能最终会制作一个太大而无法安装在很多手机上的 MIDlet。
关于java - 为 MIDlet 创建 "expansion packs"或 "add-ons"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11710420/
我制作了程序 Test.jar,其中有一个菜单可以运行另一个程序 (Hello.jar)。我一直在寻找并得到以下代码 callLauncher("javaapp:midlet-name=Hello;m
考虑到 J2ME Midlet 应用程序使用的所有 JSR,我能否以某种方式(从数据库或其他来源)获取支持 J2ME Midlet 应用程序的手机的百分比? 最佳答案 不,你不能。 J2ME 严重依赖
在我的 MIDlet wav 播放过程中,我每隔 1 秒就会听到这种可怕的 +/- 1 秒噪音。 Player p = Manager.createPlayer(getClass().getResou
我在 J2ME 工作。我希望我的应用程序必须在设备重新启动时自动启动。 我已按照 中的建议在 JAD 文件中添加了 Nokia-MIDlet-auto-start: yes 条目 http://lib
我正在为诺基亚 N82 编写 Java ME Midlet,我想从 30 开始倒数,到 0 时重新开始。每当我移动 .jar 和 .jad 文件并尝试从手机运行它们时,它都会说无法安装 midlet
我编写了一个 JavaME 程序,该程序访问 Web 服务以检索值,该 Web 服务在 tomcat 服务器上运行。 我面临一个非常奇怪的问题,每当我运行程序时,程序都会像我预期的那样下载新值,但它似
手机浏览器和 midlet 之间是否可以进行交互?据我了解,它们都在不同的沙箱中运行,除非无法在 midlet 和 native 应用程序之间使用特定于平台的 api 通信。 最佳答案 你是对的,没有
我正在尝试将一个界面合并到我的 Midlet 应用程序中来检测打印机。可能有几种情况:-A。已添加到移动设备的打印机。b.检测蓝牙打印机 提前致谢。 最佳答案 场景 a) 您可能想查看 blackbe
我正在客户端用 j2me 编写一个游戏,它连接到用 java 编写的服务器。该游戏将具有聊天功能,但作为次要功能。 对于连接到服务器的每个 midlet,都会生成一个服务器游戏线程。这些线程在它们之间
因此,我使用 Samsung SDK 1.1.2 开发了一个简单的 hello world midlet,并且打包了 midlet。现在我有两个文件(一个 JAR/JAD)组合。如何将这些安装到我的手
一个简单的问题,一个相当复杂的答案: 如何对 Java Midlet 进行签名,以便将其加载到安全提示较少的手机上? 最佳答案 获取所需的软件 Java SDK (JDK)来自Sun (你应该已经有了
以下代码运行正常,并弹出一个我可以输入内容的文本字段。手机模拟器的左上角软键可以让我更改输入类型(从 qwerty 到数字等),但是每次按下左上角的按钮时,我都会收到 NullPointerExcep
我正在尝试制作一个使用 midlet 作为菜单的程序。当从菜单访问某些命令时,它将访问 Canvas (就像在弹出按钮中选择 fillrectangle 和 fillarc 一样)。如果我选择fill
我开发了一个应用程序,它可以点击 protected 网址。当我使用“https”点击此网址时,我在模拟器中得到“证书已过期”,在真实设备中得到“证书验证失败”。下面是代码片段: String log
我开发了j2me应用程序。该应用程序广泛使用文件连接api访问文件,因此从symantec(Veri标志)购买了证书以避免文件权限问题并成功签署JAD文件。 问题:-在 Blackberry curv
我编写了以下 Java 应用程序: import java.util.Timer; import java.util.TimerTask; import javax.microedition.lcdu
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: How do you sign a Java Midlet? 我如何签署 Java midlet?
我想在安装/删除我的黑莓应用程序 (cod) 时收到通知。类似于 Midlet-Install-Notify JAD 属性。目前,黑莓似乎不支持这个 JAD 属性。有黑莓的替代品吗?如果没有,我可以使
我想签署我的应用程序,但我不希望其用户在安装我的应用程序之前在他们的手机上安装证书。是否可以使用自签名证书对 j2me midlet 进行签名? 最佳答案 这是可能的,为此您需要从 verisign
我在 J2ME 工作。我希望我的 MIDlet 必须无限运行。即使我按下设备上的任何键,它也不能关闭。 请帮我看看我该怎么做? 最佳答案 如果您使用的是诺基亚手机,您可以在 Jad 文件中添加 Nok
我是一名优秀的程序员,十分优秀!