有没有像Sqlite这样的本地数据库选择j2me - CLDC设备?PerstLite和OpenBaseMovil都是双重许可.这有没有开源选项?或者,任何开发应用程序的替代方法.
我需要一个适用于J2ME/CLDC 1.1的基本JSON解析器.
Google搜索会在此返回大量答案(有些甚至在stackoverflow上),但似乎都指向不再可用的库和解决方案(例如,批次指向应该在json.org上的实现)网站,但至少我找不到任何不是J2SE的东西).
到目前为止,我最大的希望是链接源:https://meapplicationdevelopers.dev.java.net/mobileajax.html,但是从那个我甚至找不到直接下载代码的方法.
鉴于Java在所有其他方面的成熟状态,肯定有一些地方我可以使用预编译的JAR来从J2ME解析JSON吗?
我想从在支持MIDP的移动设备上运行的J2ME客户端调用一些RESTful Web服务.我为HTTPConnections读取了MIDP api,并认为这只是为了一个简单的包装器来隐藏所有那些令人不快的字节数组等等.在我自己编写之前,我想知道是否有一个好的开源库已经可用.
-FE-
我正处于 Blackberry/J2ME 项目的开始阶段 —— 加上这个出色平台带来的其他限制,缺乏对反射和 1.3 语言级别的支持意味着绝大多数现有的 IoC 容器都无法使用。(谷歌有没有 AOP 的 Android 版 Guice,但即使这样也需要支持注释)。
因此,J2ME 上 IoC 容器的空间非常有限。引起我注意的一个框架称为Signal Framework,它看起来很有前途。它试图在概念上接近 Spring Framework 的 IoC,实现其功能的一小部分,并且不依赖字节码修改或导致运行时 xml 解析。相反,它在构建时处理配置 XML 以生成实现此 IoC 功能的 Java 代码。
一般来说,在构建时生成代码对于移动应用程序来说似乎是一种非常明智的方法——如果我的应用程序必须在用户设备上进行较少的 XML 解析,那也太棒了!
那么,您在 J2ME/CLDC 上实现 IoC 的经验是什么,您是如何消除口中苦涩的?
我正在尝试java.util.TreeMap在J2ME应用程序中使用.我知道它TreeMap存在于J2SE上但不存在于J2ME上,所以我已经做了一些努力将J2SE 6.0移植TreeMap到J2ME 1.2并将其包含在我的Midlet Jar中.这涉及移植一半的集合框架,但现在我(理论上)完成了它并想要测试它.
但是当我在SUN J2ME SDK 3.0模拟器(DefauldClclPhone2)上启动我的应用程序时,我得到以下异常:
java.lang.NoClassDefFoundError: java/util/TreeMap
java.lang.Class.invoke_verify(), bci=0
java.lang.Class.initialize(), bci=117
com.companyname.test.TestMidlet.<init>(), bci=19
java.lang.Class.newInstance(), bci=0
com.sun.midp.main.CldcMIDletLoader.newInstance(), bci=46
com.sun.midp.midlet.MIDletStateHandler.createMIDlet(), bci=66
com.sun.midp.midlet.MIDletStateHandler.createAndRegisterMIDlet(), bci=17
com.sun.midp.midlet.MIDletStateHandler.startSuite(), bci=27
com.sun.midp.main.AbstractMIDletSuiteLoader.startSuite(), bci=52
com.sun.midp.main.CldcMIDletSuiteLoader.startSuite(), bci=8
com.sun.midp.main.AbstractMIDletSuiteLoader.runMIDletSuite(), bci=161
com.sun.midp.main.AppIsolateMIDletSuiteLoader.main(), bci=26
Run Code Online (Sandbox Code Playgroud)
在我得到的真实设备上"Error in Application"但看不到实际的异常,因为我现在没有匹配的SDK.
我的应用程序成功地经历了预验证过程,我感到很困惑.我总是经历过一个缺失的课程(前几天我有很多课程)在预验证器中触发错误.所以我得出结论,在成功预先验证之后NoClassDefFoundError,设备上就没有任何东西了.
我的jar里面的目录结构如下:
test.jar
com
companyname
(my application classes, including the Midlet class)
java
lang
Comarable.class
Iterable.class
(some others which are missing on J2ME)
util
TreeMap.class
TreeSet.class
(many others which …Run Code Online (Sandbox Code Playgroud) 我正在Java ME环境中编写代码,因此速度绝对是一个重要因素.我已经阅读了几个地方,任何类型的反射(即使是在Java ME上允许的非常有限的数量)也可能是一个非常大的瓶颈.
所以,我的问题是:做得String.class.getName()慢吗?怎么样myCustomObject.getClass().getName()?简单地用字符串常量替换那些,比如"java.lang.String"和"com.company.MyObject"?
如果您想知道,我需要所有原语的类名(以及非原语),因为Java ME不提供默认的序列化实现,因此我必须实现自己的.我需要一个通用的序列化解决方案,它既适用于网络通信,也适用于本地存储(RMS,还有JSR-75)
编辑
我正在使用Java 1.3 CLDC.
我有一本我正在学习的Java书,在其中一个例子中,我看到了一些可疑的东西.
public class ThreadExample extends MIDlet {
boolean threadsRunning = true; // Flag stopping the threads
ThreadTest thr1;
ThreadTest thr2;
private class ThreadTest extends Thread {
int loops;
public ThreadTest(int waitingTime) {
loops = waitTime;
}
public void run() {
for (int i = 1; i <= loops; i++) {
if (threadsRunning != true) { // here threadsRunning is tested
return;
}
try {
Thread.sleep(1000);
} catch(InterruptedException e) {
System.out.println(e);
}
}
}
}
public ThreadExample() {
thr1 = new …Run Code Online (Sandbox Code Playgroud) 我正在使用"J2me"开发一个移动应用程序,用于配置"CLDC-MIDP2.0".
在我的移动应用程序中,我需要让用户能够调整移动设备的"日期"和"时间"设置.
这里我使用"DateField"来获取用户的日期,但我无法设置或更改手机的"日期"和"时间".
如何使用"J2ME"更改手机的"日期"和"时间"?在这里,我使用"诺基亚c2-00"手机进行测试.它是"S40"设备.
我正在J2ME中开发一个基于位置的应用程序.我正在使用CLDC 1.1和MIDP 2.0的配置.
因此,我必须在数据库中存储地名,地址,纬度,经度,提醒文本和音调名称.我对RMS的问题是:
1)当我关闭应用程序或重新启动应用程序时; RMS中的应用程序存储的任何记录都会被删除?
2)保持记录的RMS的最大容量是多少.这是无限的吗?
3)在没有移动系统减速的情况下RMS可以保存多少条记录?
4)哪个J2ME数据库系统为我提供了添加,删除和更新记录的效率,简单性和速度.RMS能提供吗?