- 架构
- 最低层就是移动消息设备硬件层(Mobile Information Device hardware)
- 其次是native system software(也就是OS和设备用到库文件)
- CLDC(提供虚拟机和关键库)
- 这一层分为MIDP定义的API和设备厂商自定义的API
- 应用程序层,又分成3种(MIDP,OEM-specific,Native).如名之意,MIDP application建立在MIDP的基础上,OEM同。Native application却不是用java写的,直接建立在第2层native system software的基础上
- 硬件(应该满足的最小要求)
- 显示
Screen-size: 96x54 屏幕大小
Display depth: 1-bit 显示深度
Pixel shape(aspect ratio): approximately 1:1 像素形式(纵横比大约1比1)
- 输入: 单手键盘,双手键盘,触摸屏中间的一个或者多个输入设备
- 内存
CLDC需要范围之外,需要256kb不挥发性内存用于MIDP执行
8kb不挥发性内存用于保存应用程序产生的持久数据
128kb挥发性内存为了java运行时(包括java堆)
- 网络: 收发2用,无线,可间断,带有受限带宽
- 声音: 通过专用硬件或者通过软件运算
- 软件
- 一个可以管理下层硬件的最小内核
- 读,写不可挥发内存的机制来支持持续性存储的RMS APIs
- 读,写访问设备的无线网络来支持Networking APIs
- Timer APIs
- bit级别的画面显示能力
- 捕获用户输入的机制
- 控制设备上面应用程序生命周期的机制
- 要求
- 必须支持MIDP1.0, MIDP2.0, MIDlet Suites
- 必须包含了该规范中间所有的包,类以及接口
- 必须能够实现下一章关于无线配布的仕样
- 可以合并0个或多个支持push的协议
- 在网络使用发生的时候必须给用户一个可视的提示
- 通过CommConnection接口可以提供对有效端口访问的支持
- 必须提供对HTTP1.1服务器和服务访问的支持。可以直接也可以通过WAP or i-mode提供的网关服务
- 必须提供对可靠HTTP连接的支持。可以直接也可以通过WAP or i-mode提供的网关服务
- 应该提供对datagram connections的支持(自寻址)
- 应该提供对server socket stream connections的支持
- 应该提供对socket stream connections的支持
- 应该提供对secure socket stream connections的支持
- 必须支持PNG格式的透明度(前几天看的就是这么一段程序为了做splash)
- 可以加入对别的图形格式的支持
- 在media包里面必须加入声音产生的支持
- 如果提供了对sample sound的支持则必须支持8bit,8KHz,单线性PCM声音格式
- 可以加入对别的声音格式的支持
- 如果合成语音被支持的话,就必须支持SP-MIDI(scalable polyphony MIDI)和SP-MIDI Device 5-to-24 Note profile
- 可以加入对别的MIDI格式的支持
- 必须能够实现支持Untrusted MIDlet Suites的机制(开始项目组的不少人错误或者没有完全理解这一点,untrusted的可能情况很多,而且每种又分为安装时,执行时阿...我就在痛苦的研究中)
- 必须执行Trusted MIDlet Suite Security,除非设备安全策略不允许或不支持可信任的应用程序
- 必须执行Trusted MIDlet Suite Using X.509,从而把signed MIDlet当作trusted来看待,除非设备在标志应用程序的时候没有使用过PKI
- 为了认证HTTPS握手和安全连接必须执行MIDP x.509 Certificate Profile
- 对于I/O访问不管是media api还是一般连接框架都必须有同样的安全要求。参考javax.microedition.io包的文档
- 必须最少支持UTF-8(靠,我们组居然默认gb2312,于是现在utf8乱码了,我还在调查如何使用底层库函数,但是问题其实不是这里而是如何判断,复合码的时候怎么办???我郁闷阿)
- 可以支持别的编码格式
- 不应该允许MIDlet suite被拷贝,除非是设备在执行拷贝保护机制