﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-心无尘土-随笔分类-MIDP</title><link>http://www.cnitblog.com/Yama/category/1385.html</link><description>一段平凡的日子，一段流逝的岁月</description><language>zh-cn</language><lastBuildDate>Tue, 27 Sep 2011 05:06:55 GMT</lastBuildDate><pubDate>Tue, 27 Sep 2011 05:06:55 GMT</pubDate><ttl>60</ttl><item><title>手机中java程序和浏览器的联动机能</title><link>http://www.cnitblog.com/Yama/archive/2007/03/06/23664.html</link><dc:creator>Yama的家</dc:creator><author>Yama的家</author><pubDate>Tue, 06 Mar 2007 05:37:00 GMT</pubDate><guid>http://www.cnitblog.com/Yama/archive/2007/03/06/23664.html</guid><wfw:comment>http://www.cnitblog.com/Yama/comments/23664.html</wfw:comment><comments>http://www.cnitblog.com/Yama/archive/2007/03/06/23664.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cnitblog.com/Yama/comments/commentRss/23664.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/Yama/services/trackbacks/23664.html</trackback:ping><description><![CDATA[●需求：浏览器通过对object tag的解析来实现对已安装的j2me程序的启动调用<br /><br />●文档参考：<br />1.OMA XHTML Mobile Profile(OMA-TS-XHTMLMP-V1_2-20050118-C.pdf)的11章<br />2.内部资料Appendix B及限定事项<br />3.http://www.w3.org/TR/html4/struct/objects.html<br /><br />●知识点<br />1.嵌套于网页中的object元素主要应用于两种形式。一种是描述object data的位置，另一类是描述该object实现的位置。所以简单而言，就是如何使用data和classid两类属性。<br />2.如果data,classid两个属性都存在的话，classid必定优先于data。<br />3.data属性是被content作者来定义object data的URI。type属性用来描述MIME media type.(本次无关，暂不讨论)<br />4.classid属性是被content作者用来定义在当前设备中可处理媒体object的本地程序的URI。★<b>本项目目的也就是需要通过对classid的解析来达到调用java application management system去控制已安装的java程序来处理browser处的媒体文件</b>。<br /><br />●处理核心<br />1。<b>classid="x-oma-application:java-ams" -&gt;</b>object是jam程序<br />2。通过传递parameters到jam来判断需要的程序是否已经安装。<br />3。如果该midlet没有安装的话，应该能够给用户机会去下载对应程序。直接下载jad/jar文件通过别的元素中描述的链接或者是object元素中的data属性。<br />4。必须需要提供者定义的初始param元素：<br />    ▲AMS-Filename：执行midlet文件的路径。其实一般就是指jad文件的下载链接或本地链接。如果该链接是相对路径并且属性codebase没有被定义，那么就用当前文件的路径作为codebase的基值。<br />    ▲MIDlet attribute：（如MIDlet-Name, MIDlet-Version, MIDlet-Vendor）其实一般对于midp2.0来说前面的三个属性就是可以唯一确定midlet的关键。所以实现midlet存在与否的时候，就是通过上述传递过来的三个属性去查找是否有完全匹配的midlet。<br />    ▲AMS-Startup：使得内容作者拥有设定该midlet的启动方式的权利。它的值有三个。<br />     △auto: midlet安装好的情况下就执行，未曾安装的话就下载并且安装。<br />     △launch-only: 只有安装好的情况执行。没有安装的话返回通知给用户即可。<br />     △download-confirm:如果没有安装就去下载并且安装。但是给用户权利去选择是否执行该程序。<br />    ▲由于需要在启动的时候运用param中设定的属性，所以必须给与jam权利去得到这些属性和值。简单的说，可以通过getProperty（name为key）来得到value.<br /><br /><br /><br /><img src ="http://www.cnitblog.com/Yama/aggbug/23664.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/Yama/" target="_blank">Yama的家</a> 2007-03-06 13:37 <a href="http://www.cnitblog.com/Yama/archive/2007/03/06/23664.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MIDP2.1来了</title><link>http://www.cnitblog.com/Yama/archive/2006/07/11/13455.html</link><dc:creator>Yama的家</dc:creator><author>Yama的家</author><pubDate>Tue, 11 Jul 2006 02:44:00 GMT</pubDate><guid>http://www.cnitblog.com/Yama/archive/2006/07/11/13455.html</guid><wfw:comment>http://www.cnitblog.com/Yama/comments/13455.html</wfw:comment><comments>http://www.cnitblog.com/Yama/archive/2006/07/11/13455.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cnitblog.com/Yama/comments/commentRss/13455.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/Yama/services/trackbacks/13455.html</trackback:ping><description><![CDATA[相隔4年多，MIDP终于小心翼翼的升了一小级，从2.0过渡到了2.1.<br>新版本于20060526发布，拿到新的版本，当然首先要稍微整体把握一下，估计这个月开始新的部门的实装和新老式样的调整也要尽快的展开了。总的来说，这一次新的版本的说明相对于2.0来说，更加容易阅读,比如说排版和小标题号的增加。言归正传，看看究竟有些什么。(转载请注明出处-&gt;Yama)<br><br>一。简述<br>1。在文档17面Compliant MIDP2.0 implementation里面加入了<br>&nbsp;&nbsp;&nbsp; Must support ISO/IEC JPEG together with JFIF(JPEG File Interchange Format).<br>&nbsp;&nbsp;&nbsp; 也就是以前没有支持JPEG关联图像格式的厂商这次郁闷了，还是要加上的说。<br>&nbsp;&nbsp;&nbsp; 另外，2.1的文档里面大量的地方还是2.0的称呼，估计是文档小组太不好好干活的说<br>2。文档18页的Package Summary里面javax.microedition.lcdui.game终于从<br>&nbsp;&nbsp;&nbsp; User Interface Package里面独立出来自成一家Game Package.<br>&nbsp;&nbsp;&nbsp; 另外就是Persistence Package的排名飙升到Application Lifecycle之后，不知道是不是对于存储方面MIDP2.1更加重视了。还有就是Sound and Tone Media改名为Sound.<br><br>二。Over The Air User Initiated Provisioning Specification<br><br>1。文档21页MIDlet Suite Installation里面增加了关于MIDlet Suite安装后直接执行的部分。<br>&nbsp;&nbsp;&nbsp; In case of user-initiated OTA provisioning, after a MIDlet suite is successfully installed on the device and if the suite contains any MIDlets(that is , one or more MIDlet-&lt;n&gt; attibutes are in the JAD file or JAR manifest), an implementation must prompt the user to specify whether to launch a MIDlet from the suite.if the user approves launching a MIDlet and the MIDlet suite contains only one MIDlet, that specific MIDlet must be launched. If the suite contains several MIDlets, an implementation must give the user the opportunity to choose which MIDlet to launch. After the selection, the chosen MIDlet Must be launched. These requirements apply only to MIDlets that are listed in the JAD file or in the JAR manifest by means of MIDlet-&lt;n&gt; attributes.<br>&nbsp;&nbsp;&nbsp; 说穿了，也就是加入了直接执行的部分说明。2.0的时候好像什么相关文档中提到过，这个部分应该大多数实现厂商都提供了。所以虽然是新加的，但是也不用从新对应了。<br><br>2。Page23 MIDlet Suite Removal<br>&nbsp;&nbsp;&nbsp; 在MIDP2.0里面关于包含复数MIDlet的MIDlet Suite的删除时候the MIDlet suite may contain multiple MIDlets,and the user should be made aware that all of the MIDlets and associated RMS record stores are being removed. 而MIDP2.1里面该段话变成了强制执行-〉if a MIDlet suite contains multiple MIDlets, an implementation must make the user aware of the MIDlets and associated RMS record stores that will be removed, and the user must be given the chance to abort this action.<br><br>3。Page24 Installation/Deletion status reports<br>&nbsp;&nbsp;&nbsp; For installations里面关于状态发送的部分有了很大的改动，主要是强制说明了最少必须重发5次。<br>&nbsp;&nbsp;&nbsp; MIDP2.0里面，for installations, if the status report cannot be sent, or if the server reply is not received, the installation status report <font color="#ff0000">may be</font> sent again(as described above)each time a MIDlet in this suite is executed and the device has data network connectivity.<br>&nbsp;&nbsp;&nbsp; 而MIDP2.1里面说这种情况下，an implementation <font color="#ff3300">must<font color="#000000"> attempt to resend the report at least 5 times.并且，attempts to resend the status report <font color="#ff0000">must not</font> be performed after a response from the server is received.<br><br>&nbsp;&nbsp;&nbsp; 同样的for deletions和安装完全一样，也需要最少重发5次，并且一旦受到服务器的应答后就必须停止重发了。但是重发的条件有点奇怪？if the status report cannot be sent, or if the server reply is not received.也就是说安装后没有发送的时候如果关机的话，按照现在的文档来说是必须要重发的，这样的话这部如何处理。以后在什么时候重发，需要和delete的状态报告一样方式处理么？<br></font></font>&nbsp;&nbsp;&nbsp; <br>三。Security for MIDP Applications<br>四。Trusted MIDlet Suites using X.509 PKI<br><br>...<br>5.java.lang<br>6.java.util<br>7.javax.microedition.io<br>8.javax.microedition.lcdui<br>9.javax.microedition.lcdui.game<br>10.javax.microedition.media<br>11.javax.microedition.media.control<br><br>十二。javax.microedition.midlet<br>１．P427－４２８MIDlet-&lt;n&gt;属性说明里面关于icon的描述里面增加了以下的东东。<br>&nbsp;&nbsp;&nbsp; If an implementation displays MIDlet icons(using associated MIDlet-Icon attribute), the following requirement apply:<br>&nbsp;&nbsp;&nbsp; 1&gt; The application manager must always be able to display a MIDlet-Icon of 16 by 16 pixels in the application list<br>&nbsp;&nbsp;&nbsp; 2&gt;The application manager should always be able to display a MIDlet-Icon of 24 by 24 pixels in the application list<br>&nbsp;&nbsp;&nbsp; 3&gt;A MIDlet-Icon larger than 24 by 24 may be displayed properly in full size in the application list<br>&nbsp;&nbsp;&nbsp; 4&gt;A MIDlet-Icon must not be scaled down in the application list, but the application manager may use centered cropping to fit the icon into the list.<br><br>２．MicroEdition-Profile没有详细的特别说明,但是midp2.1的话这个部分是不是有变更的必要性呢？要调查！！！<br><br>３．P429 新的属性增加 Runtime-Execution-Environment<br>&nbsp;&nbsp;&nbsp; This is an optional attribute that indicates the runtime execution environment REQUIRED by the application. This attribute MAY have the value MIDP.CLDC. If the MIDlet suite does not specify the attribute, the implicit value is MIDP.CLDC. When the value of the Runtime-Execution-Environment attribute is MIDP.CLDC, the behavior of the implementation MUST adhere to the requirements presented in the following more detailed<br>description. Additional values for this attribute MAY be defined in future<br>&nbsp;&nbsp;&nbsp; 后面并且为此加入了12.2.3.1大段说明<br>&nbsp;&nbsp;&nbsp; When an application defines the Runtime-Execution-Environment attribute value MIDP.CLDC or does not define this attribute, the behavior of the mobile handset implementation during execution of this application MUST adhere to the following requirements:<br>&nbsp;&nbsp;&nbsp; &#8226; The set of supported APIs and the API behavior, as well as the behavior of the underlying virtual machine, MUST comply with the CLDC 1.1 specification.<br>&nbsp;&nbsp;&nbsp; &#8226; A mobile handset implementation MAY alternatively use the CDC configuration of Java ME. However, if CDC is used as the underlying configuration, applications running on top of this platform MUST see an enviroment that is semantically and functionally equivalent to a CLDC 1.1 platform. CDC-specific APIs or CDC-specfic behavior MUST NOT be exposed to applications or application developers.<br>&nbsp;&nbsp;&nbsp; &#8226; When an application defines the Runtime-Execution-Environment attribute value MIDP.CLDC the application MUST also define a CLDC platform in the MicroEdition-Configuration attribute. If this is not the case, the application MUST NOT be installed and Status Code 905 "Attribute Mismatch" MUST be used when reporting the installation suite.<br>&nbsp;&nbsp;&nbsp; &#8226; If an application defines a value for the Runtime-Execution-Environment or MicroEdition-Configuration attribute that is not supported by the implementation, the application MUST NOT be installed. All mobile handset implementations MUST support the "MIDP.CLDC" value for the Runtime-Execution-Environment attribute.<br>&nbsp;&nbsp;&nbsp; &#8226; A mobile handset implementation MUST support the Runtime-Execution-Environment attribute.<br><br>４．P430 An attribute MUST not appear more than once within the manifest. If an attribute is　duplicated the effect is unspecified<br>&nbsp;&nbsp;&nbsp; 2.0和2.1是一样的,但是好像现在我的实现错掉了,为了防止忘记,顺便记下<br><br>５．P431 加入的这部门仅仅说明下面3个属性的重要性有所增加,但是对于实装来说没有什么很大的影响<br>&nbsp;&nbsp;&nbsp; In addition, to improve the user experience (by rejecting incompatible suites without needing to download the JAR file), the application descriptor SHOULD contain the following attributes:<br>&nbsp;&nbsp;&nbsp; &#8226; MicroEdition-Profile<br>&nbsp;&nbsp;&nbsp; &#8226; MicroEdition-Configuration<br>&nbsp;&nbsp;&nbsp; &#8226; MIDlet-Permissions<br><br>６．P432<br>７．<br><br><br>...<br>13.javax.microedition.pki<br>14.javax.microedition.rms<br>15.The Recommended Security Policy for GSM/UMTS Compliant Devices<br><br><br><br> <img src ="http://www.cnitblog.com/Yama/aggbug/13455.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/Yama/" target="_blank">Yama的家</a> 2006-07-11 10:44 <a href="http://www.cnitblog.com/Yama/archive/2006/07/11/13455.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MIDP2.0仕样探索之五</title><link>http://www.cnitblog.com/Yama/archive/2005/12/08/5230.html</link><dc:creator>Yama的家</dc:creator><author>Yama的家</author><pubDate>Thu, 08 Dec 2005 04:08:00 GMT</pubDate><guid>http://www.cnitblog.com/Yama/archive/2005/12/08/5230.html</guid><wfw:comment>http://www.cnitblog.com/Yama/comments/5230.html</wfw:comment><comments>http://www.cnitblog.com/Yama/archive/2005/12/08/5230.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/Yama/comments/commentRss/5230.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/Yama/services/trackbacks/5230.html</trackback:ping><description><![CDATA[<P>MIDP2.0仕样探索之一<BR><A HREF="/Yama/archive/2005/12/07/5220.html">http://www.cnitblog.com/Yama/archive/2005/12/07/5220.html</A><BR>MIDP2.0仕样探索之二<BR><A HREF="/Yama/archive/2005/12/07/5221.html">http://www.cnitblog.com/Yama/archive/2005/12/07/5221.html</A><BR>MIDP2.0仕样探索之三<BR><A HREF="/Yama/archive/2005/12/07/5222.html">http://www.cnitblog.com/Yama/archive/2005/12/07/5222.html</A><BR>MIDP2.0仕样探索之四<BR><A HREF="/Yama/archive/2005/12/07/5223.html">http://www.cnitblog.com/Yama/archive/2005/12/07/5223.html</A><BR>MIDP2.0仕样探索之五<BR><A HREF="/Yama/archive/2005/12/08/5230.html">http://www.cnitblog.com/Yama/archive/2005/12/08/5230.html</A></P>
<UL>
<LI>MIDlet Suite 发现篇</LI></UL>
<BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px">
<P>设备提供用来定位MIDlet的Process。为了自主的寻找和安装MIDlet suites，必须支持以下的手段</P>
<UL>
<LI>使用DA的时候，MIDlet suite或者应用程序描叙文件应该被表示为链接 
<LI>用户通过选择链接来开始安装程序 
<LI>如果可能，首先下载应用程序描述文件到设备。该描述文件包含了MIDlet suite的信息并且能够被应用程序管理器用来开始安装 
<LI>如果没有应用程序描述文件，或者应用程序管理器下载了描述文件并且决定继续安装的时候，JAR文件开始下载</LI></UL>
<P>使用DA,用户可以访问网络定位，可以通过链接来查看关于MIDlet suite的描述。</P>
<P>如果该链接指向的是JAR文件，点击后JAR文件和URL会被传送给设备上面的应用程序管理器从而开始安装进程。</P>
<P>如果该链接指向的是应用程序描述文件：</P>
<OL>
<LI>一旦链接被选择，那么服务器必须在应答中指出被传输的数据的MIME type是"text/vnd.sun.j2me.app-descriptor" 
<LI>传输完了的时候，应用程序描叙文件被设备上的应用程序管理器接受来开始安装进程。应用程序描述文件被应用程序管理器用来决定关联的MIDlet suite能否成功的安装并且在该当设备上面运行。如果答案为否的话，<FONT color=#0000ff>安装不可的理由必须显示给用户</FONT>。应该尽可能的使得用户花费最少时间和最少网络带宽来达到这个目的。在得到应用程序描叙文件的时候应该使用Device Identification和Request Headers里面的request-header. 
<LI>应用程序描述文件在使用之前必须从传输格式转成MIDP仕样里面定义的Unicode-encoding。 MIME type“text/vnd.sun.j2me.app-descriptor”默认的文字编码集是“UTF-8”。<FONT color=#0000ff>如果设备支持别的字符集，在request里面应该包含appropriate Accept-Charset header，并且内容应该基于返信中Content-Type头里面的charset attribute来转换</FONT>。 如果charset未定义，解码默认设置为UTF-8,并且应该经行相应的转化。描述文件中的属性项必须按照仕样里面的语法来格式，并且所有的MIDP仕样里面的所有被要求的属性项都必须显示在描述文件中。如果没有满足，那么客户端会在状态报告中返回状态码906 
<LI>通过使用应用程序描述文件中的vendor,name,version,size attributes的信息应该可以提供给用户机会去确认他们是不是真的想去安装MIDlet suite。诸如安装旧的版本或者相同版本的时候应该给与用户提醒。不能成功安装和执行的原因应该确认并且告知用户。例如：如果知道没有足够的空间去安装，程序应该帮助用户去查询存储空间使用情况并且为安装新的MIDlet suite释放出足够使用的空间。</LI></OL>
<P>&nbsp;</P></BLOCKQUOTE><img src ="http://www.cnitblog.com/Yama/aggbug/5230.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/Yama/" target="_blank">Yama的家</a> 2005-12-08 12:08 <a href="http://www.cnitblog.com/Yama/archive/2005/12/08/5230.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MIDP2.0仕样探索之四</title><link>http://www.cnitblog.com/Yama/archive/2005/12/07/5223.html</link><dc:creator>Yama的家</dc:creator><author>Yama的家</author><pubDate>Wed, 07 Dec 2005 08:54:00 GMT</pubDate><guid>http://www.cnitblog.com/Yama/archive/2005/12/07/5223.html</guid><wfw:comment>http://www.cnitblog.com/Yama/comments/5223.html</wfw:comment><comments>http://www.cnitblog.com/Yama/archive/2005/12/07/5223.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/Yama/comments/commentRss/5223.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/Yama/services/trackbacks/5223.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 概要和目的<br>必要机能&nbsp;&nbsp;<a href='http://www.cnitblog.com/Yama/archive/2005/12/07/5223.html'>阅读全文</a><img src ="http://www.cnitblog.com/Yama/aggbug/5223.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/Yama/" target="_blank">Yama的家</a> 2005-12-07 16:54 <a href="http://www.cnitblog.com/Yama/archive/2005/12/07/5223.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MIDP2.0仕样探索之三</title><link>http://www.cnitblog.com/Yama/archive/2005/12/07/5222.html</link><dc:creator>Yama的家</dc:creator><author>Yama的家</author><pubDate>Wed, 07 Dec 2005 08:52:00 GMT</pubDate><guid>http://www.cnitblog.com/Yama/archive/2005/12/07/5222.html</guid><wfw:comment>http://www.cnitblog.com/Yama/comments/5222.html</wfw:comment><comments>http://www.cnitblog.com/Yama/archive/2005/12/07/5222.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/Yama/comments/commentRss/5222.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/Yama/services/trackbacks/5222.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.cnitblog.com/Yama/archive/2005/12/07/5222.html'>阅读全文</a><img src ="http://www.cnitblog.com/Yama/aggbug/5222.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/Yama/" target="_blank">Yama的家</a> 2005-12-07 16:52 <a href="http://www.cnitblog.com/Yama/archive/2005/12/07/5222.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MIDP2.0仕样探索之二</title><link>http://www.cnitblog.com/Yama/archive/2005/12/07/5221.html</link><dc:creator>Yama的家</dc:creator><author>Yama的家</author><pubDate>Wed, 07 Dec 2005 08:40:00 GMT</pubDate><guid>http://www.cnitblog.com/Yama/archive/2005/12/07/5221.html</guid><wfw:comment>http://www.cnitblog.com/Yama/comments/5221.html</wfw:comment><comments>http://www.cnitblog.com/Yama/archive/2005/12/07/5221.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/Yama/comments/commentRss/5221.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/Yama/services/trackbacks/5221.html</trackback:ping><description><![CDATA[<UL>
<LI><STRONG><U><FONT color=#800080>MIDP2.0仕样探索之一</FONT></U></STRONG></LI></UL>
<BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px">
<P align=left><STRONG><U><FONT color=#800080><A HREF="/Yama/archive/2005/12/07/5220.html">http://www.cnitblog.com/Yama/archive/2005/12/07/5220.html</A></FONT></U></STRONG></P></BLOCKQUOTE>
<UL>
<LI><STRONG>架构</STRONG></LI></UL>
<OL>
<OL>
<LI>最低层就是移动消息设备硬件层（Mobile Information Device hardware） 
<LI>其次是native system software(也就是OS和设备用到库文件) 
<LI>CLDC(提供虚拟机和关键库) 
<LI>这一层分为MIDP定义的API和设备厂商自定义的API 
<LI>应用程序层，又分成3种（MIDP,OEM-specific,Native）.如名之意，MIDP application建立在MIDP的基础上，OEM同。Native application却不是用java写的，直接建立在第2层native system software的基础上</LI></OL></OL>
<P></P>
<UL>
<LI><STRONG>硬件（</STRONG>应该满足的最小要求<STRONG>）</STRONG></LI></UL>
<BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px">
<UL>
<LI>显示</LI></UL>
<BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px">
<P>Screen-size： 96x54 屏幕大小</P>
<P>Display depth： 1-bit 显示深度</P>
<P>Pixel shape(aspect ratio)： approximately 1:1 像素形式（纵横比大约1比1）</P></BLOCKQUOTE>
<UL>
<LI>输入： 单手键盘，双手键盘，触摸屏中间的一个或者多个输入设备 
<LI>内存</LI></UL>
<BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px">
<P>CLDC需要范围之外，需要256kb不挥发性内存用于MIDP执行</P>
<P>8kb不挥发性内存用于保存应用程序产生的持久数据</P>
<P>128kb挥发性内存为了java运行时（包括java堆）</P></BLOCKQUOTE>
<UL>
<LI>网络： 收发2用，无线，可间断，带有受限带宽 
<LI>声音： 通过专用硬件或者通过软件运算</LI></UL></BLOCKQUOTE>
<P></P>
<UL>
<LI><STRONG>软件</STRONG> 
<UL>
<LI>一个可以管理下层硬件的最小内核 
<LI>读，写不可挥发内存的机制来支持持续性存储的RMS APIs 
<LI>读，写访问设备的无线网络来支持Networking APIs 
<LI>Timer APIs 
<LI>bit级别的画面显示能力 
<LI>捕获用户输入的机制 
<LI>控制设备上面应用程序生命周期的机制</LI></UL></LI></UL>
<P></P>
<UL>
<LI><STRONG>要求</STRONG></LI></UL>
<P></P>
<UL dir=ltr style="MARGIN-RIGHT: 0px">
<UL>
<LI>必须支持MIDP1.0, MIDP2.0, MIDlet Suites 
<LI>必须包含了该规范中间所有的包，类以及接口 
<LI>必须能够实现下一章关于无线配布的仕样 
<LI>可以合并0个或多个支持push的协议 
<LI>在网络使用发生的时候必须给用户一个可视的提示 
<LI>通过CommConnection接口可以提供对有效端口访问的支持 
<LI>必须提供对HTTP1.1服务器和服务访问的支持。可以直接也可以通过WAP or i-mode提供的网关服务 
<LI>必须提供对可靠HTTP连接的支持。可以直接也可以通过WAP or i-mode提供的网关服务 
<LI>应该提供对datagram connections的支持（自寻址） 
<LI>应该提供对server socket stream&nbsp;connections的支持 
<LI>应该提供对socket stream&nbsp;connections的支持 
<LI>应该提供对secure socket stream&nbsp;connections的支持 
<LI><FONT color=#008080>必须支持PNG格式的透明度(<IMG alt="" src="http://blog.csdn.net/fckeditor/editor/images/smiley/msn/whatchutalkingabout_smile.gif"><FONT color=#000000>前几天看的就是这么一段程序为了做splash</FONT>)</FONT> 
<LI><FONT color=#000000>可以加入对别的图形格式的支持</FONT> 
<LI>在media包里面必须加入声音产生的支持 
<LI>如果提供了对sample sound的支持则必须支持8bit,8KHz,单线性PCM声音格式 
<LI>可以加入对别的声音格式的支持 
<LI>如果合成语音被支持的话，就必须支持SP-MIDI(scalable polyphony MIDI)和SP-MIDI Device 5-to-24 Note profile 
<LI>可以加入对别的MIDI格式的支持 
<LI><FONT color=#0000ff>必须能够实现支持Untrusted MIDlet Suites的机制</FONT><FONT color=#000000>（开始项目组的不少人错误或者没有完全理解这一点，untrusted的可能情况很多，而且每种又分为安装时，执行时阿...我就在痛苦的研究中）</FONT> 
<LI>必须执行Trusted MIDlet Suite Security，除非设备安全策略不允许或不支持可信任的应用程序 
<LI>必须执行Trusted MIDlet Suite Using X.509,从而把signed MIDlet当作trusted来看待，除非设备在标志应用程序的时候没有使用过PKI 
<LI>为了认证HTTPS握手和安全连接必须执行MIDP x.509 Certificate Profile 
<LI>对于I/O访问不管是media api还是一般连接框架都必须有同样的安全要求。参考javax.microedition.io包的文档 
<LI>必须最少支持UTF-8（<IMG alt="" src="http://blog.csdn.net/fckeditor/editor/images/smiley/msn/angry_smile.gif">靠，我们组居然默认gb2312,于是现在utf8乱码了，我还在调查如何使用底层库函数，但是问题其实不是这里而是如何判断，复合码的时候怎么办？？？<IMG alt="" src="http://blog.csdn.net/fckeditor/editor/images/smiley/msn/cry_smile.gif"><IMG alt="" src="http://blog.csdn.net/fckeditor/editor/images/smiley/msn/cry_smile.gif">我郁闷阿） 
<LI>可以支持别的编码格式 
<LI>不应该允许MIDlet suite被拷贝，除非是设备在执行拷贝保护机制</LI></UL></UL><img src ="http://www.cnitblog.com/Yama/aggbug/5221.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/Yama/" target="_blank">Yama的家</a> 2005-12-07 16:40 <a href="http://www.cnitblog.com/Yama/archive/2005/12/07/5221.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MIDP2.0仕样探索之一</title><link>http://www.cnitblog.com/Yama/archive/2005/12/07/5220.html</link><dc:creator>Yama的家</dc:creator><author>Yama的家</author><pubDate>Wed, 07 Dec 2005 08:38:00 GMT</pubDate><guid>http://www.cnitblog.com/Yama/archive/2005/12/07/5220.html</guid><wfw:comment>http://www.cnitblog.com/Yama/comments/5220.html</wfw:comment><comments>http://www.cnitblog.com/Yama/archive/2005/12/07/5220.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/Yama/comments/commentRss/5220.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/Yama/services/trackbacks/5220.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 作为一个MIDP实现项目的开发者，有必要好好从头理解MIDP的精髓。<br>实现是基于标准的，一个理解上面的错误可能导致的是开发的大量重复甚于架构的错误构建，不能容忍这种错误，所以从今天开始，让我们从头再来一遍把。Yama&nbsp;&nbsp;<a href='http://www.cnitblog.com/Yama/archive/2005/12/07/5220.html'>阅读全文</a><img src ="http://www.cnitblog.com/Yama/aggbug/5220.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/Yama/" target="_blank">Yama的家</a> 2005-12-07 16:38 <a href="http://www.cnitblog.com/Yama/archive/2005/12/07/5220.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>