﻿<?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>C++博客-一针见血-文章分类-BlackBerry</title><link>http://www.cppblog.com/gtwdaizi/category/6439.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 08 Jun 2010 23:36:34 GMT</lastBuildDate><pubDate>Tue, 08 Jun 2010 23:36:34 GMT</pubDate><ttl>60</ttl><item><title>blackberry--黑莓联网开发各种联网模板型[转载]</title><link>http://www.cppblog.com/gtwdaizi/articles/117352.html</link><dc:creator>郭天文</dc:creator><author>郭天文</author><pubDate>Tue, 08 Jun 2010 01:42:00 GMT</pubDate><guid>http://www.cppblog.com/gtwdaizi/articles/117352.html</guid><wfw:comment>http://www.cppblog.com/gtwdaizi/comments/117352.html</wfw:comment><comments>http://www.cppblog.com/gtwdaizi/articles/117352.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gtwdaizi/comments/commentRss/117352.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gtwdaizi/services/trackbacks/117352.html</trackback:ping><description><![CDATA[<p>最近开发黑莓的应用程序，牵涉到联网部分。在这过程中遇到了很多问题，也查找了很多资料。很有感触。于是总结了一份黑莓联网开发中的各种方式，只是一个模板性的。在开发过程中只有具体问题具体分析了。我也是为了方便不容易忘记，所以写进博客。希望能记住：</p>
<p>黑幕目前联网主要有几种方式：</p>
<p>1、WAP 2.0</p>
<p>2、WAP1.0/1.1</p>
<p>3、Wi-Fi</p>
<p>4、BlackBerry Mobile Data Service</p>
<p>5、Direct TCP</p>
<p>6、BlackBerry Internet Service</p>
<p>下面简单说一下几种代码的接口，不一定是必须的，不过如果连不起网的时候可以尝试一下，这事官方网址一个视频找到的官方代码，仅供参考：</p>
<p>1、Using WAP 2.0:</p>
<p>&nbsp; - Append ";ConnectionUID=xyz" with corresponding UID for WAP 2.0 Service Book(WPTCP)</p>
<p>&nbsp; 需要在联网的url后面跟接";ConnectionUID=xyz",xyz为WAP2.0 (WPTCP) 绑定的UID,例如：</p>
<p>&nbsp; HttpConncetion conn = (HttpConncetion) Connector.open("<a href="http://www.blackberry.com;deviceside=true;connectionuid=wap2/">http://www.blackberry.com;deviceside=true;ConnectionUID=WAP2</a>");</p>
<p>2、Using WAP 1.0/1.1:</p>
<p>&nbsp;- Append ";WapGatewayIP=127.0.0.1;WapGatewayPort=9201;WapGatewayAPN=myapn.net"</p>
<p>&nbsp; 需要在联网的后面跟接"WapGatewayIP=127.0.0.1;WapGatewayPort=9201;WapGatewayAPN=myapn.net",例如：</p>
<p>HttpConnection conn = (HttpConnection) Connector.open("<a href="http://www.blackberry.com;deviceside=true;wapgatewayip=195.115.025.129;wapgatewayport=9201;wapgatewayapn=wapsfr/">http://www.blackberry.com;deviceside=true;WapGatewayIP=195.115.025.129;WapGatewayPort=9201;WapGatewayAPN=wapsfr</a>");</p>
<p>3、Using Wi-Fi:</p>
<p>&nbsp;&nbsp; - Append ";interface=wifi" for explicit connections</p>
<p>&nbsp; - Wi-Fi connectivity happens automatically for BlackBerry MDS and BlackBerry Internet Service-B connections</p>
<p>&nbsp; 需要为你的详细连接跟接";interface=wifi",例如：</p>
<p>&nbsp;HttpConnection conn =&nbsp; (HttpConncetion) Connector.open("<a href="http://www.blackberry.com;interface=wifi/">http://www.blackberry.com;interface=wifi</a>");</p>
<p>4、Using BlackBerry MDS</p>
<p>&nbsp; - Append ";deviceside=false" for expilit connections</p>
<p>&nbsp; - Default connection is no parameters specified</p>
<p>&nbsp; </p>
<p>&nbsp; Default Connection Example：</p>
<p>&nbsp; HttpConncetion conn = (HttpConncetion) Connector.open("<a href="http://www.blackberry.com/">http://www.blackberry.com</a>");</p>
<p>&nbsp; Explicit MDS Connection - Automatic Service Book Selection:</p>
<p>&nbsp; HttpConncetion conn = (HttpConncetion) Connector.open("<a href="http://www.blackberry.com;deviceside=false/">http://www.blackberry.com;deviceside=false</a>");</p>
<p>&nbsp; </p>
<p>&nbsp; Explicit MDS Connection - Manual Service Book Selection:</p>
<p>&nbsp; HttpConncetion conn = (HttpConncetion) Connector.open("<a href="http://www.blackberry.com;deviceside=false;connectionuid=s109234/">http://www.blackberry.com;deviceside=false;ConnectionUID=S109234</a>");</p>
<p>5、Using Direct TCP</p>
<p>&nbsp; - Requires some intelligence by the user or developer to specify APN </p>
<p>&nbsp; - Append ";deviceside=true"</p>
<p>&nbsp; - More and more carriers hardcode APN info in the branding data</p>
<p>&nbsp; a)&nbsp;&nbsp; Automatic APN Selection:</p>
<p>&nbsp; HttpConncetion conn = (HttpConncetion) Connector.open(<a href="http://www.blackberry.com;deviceside=true/">http://www.blackberry.com;deviceside=true</a>);</p>
<p>&nbsp; b)&nbsp;&nbsp; Manual APN Secletion:</p>
<p>&nbsp; HttpConncetion conn = (HttpConncetion) Connector.open("<a href="http://www.blackberry.com;deviceside=true;apn=internet.com/">http://www.blackberry.com;deviceside=true;apn=internet.com</a>");</p>
<p>&nbsp; c)&nbsp;&nbsp; Manual APN Selection with Authentication:</p>
<p>&nbsp;&nbsp;&nbsp; HttpConncetion conn = (HttpConncetion) Connector.open("<a href="http://www.blackberry.com;deviceside=true;apn=wap.cingular;TunnelAuthUsername=WAP@cingulargprs.com;tunnelauthpassword=cingular1/">http://www.blackberry.com;deviceside=true;apn=wap.cingular;TunnelAuthUsername=WAP@CINGULARGPRS.COM;TunnelAuthPassword=CINGULAR1</a>");</p>
<p>&nbsp; 另外附加一种socket的方式：</p>
<p>&nbsp; d)&nbsp; (StreamConnection) Connector.open("socket://testserver:600;deviceside=true");</p>
<p>6、Using BlackBerry Internet Service</p>
<p>&nbsp;&nbsp; 这个好像需要是Blackberry联盟成员，需要批准，对这个相关信息可以见：<a href="http://na.blackberry.com/eng/partners/alliance.jsp">http://na.blackberry.com/eng/partners/alliance.jsp</a></p>
<p>&nbsp; 以上就是简单的总结了这些。具体的问题只有开发中具体分析。欢迎莓友们讨论。</p>
<p>注：以上参数之间需要用分号隔开，附带一份以上出现的一些参数解释：</p>
<p>Parameter<br>&nbsp;Description<br>&nbsp;<br>WapGatewayIP<br>&nbsp;IP address of the gateway.<br>&nbsp;<br>WapGatewayAPN<br>&nbsp;APN for General Packet Radio Service (GPRS) networks only. For testing purposes, you can use rim.net.gprs<br>&nbsp;<br>WapGatewayPort<br>&nbsp;Gateway port value. If port 9203 is specified, Wireless Transport Layer Security (WTLS) is used unless WapEnableWTLS=false is specified.<br>&nbsp;<br>WapSourceIP<br>&nbsp;IP address of the source.<br>&nbsp;<br>WapSourcePort<br>&nbsp;Source port value.<br>&nbsp;<br>TunnelAuthUsername<br>&nbsp;User name for APN session, when Password Authentication Protocol (PAP) or Challenge Handshake Application Protocol (CHAP) authentication is used.<br>&nbsp;<br>TunnelAuthPassword<br>&nbsp;Password for APN session, when PAP or CHAP authentication is used.<br>&nbsp;<br>WapEnableWTLS<br>&nbsp;Explicitly turns on or turns off WTLS. If this parameter is not specified, WTLS is used by default for connections to port 9203.<br>&nbsp;</p>
<p>&nbsp;</p>
<p>本文来自CSDN博客，转载请标明出处：<a href="http://blog.csdn.net/lyerliu/archive/2010/02/01/5277446.aspx">http://blog.csdn.net/lyerliu/archive/2010/02/01/5277446.aspx</a></p>
<img src ="http://www.cppblog.com/gtwdaizi/aggbug/117352.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gtwdaizi/" target="_blank">郭天文</a> 2010-06-08 09:42 <a href="http://www.cppblog.com/gtwdaizi/articles/117352.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>手机开发平台指南、教程和资料介绍[转载]</title><link>http://www.cppblog.com/gtwdaizi/articles/47094.html</link><dc:creator>郭天文</dc:creator><author>郭天文</author><pubDate>Tue, 15 Apr 2008 01:31:00 GMT</pubDate><guid>http://www.cppblog.com/gtwdaizi/articles/47094.html</guid><wfw:comment>http://www.cppblog.com/gtwdaizi/comments/47094.html</wfw:comment><comments>http://www.cppblog.com/gtwdaizi/articles/47094.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gtwdaizi/comments/commentRss/47094.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gtwdaizi/services/trackbacks/47094.html</trackback:ping><description><![CDATA[<table style="TABLE-LAYOUT: fixed" height="100%" cellSpacing=0 cellPadding=0 width="100%" border=0>
    <tbody>
        <tr>
            <td align=left width="40%"><font color=red><strong><font color=red><strong>楼主</strong></font> </strong></font><strong>Posted:</strong>2008-3-22 10:42:55&nbsp;&nbsp;<a title=已记录 href="http://www.imtinewlife.com/BBS/Manage.asp?menu=lookip&amp;ThreadID=412&amp;PostID=865"><img src="http://www.imtinewlife.com/BBS/images/ip.gif" border=0></a></td>
            <td align=right width="60%" height=1><a class=TextButton title="查看 jacky 的个人资料" href="http://www.imtinewlife.com/BBS/Profile.asp?UserName=jacky"><u><font color=#0000ff>信息</font></u></a> <a class=TextButton title="查看 jacky 的个人共享空间" href="http://www.imtinewlife.com/BBS/Blog.asp?BlogUserName=jacky"><u><font color=#0000ff>日志</font></u></a> <a class=TextButton title="发送短讯息给 jacky" href="http://www.imtinewlife.com/BBS/MyFriend.asp?menu=Post&amp;incept=jacky"><u><font color=#0000ff>短讯</font></u></a> <a class=TextButton title="发送电邮给 jacky" href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#108;&#105;&#117;&#113;&#105;&#97;&#110;&#106;&#107;&#64;&#50;&#49;&#99;&#110;&#46;&#99;&#111;&#109;"><u><font color=#0000ff>邮箱</font></u></a> <a class=TextButton title="把 jacky 加入好友" href="http://www.imtinewlife.com/BBS/MyFriend.asp?menu=add&amp;UserName=jacky"><u><font color=#0000ff>好友</font></u></a> <a class=TextButton title="搜索 jacky 发表过的所有主题" href="http://www.imtinewlife.com/BBS/ShowBBS.asp?menu=5&amp;UserName=jacky"><u><font color=#0000ff>搜索</font></u></a> <a class=TextButton title=引用回复这个帖子 href="http://www.imtinewlife.com/BBS/ReTopic.asp?ThreadID=412&amp;PostID=865&amp;quote=True"><u><font color=#0000ff>引用</font></u></a> <a class=TextButton title=回复帖子 href="http://www.imtinewlife.com/BBS/ReTopic.asp?ThreadID=412&amp;PostID=865"><u><font color=#0000ff>回复</font></u></a> </td>
        </tr>
        <tr vAlign=top height=1>
            <td colSpan=2>
            <hr width="100%" SIZE=1>
            </td>
        </tr>
        <tr>
            <td vAlign=top colSpan=2 height="100%">
            <div style="OVERFLOW: auto; WIDTH: 100%">
            <div style="OVERFLOW: auto; WIDTH: 100%"><br>手机可分为智能手机开发和feather phone手机。开发平台可分为开放式平台和封闭式平台，开放式平台包括symbian、windows mobile、linux、Android、BlackBerry、j2me、brew等，支持手机应用程序通过OTA下载和安装；封闭式平台包括MTK、展讯、TI、飞利浦等。下面分别介绍。 <br>1． Symbian： <br>Symbian平台为目前智能手机市场的老大，智能手机全球市场占70%以上，在欧洲和亚洲占绝对优势，只是在美国市场份额少得可怜，希望今年nokia在美国发力，赶上其它智能手机。根据UI风格的不同，Symbian分为s60和UIQ两个平台，其中nokia使用s60平台，索爱和moto采用UIQ平台。Symbian平台由于发展时间较长，又是市场老大，目前中文资料也较多，不像几年前刚接触时只有英文资料。以下书籍值得推荐： <br>《SYMBIAN OS软件开发开发--应用C++开发智能手机应用程序入门》（其中UI部分为UIQ平台）， <br>《Series 60 应用程序开发》（以s60平台为主，重点推荐） <br>《Symbian OS C++手机应用开发 （第2卷）》 <br>另外今年将出来一本有关uiq3.0的新书，值得期待。 <br>关于symbian的开发网站和论坛： <br>诺基亚论坛：最好的symbian论坛， <br><a href="http://discussion.forum.nokia.com/forum/forumdisplay.php?f=6" target=_blank><u><font color=#0000ff>http://discussion.forum.nokia.com/forum/forumdisplay.php?f=6</font></u></a>，其中还有中文论坛。 <br>UIQ官方论坛：<a href="http://developer.uiq.com/" target=_blank><u><font color=#0000ff>http://developer.uiq.com/</font></u></a> <br>Symbian公司中文论坛：<a href="http://developer.symbian.com/forum/forum.jspa?forumID=37" target=_blank><u><font color=#0000ff>http://developer.symbian.com/forum/forum.jspa?forumID=37</font></u></a> <br>NewLC网站：<a href="http://www.newlc.com/" target=_blank><u><font color=#0000ff>http://www.newlc.com/</font></u></a> <br>索爱uiq官方论坛：<a href="http://developer.sonyericsson.com/category.jspa?categoryID=3" target=_blank><u><font color=#0000ff>http://developer.sonyericsson.com/category.jspa?categoryID=3</font></u></a> <br>索爱uiq中文论坛<a href="http://developer.sonyericsson.com/forum.jspa?forumID=133" target=_blank><u><font color=#0000ff>http://developer.sonyericsson.com/forum.jspa?forumID=133</font></u></a> <br><br>2．windows mobile： <br>智能手机全球市场中windows mobile占12%左右市场份额。开发与windows平台类似，所以熟悉windows开发的能很快上手。目前没有较好的针对windows mobile的书，经典书籍《Windows 程序设计（第5版）》对于开发win32程序依然是最好的，经典的书就是牛啊！虽然pocket pc支持MFC，但smartphone不支持，所以为了更好的移植，用win32开发较好。由本书做基础，再参考windows mobile的sdk以及示例代码，应该能很快上手。 <br>关于windows mobile的开发网站和论坛： <br>Windows mobile中文社区：<a href="http://www.winbile.net/BBS/" target=_blank><u><font color=#0000ff>http://www.winbile.net/BBS/</font></u></a> <br>Pocket pc forum：<a href="http://www.windowsmobiledn.com/forum" target=_blank><u><font color=#0000ff>http://www.windowsmobiledn.com/forum</font></u></a>/ <br>微软官方网站：<a href="http://www.microsoft.com/windowsmobile/developers/default.mspx" target=_blank><u><font color=#0000ff>http://www.microsoft.com/windowsmobile/developers/default.mspx</font></u></a> <br><br>3． linux： <br>智能手机全球市场中linux手机仅占可怜的4.4%市场份额。原来moto还出过不少linux手机，如A768、A1200、E680、E2、E6、V8等，07年8月份还信誓旦旦预测60%手机采用Linux OS，但moto后来回购了UIQ的股份，又与微软合作，还加入了google的开放手机联盟，看来要抛弃自己的linux平台了。另外，moto的策略是linux+j2me的模式，虽然采用linux os，但并不对外开放linux的sdk，只有和moto合作的厂家才能获得native linux sdk，所以导致目前linux手机开发的资料和论坛较少。虽然有民间linux高手破解了moto的linux的sdk，可以开发native linux的程序，但native linux的程序不能直接安装在moto的linux手机上，还必须安装一个插件，这对普通用户又是难以跨越的一个门槛。所以个人觉得native linux手机的开发将走向末路。大部分linux手机的ui开发都是基于QT，关于QT开发，可参考《C++ GUI Qt3编程》、《精通Qt4编程》，如果有moto官方的sdk，参考API文档以及一些示例代码，将可以较快上手，如果没有官方的sdk，那就要话很长时间hack了。目前没有很好的关于linux手机开发的论坛，个人推荐陈罡的博客<a href="http://www.cublog.cn/u/26691/" target=_blank><u><font color=#0000ff>http://www.cublog.cn/u/26691/</font></u></a>，内有moto a1200开发随笔，对于熟悉和了解手机native linux开发有很大帮助。 <br><br>4． MTK： <br>MTK最近几年异军突起，近70%的国产手机采用MTK的芯片和平台，黑手机更几乎是MTK的代名词。国内厂家只有夏新没有采用MTK的方案。MTK的模式名为&#8220;Turn-key&#8221;的全面解决方案，厂商采用了这个方案，只需要加一个手机外壳即可成品——这能大大降低了出货时间，一般厂家只修改界面、铃声以及增加一些应用软件。有关MTK平台的介绍，见环球企业家杂志的文章&#8220;国产手机操纵者联发科的秘密&#8221;<a href="http://www.cnbeta.com/articles/45580.htm" target=_blank><u><font color=#0000ff>http://www.cnbeta.com/articles/45580.htm</font></u></a>。 <br>MTK是私有平台，目前没有书籍介绍MTK平台，所以只能从网上查找MTK的资料。以下资料大家可以从网上获得，对于了解MTK很有帮助：《mtk 训练课程.pdf》、《MMI Platform Source Code Training.pdf》主要是MMI界面开发介绍、《MMI Resource &amp; Customization Tool.pdf》MMI资源工具介绍。 <br>最近，MTK平台ＭＭＩ设计牛人ＦＵＧＵＩ自己编写了一本有关mtk平台MMI开发的实例教程，书名为《MMI实例培训教程》（本书大家通过Google下载到），此书深入浅出，全面的介绍了MTK平台MMI开发的各个方面，通过本书，开发人员将能很快进入MTK平台开发领域，实为MTK平台MMI开发的圣经！MTK平台的操作系统为nucleus，有关nucleus的介绍网上有一篇文章《Nucleus实时操作系统分析报告》。MTK平台主要用C语言开发，所以要熟悉MTK开发，首先必须熟悉掌握C语言，MTK的sdk与vc6集成，MMI的各控件和窗口之间通过回调函数实现通讯。 <br>关于MTK的开发网站和论坛： <br>我爱研发网：<a href="http://www.52rd.com/" target=_blank><u><font color=#0000ff>http://www.52rd.com/</font></u></a> 上面几篇文章和书籍都能从本网站找到。 <br>手机研发论坛：<a href="http://www.1mp.cc/bbs/index.asp" target=_blank><u><font color=#0000ff>http://www.1mp.cc/bbs/index.asp</font></u></a> <br><br><br>5． 展讯： <br>展讯平台07年也发展很快，利用MTK下半年PA放大器缺货的机会，趁势而入，抢走mtk很多市场份额。展讯的开发模式和MTK的很类似，基本也是给厂家提供整体解决方案，与MTK的差别见此链接<a href="http://www.chinabyte.com/telecom/267/2507267.shtml" target=_blank><u><font color=#0000ff>http://www.chinabyte.com/telecom/267/2507267.shtml</font></u></a>。国内主要是夏新、联想、文泰等采用展讯平台。展讯平台采用的嵌入式操作系统是threadx，关于threadx的有一本中文书《嵌入式实时操作系统的多线程计算：基于ThreadX和ARM》。同MTK平台一样，为封闭平台，开发语言为C，开发环境为vc6, MMI的各控件和窗口之间与windows类似通过消息进制实现通讯。另外也没有书籍介绍展讯平台，以下资料值得推荐： <br>《Spreadtrum_SAP.ppt》 <br>《MMK_Kernel软件API接口说明书.doc》 <br>《MMK_Window_Table开发说明书.doc》 <br>《展讯平台MMI窗口开发说明书.pdf》 <br>《展讯手机平台软件简介.pdf》 <br>关于展讯的开发网站和论坛： <br>我爱研发网：<a href="http://www.52rd.com/" target=_blank><u><font color=#0000ff>http://www.52rd.com/</font></u></a> 上面几篇文章都能从本网站找到。 <br>手机研发论坛：<a href="http://www.1mp.cc/bbs/index.asp" target=_blank><u><font color=#0000ff>http://www.1mp.cc/bbs/index.asp</font></u></a> <br><br>6． J2ME： <br>J2ME平台为手机上运用最广泛的开放式平台，绝大部分手机均已经支持J2ME了。关于J2ME的书籍数不胜数，个人推荐以下书籍： <br>《j2me技术手册》 <br>《J2ME开发大全》 <br>《J2ME移动应用程序开发》 <br>关于J2ME的开发网站和论坛： <br>J2ME开发网：<a href="http://www.j2medev.com/Index.html" target=_blank><u><font color=#0000ff>http://www.j2medev.com/Index.html</font></u></a> <br>中国Java手机网：<a href="http://www.cnjm.net/" target=_blank><u><font color=#0000ff>http://www.cnjm.net/</font></u></a> <br>以及各手机厂商的官方java论坛 <br><br>7． Brew <br>Brew 的全称是无线二进制运行时环境。Brew平台是高通公司开发的，从无线应用程序开发、设备配置、应用程序分发以及计费和支付的完整端到端解决方案中的无线应用程序开发部分。目前绝大部分CDMA手机都支持Brew平台。学习Brew平台，首先需要熟悉c语言。学习步骤和方法可参考&#8221; BREW高手之路－解析BREW学习过程&#8221;。 <br>学习书籍： <br>《深入BREW手机游戏开发》 <br>《BREW 技术开发与应用》 <br>这些书虽然不够深入，但对于入门还是可以参考的。 <br>关于Brew的开发网站和论坛： <br>Brew官方论坛：<a href="http://brewforums.qualcomm.com/index.php" target=_blank><u><font color=#0000ff>http://brewforums.qualcomm.com/index.php</font></u></a> <br><br>8． Blackberry，Android，iPhone <br>黑莓公司BlackBerry手机和Google的Android手机均只支持java开发。苹果的iPhone不支持第3方开发，只能开发网页，据说将来开放sdk，值得期待。 <br>BlackBerry的开发网站和论坛： <br>BlackBerry开发者指南：<a href="http://www.cnblogs.com/confach/category/36451.html" target=_blank><u><font color=#0000ff>http://www.cnblogs.com/confach/category/36451.html</font></u></a>BlackBerry官方网站：<a href="http://na.blackberry.com/eng/developers/community.jsp" target=_blank><u><font color=#0000ff>http://na.blackberry.com/eng/developers/community.jsp</font></u></a><a href="http://bbs.maxpda.com/forum-184-1.html" target=_blank><u><font color=#0000ff>http://bbs.maxpda.com/forum-184-1.html</font></u></a> <br>Android的开发网站和论坛： <br><a href="http://www.androiddev.net.cn/bbs/" target=_blank><u><font color=#0000ff>http://www.androiddev.net.cn/bbs/</font></u></a> <br><a href="http://www.androidin.com/" target=_blank><u><font color=#0000ff>http://www.androidin.com/</font></u></a><a href="http://www.androidcn.net/" target=_blank><u><font color=#0000ff>http://www.androidcn.net/</font></u></a> <br>iPhone的开发网站和论坛： <br>一群苹果fans成立的网站：<a href="http://apple4.us/" target=_blank><u><font color=#0000ff>http://apple4.us/</font></u></a> <br><a href="http://bbs.maxpda.com/forum-190-1.html" target=_blank><u><font color=#0000ff>http://bbs.maxpda.com/forum-190-1.html</font></u></a> <br><a href="http://lordhong.javaeye.com/blog/153315" target=_blank><u><font color=#0000ff>http://lordhong.javaeye.com/blog/153315</font></u></a> <br><a href="http://lordhong.javaeye.com/blog/152774" target=_blank><u><font color=#0000ff>http://lordhong.javaeye.com/blog/152774</font></u></a> <br><br>9． 其它Feather phone平台 <br>其它feather phone平台，如TI、飞利浦、英飞凌（Infineon）、飞思卡尔（Freescale）、Broadcom、Skyworks等平台，由于平台私有，并且不提供第三方sdk，所以也没有相关资料和文档，希望有了解的朋友介绍一下。</div>
            </div>
            </td>
        </tr>
    </tbody>
</table>
<img src ="http://www.cppblog.com/gtwdaizi/aggbug/47094.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gtwdaizi/" target="_blank">郭天文</a> 2008-04-15 09:31 <a href="http://www.cppblog.com/gtwdaizi/articles/47094.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[BlackBerry] 应用程序开发者指南 第一卷：基础--第1章 BlackBerry API </title><link>http://www.cppblog.com/gtwdaizi/articles/44950.html</link><dc:creator>郭天文</dc:creator><author>郭天文</author><pubDate>Thu, 20 Mar 2008 06:44:00 GMT</pubDate><guid>http://www.cppblog.com/gtwdaizi/articles/44950.html</guid><wfw:comment>http://www.cppblog.com/gtwdaizi/comments/44950.html</wfw:comment><comments>http://www.cppblog.com/gtwdaizi/articles/44950.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gtwdaizi/comments/commentRss/44950.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gtwdaizi/services/trackbacks/44950.html</trackback:ping><description><![CDATA[<h2>&nbsp;</h2>
<div>
<p>作者:<a href="http://confach.cnblogs.com/">Confach</a> 发表于March 19,200614:59 pm <br><a href="http://confach.cnblogs.com/articles/387892.html">版权信息</a>:可以任意转载, 转载时请务必以超链接形式标明文章<a href="http://www.cnblogs.com/confach/articles/353363.html">原始出处</a>和作者信息. <br><a title=http://www.cnblogs.com/confach/articles/353363.html href="http://www.cnblogs.com/confach/articles/353363.html">http://www.cnblogs.com/confach/articles/353363.html</a></p>
<hr>
<p><a title=http://www.cnblogs.com/confach/articles/353363.html href="http://www.cnblogs.com/confach/articles/353363.html"><br></a></p>
<p align=right><span>1</span></p>
<h1><a name=_Toc125106905><span>第</span><span>1</span></a><span><span>章</span><span>BlackBerry API</span></span></h1>
<table cellSpacing=0 cellPadding=0 border=0>
    <tbody>
        <tr>
            <td vAlign=top width=568>
            <p><span>使用</span><span> <a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a> API<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></p>
            <p><span>在</span><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span><span>设备上使用</span><span>Java<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></p>
            <p><span>应用程序控制</span></p>
            </td>
        </tr>
    </tbody>
</table>
<h2><a name=_Toc125106906><span>使用</span><span>BlackBerry API</span></a></h2>
<p align=left><span>&nbsp;<a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a> Java </span><span>开发环境（简称</span><span>JDE</span><span>）的设计提供了一套完整的</span><span>API</span><span>和工具</span><span>,</span><span>来开发在</span><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span><span>设备上运行的</span><span>Java</span><span>应用程序。</span></p>
<p align=left><span>&nbsp;<a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span><span>设备包含了一个基于</span><span>CLDC1.1</span><span>以及</span><span>MIDP</span><span>的</span><span>Java ME</span><span>（</span><span>Java Platform Micro Edition</span><span>）运行时环境。</span><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a> API</span><span>扩展提供了额外的功能</span><span>,</span><span>并且和</span><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span><span>集成得更紧密。</span></p>
<p align=left><span><span>&nbsp;&nbsp; </span></span><span>你可以在你的应用程序中使用</span><span>CLDC/MIDP</span><span>和</span><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a> API</span><span>。为了能让你的应用程序在任何采用</span><span>JTWI</span><span>（</span><span>Java Technology for Wireless Industry</span><span>，</span><span>无线领域的</span><span>Java</span><span>技术</span><span>）的设备上运行，你仅需要使用</span><span>CLDC</span><span>和</span><span>MIDP API</span><span>来编写标准的</span><span>MIDP</span><span>应用程序。</span></p>
<p align=left><span><span>&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp;<img height=337 alt="" src="http://www.cnblogs.com/images/cnblogs_com/confach/BlackBerry_Component.GIF" width=597></span> &lt;!--[if !vml]--&gt;&lt;!--[endif]--&gt;</span></p>
<p align=center><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span><span>手持设备软件组件</span></p>
<p><span>为了查看</span><em><span>API </span></em><em><span>参考。</span></em><span>点击任务栏的<strong>开始</strong></span><span>&gt;</span><strong><span>程序</span></strong><span>&gt;<strong>Research In Motion&gt;BlackBerry JDE 4.1.0&gt;API Java Doc Reference</strong></span></p>
<h3><a name=_Toc125106907><span>BlackBerry API</span></a></h3>
<p><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a> API</span><span>为访问</span><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span><span>特性提供了用户界面，本地化，网络，以及其他功能。</span></p>
<p><span><span>&nbsp;<img height=31 alt="" src="http://www.cnblogs.com/images/cnblogs_com/confach/bb_doc_info.GIF" width=34></span> &lt;!--[if !vml]--&gt;&lt;!--[endif]--&gt;</span><span>注：访问某些特性，如高级的加密，同步，以及消息的额外</span><span>API</span><span>，是受限制的。为了使用这些</span><span>API,</span><span>你必须收到专门来自</span><span>Research In Motion</span><span>的认证中心编写的许可。为了得到更多信息，参看</span><span> <em><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a> </span></em></span><em><span>应用程序开发者指南第一卷：基础</span></em><em><span> </span></em><em><span>第二卷：高级</span></em><span>。</span></p>
<p><span>&nbsp;</span></p>
<table cellSpacing=0 cellPadding=0 border=1>
    <thead>
        <tr>
            <td vAlign=top width=248>
            <p><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a> API </span><span>包</span></p>
            </td>
            <td vAlign=top width=320>
            <p><span>描述</span></p>
            </td>
            <td width=8>
            <p>&nbsp;</p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=248>
            <p><span>net.rim.blackberry.api.browser</span></p>
            </td>
            <td vAlign=top width=320>
            <p><span>应用程序可以调用</span><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span><span>浏览器，为了得到更多信息，参看</span><em><span> <a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a> </span></em><em><span>应用程序开发者指南</span> </em><em><span>第二卷：高级。</span></em></p>
            </td>
            <td width=8>
            <p>&nbsp;</p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=248>
            <p><span>net.rim.blackberry.api.invoke</span></p>
            </td>
            <td vAlign=top width=320>
            <p><span>允许应用程序调用</span><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span><span>应用程序，如任务，消息，备忘录以及电话。为了得到更多信息，<em>参看</em></span><em><span> <a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a> </span></em><em><span>应用程序开发者指南</span> </em><em><span>第二卷：高级。</span></em></p>
            </td>
            <td width=8>
            <p>&nbsp;</p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=248>
            <p><span>net.rim.blackberry.api.mail</span></p>
            </td>
            <td vAlign=top width=320>
            <p><span>定义了必要的功能来将内部的</span><span>RIM</span><span>消息系统对象组件转化为和</span><span>Mail API</span><span>兼容并可移植的对象。同时也提供了发送，接收，以及访问消息的功能。为了得到更多信息，<em>参看</em></span><em><span> <a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a> </span></em><em><span>应用程序开发者指南</span> </em><em><span>第二卷：高级</span></em></p>
            </td>
            <td width=8>
            <p>&nbsp;</p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=248>
            <p><span>net.rim.blackberry.api.mail.event</span></p>
            </td>
            <td vAlign=top width=320>
            <p><span>定义了消息事件以及监听者（</span><span>Listener</span><span>）接口来管理邮件事件。为了得到更多信息，<em>参看</em></span><em><span> <a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a> </span></em><em><span>应用程序开发者指南</span> </em><em><span>第二卷：高级</span></em><strong></strong></p>
            </td>
            <td width=8>
            <p>&nbsp;</p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=248>
            <p><span>net.rim.blackberry.api.menuitem </span></p>
            </td>
            <td vAlign=top width=320>
            <p><span>允许应用程序在</span><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span><span>的应用程序例如地址本，日历以及消息中增加客户定制的菜单项，为了得到更多信息，参看</span><em><span> <a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a> </span></em><em><span>应用程序开发者指南</span> </em><em><span>第二卷：高级</span></em></p>
            </td>
            <td width=8>
            <p>&nbsp;</p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=248>
            <p><span>net.rim.blackberry.api.options</span></p>
            </td>
            <td vAlign=top width=320>
            <p><span>允许应用程序在</span><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span><span>设备的选项中增加选项条目。为了得到更多信息，参看</span><em><span> <a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a> </span></em><em><span>应用程序开发者指南</span> </em><em><span>第二卷：高级</span></em></p>
            </td>
            <td width=8>
            <p>&nbsp;</p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=248>
            <p><span>net.rim.blackberry.api.pdap</span></p>
            </td>
            <td vAlign=top width=320>
            <p><span>允许应用程序和</span><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span><span>个人信息管理（</span><span>PIM</span><span>）交互，</span><span>PIM</span><span>包括地址本，任务，日历。</span><span>MIDP</span><span>包</span><span>javax.microedition.pim</span><span>提供了类似的功能。为了得到更多信息，参看</span><em><span> <a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a> </span></em><em><span>应用程序开发者指南</span> </em><em><span>第二卷：高级</span></em></p>
            </td>
            <td width=8>
            <p>&nbsp;</p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=248>
            <p><span>net.rim.blackberry.api.phone</span></p>
            </td>
            <td vAlign=top width=320>
            <p><span>提供了访问电话应用程序的高级特性。为了得到更多信息，参看</span><em><span> <a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a> </span></em><em><span>应用程序开发者指南</span> </em><em><span>第二卷：高级</span></em></p>
            </td>
            <td width=8>
            <p>&nbsp;</p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=248>
            <p><span>net.rim.blackberry.api.phone.phonelogs</span></p>
            </td>
            <td vAlign=top width=320>
            <p><span>提供了访问电话呼叫历史记录的功能。为了得到更多信息，参看</span><em><span> <a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a> </span></em><em><span>应用程序开发者指南</span> </em><em><span>第二卷：高级</span></em></p>
            </td>
            <td width=8>
            <p>&nbsp;</p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=248>
            <p><span>net.rim.device.api.bluetooth</span></p>
            </td>
            <td vAlign=top width=320>
            <p><span>允许</span><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span><span>应用程序在一个蓝牙序列端口连接的基础上与打开蓝牙无线技术的设备进行通信。为了得到更多信息，参看</span><span>103</span><span>页的&#8220;<em>使用蓝牙序列端口连接</em></span><span>&#8221;.</span></p>
            </td>
            <td width=8>
            <p>&nbsp;</p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=248>
            <p><span>net.rim.device.api.browser.field</span></p>
            </td>
            <td vAlign=top width=320>
            <p><span>允许程序在界面上显示浏览器的字段。为了得到更多信息，参看</span><em><span> <a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a> </span></em><em><span>应用程序开发者指南</span> </em><em><span>第二卷：高级</span></em></p>
            </td>
            <td width=8>
            <p>&nbsp;</p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=248>
            <p><span>net.rim.device.api.browser.plugin</span></p>
            </td>
            <td vAlign=top width=320>
            <p><span>允许程序增加额外支持的</span><span>MIME</span><span>类型到</span><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span><span>浏览器上。为了得到更多信息，参看</span><em><span> <a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a> </span></em><em><span>应用程序开发者指南</span> </em><em><span>第二卷：高级</span></em></p>
            </td>
            <td width=8>
            <p>&nbsp;</p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=248>
            <p><span>net.rim.device.api.collection</span></p>
            <p><span>net.rim.device.api.collection.util</span></p>
            </td>
            <td vAlign=top width=328 colSpan=2>
            <p><span>为管理数据集合定义了接口和实用类。为了得到更多信息，参看</span><span>13</span><span>页的&#8220;<em>集合</em></span><span>&#8221;.</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=248>
            <p><span>net.rim.device.api.compress</span></p>
            </td>
            <td vAlign=top width=328 colSpan=2>
            <p><span>提供实用类来进行</span><span>GZip</span><span>和</span><span>ZLib</span><span>数据压缩。</span><a title="" href="http://www.cnblogs.com/confach/admin/EditArticles.aspx?postid=353363#_ftn1" name=_ftnref1><span><span><span>&lt;!--[if !supportFootnotes]--&gt;<span><span>[1]</span></span>&lt;!--[endif]--&gt;</span></span></span></a></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=248>
            <p><span>net.rim.device.api.i18n</span></p>
            </td>
            <td vAlign=top width=328 colSpan=2>
            <p><span>提供类来支持</span><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span><span>设备上应用程序的本地化。为了得到更多信息，参看</span><span>13</span><span>页的&#8220;<em>本地化应用程序</em></span><span>&#8221;.</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=248>
            <p><span>net.rim.device.api.io</span></p>
            </td>
            <td vAlign=top width=328 colSpan=2>
            <p><span>提供一个定制的</span><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span><span>类库来管理数据的输入和输出。</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=248>
            <p><span>net.rim.device.api.mime</span></p>
            </td>
            <td vAlign=top width=328 colSpan=2>
            <p><span>提供与</span><span>MIME</span><span>编码的数据流一起工作的类。</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=248>
            <p><span>net.rim.device.api.notification</span></p>
            </td>
            <td vAlign=top width=328 colSpan=2>
            <p><span>提供触发事件的通知以及响应系统以及程序的事件的方法。为了得到更多信息，参看</span><em><span> <a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a> </span></em><em><span>应用程序开发者指南</span> </em><em><span>第二卷：高级</span></em></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=248>
            <p><span>net.rim.device.api.servicebook</span></p>
            </td>
            <td vAlign=top width=328 colSpan=2>
            <p><span>允许程序增加，删除，以及访问服务约定（</span><span>Service Book</span><span>）</span><a title="" href="http://www.cnblogs.com/confach/admin/EditArticles.aspx?postid=353363#_ftn2" name=_ftnref2><span><span><span>&lt;!--[if !supportFootnotes]--&gt;<span><span>[2]</span></span>&lt;!--[endif]--&gt;</span></span></span></a><span>的接口。为了得到更多信息，参看</span><em><span> <a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a> </span></em><em><span>应用程序开发者指南</span> </em><em><span>第二卷：高级</span></em></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=248>
            <p><span>net.rim.device.api.system</span></p>
            </td>
            <td vAlign=top width=328 colSpan=2>
            <p><span>提供访问系统级的功能，包括键盘和滑轮的事件监听者，图像创建和支持，和应用程序控制。</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=248>
            <p><span>net.rim.device.api.ui</span></p>
            </td>
            <td vAlign=top width=328 colSpan=2>
            <p><span>提供增强的功能来控制</span><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span><span>用户界面，包括屏幕和控件布局管理，控件类型支持，焦点，滚动，以及改变监听者。为了得到更多信息，参看</span><span>39</span><span>页的&#8220;<em>用户界面</em></span><em><span>API</span></em><span>&#8221;.</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=248>
            <p><span>net.rim.device.api.ui.component</span></p>
            </td>
            <td vAlign=top width=328 colSpan=2>
            <p><span>提供了创建</span><span>UI</span><span>程序的界面组件库。为了得到更多信息，参看</span><span>39</span><span>页的&#8220;<em>显示用户界面组件</em></span><span>&#8221;</span><span>。</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=248>
            <p><span>net.rim.device.api.ui.container</span></p>
            </td>
            <td vAlign=top width=328 colSpan=2>
            <p><span>提供创建</span><span>UI</span><span>程序的界面管理组件的库。为了得到更多信息，参看</span><span>49</span><span>页的&#8220;<em>管理用户界面组件</em></span><span>&#8221;</span><span>。</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=248>
            <p><span>net.rim.device.api.ui.text</span></p>
            </td>
            <td vAlign=top width=328 colSpan=2>
            <p><span>提供类对文本字符串进行过滤，包含多种类型的数据，例如电话号码或</span><span>URL</span><span>。</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=248>
            <p><span>net.rim.device.api.util</span></p>
            </td>
            <td vAlign=top width=328 colSpan=2>
            <p><span>提供实用的方法和接口，包含数组，哈希表，字符匹配。</span></p>
            </td>
        </tr>
    </thead>
    <tbody>
    </tbody>
</table>
<h3><a name=_Toc125106908><span>CLDC API</span></a></h3>
<table cellSpacing=0 cellPadding=0 border=1>
    <tbody>
        <tr>
            <td vAlign=top width=215>
            <p><strong><span>CLDC API </span></strong><strong><span>包</span></strong></p>
            </td>
            <td vAlign=top width=361>
            <p><strong><span>描述</span></strong></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=215>
            <p><span>java.io</span></p>
            </td>
            <td vAlign=top width=361>
            <p><span>提供数据流的系统输入和输出。</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=215>
            <p><span>java.lang</span></p>
            </td>
            <td vAlign=top width=361>
            <p><span>提供</span><span>Java</span><span>编程语言基础类。</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=215>
            <p><span>java.lang.ref</span></p>
            </td>
            <td vAlign=top width=361>
            <p><span>提供引用对象类，它们支持一定程度上的垃圾回收。</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=215>
            <p><span>java.util</span></p>
            </td>
            <td vAlign=top width=361>
            <p><span>包含集合类，时间，以及多样的实用类。</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=215>
            <p><span>javax.microedition.io</span></p>
            </td>
            <td vAlign=top width=361>
            <p><span>包含一般连接的类。</span></p>
            </td>
        </tr>
    </tbody>
</table>
<h3><a name=_Toc125106909><span>MIDP API</span></a></h3>
<table cellSpacing=0 cellPadding=0 border=1>
    <tbody>
        <tr>
            <td vAlign=top width=215>
            <p><strong><span>MIDP API </span></strong><strong><span>包</span></strong></p>
            </td>
            <td vAlign=top width=361>
            <p><strong><span>描述</span></strong></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=215>
            <p><span>javax.microedition.lcdui</span></p>
            </td>
            <td vAlign=top width=361>
            <p><span>包含</span><span>MIDP </span><span>用户界面</span><span>API</span><span>，它为</span><span>MIDP</span><span>应用程序的用户界面实现提供了一组特性。</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=215>
            <p><span>javax.microedition.lcdui.game</span></p>
            </td>
            <td vAlign=top width=361>
            <p><span>包含了可以为</span><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span><span>设备进行丰富游戏内容开发的类。</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=215>
            <p><span>javax.microedition.midlet</span></p>
            </td>
            <td vAlign=top width=361>
            <p><span>定义了</span><span>MIDP</span><span>应用程序以及应用程序和应用程序运行的环境之间的交互。</span></p>
            <p><strong><span>注</span></strong><span>：</span><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a> IDE</span><span>可以在启动时，使参数传递到一个</span><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a> CLDC</span><span>应用程序中。</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=215>
            <p><span>javax.microedition.pki</span></p>
            </td>
            <td vAlign=top width=361>
            <p><span>定义了用来验证安全连接信息的证书。</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=215>
            <p><span>javax.microedition.rms</span></p>
            </td>
            <td vAlign=top width=361>
            <p><span>为</span><span>MIDlet</span><span>提供一种机制来存储和取得持久性数据。</span></p>
            </td>
        </tr>
    </tbody>
</table>
<h3><a name=_Toc125106910><span>PDAP API</span></a></h3>
<table cellSpacing=0 cellPadding=0 border=1>
    <tbody>
        <tr>
            <td vAlign=top width=215>
            <p><strong><span>MIDP API </span></strong><strong><span>包</span></strong></p>
            </td>
            <td vAlign=top width=361>
            <p><strong><span>描述</span></strong></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=215>
            <p><span>javax.microedition.pim</span></p>
            </td>
            <td vAlign=top width=361>
            <p><span>.</span><span>提供标准机制来访问</span><span>PIM</span><span>信息。</span></p>
            </td>
        </tr>
    </tbody>
</table>
<h2><a name=_Toc125106911><span>在</span><span>BlackBerry</span></a><span><span>设备上使用</span><span>Java</span></span></h2>
<p align=left><span>编译源代码，打包为<span>.cod</span>文件，并将<span>.cod</span>文件加载到<span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span>设备上，通过虚拟机运行。</span></p>
<p align=left>&lt;!--[if !supportLists]--&gt;<span><span><img height=13 alt=* src="file:///C:/DOCUME~1/CONFAC~1.ZHA/LOCALS~1/Temp/msohtml1/01/clip_image002.gif" width=13><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>&lt;!--[endif]--&gt;<span>注：<span>.cod</span>文件名控制在<span>128</span>字节。</span></p>
<p align=left><span>如<span>CLDC</span>中描述的那样，<span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a> IDE</span>使用一个分割的<span>VM</span>架构。为了降低内存的数量以及<span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span>设备需要的处理能力，部分类加载过程，称为预验证，它在<span>Java</span>代码加载到<span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span>之前发生。在将源代码打包为<span>.cod</span>文件之前，自动验证它。在类加载到<span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span>设备时完成验证的提示。</span></p>
<h3><a name=_Toc125106912><span>限制</span></a></h3>
<p><span>在</span><span>CLDC1.1</span>中描述的那样<span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span>虚拟机有以下限制：</p>
<ul>
    <li>没有对象的析构（<span>finalization</span>）
    <li>没有用户类的加载
    <li>没有反射，因此不支持<span>RMI</span>和<span>Jini</span>网络技术。
    <li>没有原生方法（<span>Native method</span>）
    <li>没有<span>Runtime.exec()</span>执行外部的进程 </li>
</ul>
<h3><a name=_Toc125106913><span>多线程</span></a></h3>
<p><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a> Java</span>环境提供一个真正的多线程环境来运行应用程序。这个环境允许多个应用程序同时运行，允许事件广播到多个应用程序，以及长操作和监听线程在背后运行。</p>
<h3><a name=_Toc125106914><span>持久数据</span></a></h3>
<p><span>存储在闪存中的数据在</span><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span>重新设置之间持久保存。在<span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span>设备上存储数据可以采用以下二种方式中的一种：</p>
<ul>
    <li>使用<span>MIDP</span>记录存储
    <li>使用<span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span>持久模型 </li>
</ul>
<p><span>为了得到关于使用</span><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a> API</span>存储持久数据的更多信息，参看<em><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span>应用程序开发者指南第一卷：基础</em><em><span> </span>第二卷：高级。</em></p>
<h3><a name=_Toc125106915><span>网络通信</span></a></h3>
<p><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a> JDE</span><span>根据</span><span>MIDP2.0</span><span>，</span>实现了网络通信。它提供多种连接选项，包括通过使用<span>HTTP</span>代理连接在公司防火墙背后安全连接的能力。</p>
<p><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a> JDE</span>提供了以下几种连接类型：</p>
<ul>
    <li>流连接（<span>StreamConnection</span>接口，包括： </li>
</ul>
<p><span>1.</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>HTTP </span>连接（<span>HttpConnection</span>接口）</p>
<p><span>2.</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>HTTPS</span>连接（<span>HttpsConnection</span>接口）</p>
<p><span>3.</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>Socket</span>连接（<span>SocketConnection</span>接口）</p>
<p><span>4.</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>安全<span>socket</span>连接（<span>SecureConnection</span>接口）</p>
<p><span>5.</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>序列连接到<span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span>设备的一个通信接口（<span>CoomConnection</span>接口）</p>
<ul>
    <li>数据报连接（<span>DtagramConnection</span>接口），包含 </li>
</ul>
<p><span>1.</span><span> </span><span>UDP</span>数据报连接（<span>UDPDatagramConnection</span>接口）</p>
<p><span>Javax.microedition.io.PushRegistry</span><span> </span>类对<span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span>设备保持了一些进入的连接。</p>
<h3><a name=_Toc125106916><span>流</span></a></h3>
<p><span>&nbsp;BlackBerry JDE</span>为包含在<span>CLDC <a href="http://java.io/" target=_blank>java.io</a></span>包里的流提供了标准的接口和类。</p>
<p><strong><span>MIME</span></strong><strong><span>编码</span></strong></p>
<p align=left><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a> IDE</span><span>提供了<span>MIMEInputStream</span>和<span>MIMEOutputStream</span>类来读写一个<span>MIME</span>编码的数据流。</span></p>
<table cellSpacing=0 cellPadding=0 border=1>
    <tbody>
        <tr>
            <td vAlign=top width=284>
            <p align=left><span>类</span>&nbsp;</p>
            </td>
            <td vAlign=top width=284>
            <p align=left><span>描述</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=284>
            <p align=left><span>MIMEInputStream</span></p>
            </td>
            <td vAlign=top width=284>
            <p align=left><span>实现一个流来读取一个</span><span>MIME</span><span>消息，然后根据</span><span>MIME</span><span>标准格式化和分解这个消息为其部分</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=284>
            <p align=left><span>MIMEOutputStream</span></p>
            <p align=left>&nbsp;</p>
            </td>
            <td vAlign=top width=284>
            <p align=left><span>实现一个输出流，这个流可以根据</span><span>MIME</span><span>标准格式化输出为其部分。本类不会完成实际的数据编码，因此你必须在写入它到本数据流治安编码它。</span></p>
            </td>
        </tr>
    </tbody>
</table>
<p align=left><strong><span>压缩</span></strong></p>
<p align=left><span>在<span>net.rim.device.api.compress</span>包里，<span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a> JDE</span>提供类来读取使用<span>Zlib</span>或者<span>GZip</span>格式压缩的数据流。这些类的行为如<span>Java</span>标准版本里的<span>java.util.zip</span>包里对应的类一样。</span></p>
<p align=left>&nbsp;<span>缺省的，压缩是允许的，<span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span>设备可以写有效的<span>GZip</span>和<span>Zlib</span>文件为这样压缩文件的内容。解压缩同样也是支持的。</span></p>
<h3><a name=_Toc125106917><span>集合</span></a></h3>
<p align=left><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a> IDE </span><span>提供了一组接口和实用类来管理<span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span>设备上的集合。</span></p>
<p align=left><span>net.rim.device.api.collection</span><span>包包含了许多接口，这些接口为某些特定类型数据类型多定义了种类型的集合，例如列表，数组以及映射。这些接口定义了与<span>Java</span>标准版本集合框架的<span>list,set</span>和<span>map</span>接口类似的功能。</span></p>
<p align=left><span>在你自己的类中实现这些接口，或者使用在<span>net.rim.device.api.collection.util</span>包里提供的使用类。</span></p>
<p align=left><strong><span>向量</span></strong><strong></strong></p>
<p align=left>&nbsp;<span>标准的<span>java.util.Vector</span>实现了一个大小可以改变的对象数组。<span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a> JDE</span>也提供了合适的类，例如<span>rim.device.api.util.IntVector</span>和<span>rim.device.api.util.ByteVector</span>来对主要类型进行工作。这些类看起来和普通的<span>Vector</span>一样<span>,</span>除了它们优化了在任何位置上插入的项。相反，如果你使用标准的大<span>Vector</span>作随机的改变，大量的数据会在闪存和<span>RAM</span>移动。</span></p>
<p align=left><strong><span>列表</span></strong></p>
<p align=left><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a> JDE</span><span>在<span>net.rim.device.api.collection.util</span>包里提供了一些类来管理元素的列表</span></p>
<table cellSpacing=0 cellPadding=0 border=1>
    <tbody>
        <tr>
            <td vAlign=top width=284>
            <p align=left><span>类</span></p>
            </td>
            <td vAlign=top width=284>
            <p align=left><span>描述</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=284>
            <p align=left><span>SortedReadableList </span><span>和</span></p>
            <p align=left><span>UnsortedReadableList</span></p>
            </td>
            <td vAlign=top width=284>
            <p align=left><span>使用这些类来维护已排序的和未排序的元素列表。</span><span>SortedReadableList</span><span>类需要你使用一个比较对象来排序列表中的元素。增加到列表中的每一个元素必须被比较对象视为有效的。</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=284>
            <p align=left><span>IntSortedReadableList </span><span>和</span><span>LongSortedReadableList</span></p>
            </td>
            <td vAlign=top width=284>
            <p align=left><span>使用这些类自动排序整形列表或与长整形关键字相关的元素。</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=284>
            <p align=left><span>BigSortedReadableList&nbsp;</span><span>和</span><span> BigUnsortedReadableList</span></p>
            </td>
            <td vAlign=top width=284>
            <p align=left><span>使用这些类来存储大的数据集合（大于</span><span>10</span><span>或者</span><span>15K).</span><span>这些类不会存储数据到一个数组中，因此你可以对大数据集合更有效的做出随意改变。</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=284>
            <p align=left><span>ReadableListCombiner</span></p>
            <p align=left>&nbsp;</p>
            </td>
            <td vAlign=top width=284>
            <p align=left><span>使用这个类合并</span><span>2</span><span>个或者更多的</span><span>ReadableList</span><span>对象并且将他们作为一单个</span><span>ReadableList</span><span>来存储。</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=284>
            <p align=left><span>ReadableListUtil</span></p>
            </td>
            <td vAlign=top width=284>
            <p align=left><span>此类提供一些有用的方法如</span><span>getAt()</span><span>和</span><span>getIndex()</span><span>。我们可以使用此类得到只读列表中的数</span></p>
            </td>
        </tr>
    </tbody>
</table>
<p align=left><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></p>
<p align=left><strong><span>哈希表</span></strong></p>
<p align=left><span>除了</span><span>CLDC</span><span>提供的标准</span><span>java.util.Hashtable&nbsp;</span><span>之外，</span><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a> JDE</span><span>包含了特定的</span><span>net.rim.device.api.collection.util.LongHashtableCollection</span><span>类，这个类提供了使用长整形作为关键字的哈希表集合。一个</span><span>LongHashtableCollection&nbsp;</span><span>对象，写操作作为一个映射（使用一个关键字</span><span>-</span><span>元素对），读操作作为一个映射或者作为一个集合（在集合里作为一个数组来得到数据）。</span><span> </span></p>
<h3><a name=_Toc125106918><span>事件监听者</span></a></h3>
<p align=left><span>事件监听者接口根据事件类型划分。每个应用程序注册来接收特定类型的事件。应用程序事件队列然后调度事件到一个合适的监听者。</span><span><br></span><span>应用程序可以实现合适的监听者接口或者在各种</span><span>Screen</span><span>对象里重写监听者方法。大多数应用程序实现了</span><span>KeyListener&nbsp;</span><span>和</span><span>TrackwheelListener&nbsp;</span><span>接口，而且注册了监听者来接收键盘和滑轮的事件。键盘和滑轮是用户和应用程序交互的主要方式。</span></p>
<p align=left><span>下列的事件监听者放在</span><span>&nbsp;net.rim.device.api.system</span><span>包中</span></p>
<table cellSpacing=0 cellPadding=0 border=1>
    <tbody>
        <tr>
            <td vAlign=top width=284>
            <p align=left><span>监听者接口</span>&nbsp;</p>
            </td>
            <td vAlign=top width=284>
            <p align=left><span>事件类型</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=284>
            <p align=left><span>AlertListener</span></p>
            </td>
            <td vAlign=top width=284>
            <p align=left><span>实现接口来监听</span><span>alert</span><span>事件</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=284>
            <p align=left><span>BluetoothSerialPortListener</span></p>
            </td>
            <td vAlign=top width=284>
            <p align=left><span>实现接口来监听蓝牙序列端口事件，例如打开一个蓝牙序列端口连接作为服务器或者客户端。</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=284>
            <p align=left><span>GlobalEventListener</span></p>
            <p align=left>&nbsp;</p>
            </td>
            <td vAlign=top width=284>
            <p align=left><span>实现接口来监听可以广播到所有应用程序的全局事件。</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=284>
            <p align=left><span>HolsterListener</span></p>
            </td>
            <td vAlign=top width=284>
            <p align=left><span>实现接口来监听套装事件，例如</span><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span><span>设备从套装中插入和移开。</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=284>
            <p align=left><span>IOPortListener</span></p>
            </td>
            <td vAlign=top width=284>
            <p align=left><span>实现接口监听</span><span>I/O</span><span>端口事件。</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=284>
            <p align=left><span>KeyListener</span></p>
            <p align=left>&nbsp;</p>
            </td>
            <td vAlign=top width=284>
            <p align=left><span>实现接口监听键盘事件，例如用户按住或释放一个键。</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=284>
            <p align=left><span>RealTimeClockListener</span></p>
            </td>
            <td vAlign=top width=284>
            <p align=left><span>实现本接口来监听实时时钟事件，例如时钟更新。</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=284>
            <p align=left><span>SerialPortListener</span></p>
            </td>
            <td vAlign=top width=284>
            <p align=left><span>实现此接口监听序列化端口事件，例如对于一个已经和计算机序列端口连接的</span><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span><span>设备，一个在数据正在被发送到序列化端口连接状态中的改变。</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=284>
            <p align=left><span>SystemListener</span></p>
            <p align=left>&nbsp;</p>
            </td>
            <td vAlign=top width=284>
            <p align=left><span>实现此接口来监听系统事件，例如电池状态和电源的改变。</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=284>
            <p align=left><span>TrackwheelListener</span></p>
            </td>
            <td vAlign=top width=284>
            <p align=left><span>实现本接口监听滑轮事件，例如按住滑轮。</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=284>
            <p align=left><span>USBPortListener</span></p>
            </td>
            <td vAlign=top width=284>
            <p align=left><span>实现本接口监听</span><span>USB</span><span>端口事件，例如对于一个已经和计算机</span><span>USB</span><span>端口连接的</span><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span><span>设备，数据正被发送到</span><span>USB</span><span>端口连接的状态。</span></p>
            </td>
        </tr>
    </tbody>
</table>
<h3><a name=_Toc125106919><span>系统功能</span></a></h3>
<p align=left><span>net.rim.device.api.system</span><span>包的类提供了访问<span>Java VM</span>和<span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span>设备上系统资源的能力。</span><span><br></span><strong><span>得到信号信息</span></strong></p>
<p align=left><span>RadioInfo</span><span>提供了访问信号状态信息的能力。</span><span><br></span><strong><span>得到设备信息</span></strong></p>
<p align=left><span>DeviceInfo</span><span>类可以访问下列</span><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span><span>设备的信息：</span></p>
<ul>
    <li>&lt;!--[if !supportLists]--&gt;<span><span></span></span>&lt;!--[endif]--&gt;<span>电池电源和状态</span>
    <li>&lt;!--[if !supportLists]--&gt;<span><span><span> </span></span></span>&lt;!--[endif]--&gt;<span>Blackerry</span><span>设备号</span>
    <li>&lt;!--[if !supportLists]--&gt;<span><span><span> </span></span></span>&lt;!--[endif]--&gt;<span>空闲时间</span>
    <li>&lt;!--[if !supportLists]--&gt;<span><span><span> </span></span></span>&lt;!--[endif]--&gt;<span>平台版本</span> </li>
</ul>
<p align=left><strong><span>系统事件通知用户</span></strong></p>
<p align=left><span>当一个事件，例如一条新消息到来的时候，</span><span>Alert</span><span>类允许应用程序通知用户。</span><span><br></span><strong><span>监视内存使用情况</span></strong></p>
<p align=left><span>使用一个</span><span>Memory</span><span>类提供的静态方法来得到</span><span>VM</span><span>内存使用统计信息。</span></p>
<p align=left><span>Memory</span><span>类很多实用方法返回一个</span><span>MemoryStats</span><span>对象。使用</span><span>MemoryStats</span><span>类提供的实用方法得到</span><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span><span>设备上内存和可用存储空间的详细信息。</span><span><br></span><strong><span>日志事件</span></strong></p>
<p align=left><span>EventLogger</span><span>允许应用程序在持久存储里存储事件日志。</span><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span><span>设备维护事件队列，以至当日志满时，会删除最早的事件，并增加新的事件。用户可以按住</span><strong><span>Alt</span></strong><span>+<strong>lglg</strong></span><strong><span>键</span></strong><span>来查看</span><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span><span>设备的系统事件日志。</span></p>
<h3><a name=_Toc125106920><span>使用工具</span></a></h3>
<p align=left><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a> JDE</span><span>在</span><span>net.rim.device.api.util</span><span>包里提供了一组实用工具，这些类里的许多类提供了和</span><span>Java</span><span>标准版本里相似的功能</span></p>
<ul>
    <li>&lt;!--[if !supportLists]--&gt;<span><span></span></span><span>Comparator</span><span>接口定义了对象集合上的顺序的方法。</span>
    <li>&lt;!--[if !supportLists]--&gt;<span></span><span>Arrays</span><span>提供方法来操作数组，例如排序，查找，以及作为列表来查看数组。</span>
    <li>&lt;!--[if !supportLists]--&gt;<span></span><span>BitSet </span><span>类维护</span><span>bit</span><span>的集合。</span> </li>
</ul>
<p align=left><span>net.rim.device.api.util</span><span>包包含了多个类来管理特定类型的数据集合，包括向量，哈希表，映射以及栈。</span></p>
<h2><a name=_Toc125106921><span>应用程序控制</span></a></h2>
<p align=left><span>应用程序控制允许系统管理员操作以下动作：</span></p>
<ul>
    <li>&lt;!--[if !supportLists]--&gt;<span><span></span></span><span>控制内部连接（公司防火墙背后的连接）</span>
    <li>&lt;!--[if !supportLists]--&gt;<span></span><span>控制外部连接</span>
    <li>&lt;!--[if !supportLists]--&gt;<span></span><span>控制本地连接（序列和</span><span>USB</span><span>连接）</span>
    <li>&lt;!--[if !supportLists]--&gt;<span></span><span>控制访问键存储</span><span>(key store)</span>
    <li>&lt;!--[if !supportLists]--&gt;<span></span><span>控制访问特殊的</span><span>API.</span>
    <li>&lt;!--[if !supportLists]--&gt;<span><span><span> </span></span></span>&lt;!--[endif]--&gt;<span>阻止第三方应用程序存在</span><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span><span>设备上。</span> </li>
</ul>
<p align=left><span>为了得到更多信息，参看</span><em><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a> Enterprise Server Handheld Management Guide</span></em><span>的应用程序管理。</span></p>
<p align=left><span><span>受限制访问的</span></span><span><span>API, </span></span><span><span>类</span></span><span><span>, </span></span><span><span>和方法</span></span><span></span></p>
<p align=left><span>使用了下列受限的</span><span>API,</span><span>类，以及方法的应用程序可以加载到</span><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span><span>设备，但是如果他们访问了一个没有在应用程序控制下得到允许的</span><span>API</span><span>时，在运行时会抛出一个</span><span>ControlledAccessException</span><span>或者</span><span>NoClassDefFoundError</span><span>的异常。</span></p>
<p align=left>&nbsp;</p>
<table cellSpacing=0 cellPadding=0 border=1>
    <tbody>
        <tr>
            <td vAlign=top width=388>
            <p><span>类，方法或</span><span>API</span></p>
            </td>
            <td vAlign=top width=188>
            <p><span>缺省值</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=388>
            <p><span>应用程序菜单项</span><span>API(net.rim.blackberry.api.menuitem)</span></p>
            </td>
            <td vAlign=top width=188>
            <p><span>允许</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=388>
            <p><span>蓝牙</span><span>API (net.rim.device.api.bluetooth)</span></p>
            </td>
            <td vAlign=top width=188>
            <p><span>允许</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=388>
            <p><span>Connector.open() (javax.microedition.io)</span></p>
            </td>
            <td vAlign=top width=188>
            <p><span>提示</span></p>
            <p><strong><span>注</span></strong><span>:</span><span>内部和外部的连接由不同的应用程序控制策略来管理</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=388>
            <p><span>DeviceKeyStore </span><span>类</span><span> (net.rim.device.api.crypto.keystore)</span></p>
            </td>
            <td vAlign=top width=188>
            <p><span>允许</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=388>
            <p><span>EventInjector </span><span>类</span><span> (net.rim.device.api.system)</span></p>
            </td>
            <td vAlign=top width=188>
            <p><span>不允许</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=388>
            <p><span>HTTP Filter API (net.rim.device.api.io.http)</span></p>
            </td>
            <td vAlign=top width=188>
            <p><span>不允许</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=388>
            <p><span>Notification API (net.rim.device.api.notification)</span></p>
            </td>
            <td vAlign=top width=188>
            <p><span>允许</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=388>
            <p><span>电</span><span>API </span><span>和</span> <span>呼叫</span><span>API (</span><span>用来调用电话应用程序</span><span>) (net.rim.blackberry.api.phone </span><span>和</span><span>net.rim.blackberry.api.invoke)</span></p>
            </td>
            <td vAlign=top width=188>
            <p><span>允许</span><span>(</span><span>缺省，用户提示</span><span>)</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=388>
            <p><span>电话日志</span><span>API (net.rim.blackberry.api.phone.phonelogs)</span></p>
            </td>
            <td vAlign=top width=188>
            <p><span>允许</span><span>(</span><span>缺省，用户提示</span><span>)</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=388>
            <p><span>PIM API (net.rim.blackberry.api.pdap)</span></p>
            </td>
            <td vAlign=top width=188>
            <p><span>允许</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=388>
            <p><span>RuntimeStore </span><span>类</span><span> (net.rim.device.api.system)</span></p>
            </td>
            <td vAlign=top width=188>
            <p><span>允许</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=388>
            <p><span>SerialPort </span><span>类</span><span> (net.rim.device.api.system)</span></p>
            </td>
            <td vAlign=top width=188>
            <p><span>允许</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=388>
            <p><span>Session </span><span>类</span><span> (net.rim.blackberry.api.mail)</span></p>
            </td>
            <td vAlign=top width=188>
            <p><span>允许</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=388>
            <p><span>StringPatternRepository </span><span>类</span><span> (net.rim.device.api.util)</span></p>
            </td>
            <td vAlign=top width=188>
            <p><span>允许</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=388>
            <p><span>USBPort </span><span>类</span><span> (net.rim.device.api.system)</span></p>
            </td>
            <td vAlign=top width=188>
            <p><span>允许</span></p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<div>&lt;!--[if !supportFootnotes]--&gt;<br clear=all>
<hr align=left width="33%" SIZE=1>
&lt;!--[endif]--&gt;
<div id=ftn1>
<p><a title="" href="http://www.cnblogs.com/confach/admin/EditArticles.aspx?postid=353363#_ftnref1" name=_ftn1><span><span><span>&lt;!--[if !supportFootnotes]--&gt;<span><span>[1]</span></span>&lt;!--[endif]--&gt;</span></span></span></a><span> </span><span>也许有人会问，为什么</span><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span><span>需要压缩数据，又在什么地方用到呢</span><span>?</span><span>非常简单，就是减小数据所占用的空间</span><span>,</span><span>最好的一个例子是</span><span>BES</span><span>发送邮件，译者注。</span></p>
</div>
<div id=ftn2>
<p><a title="" href="http://www.cnblogs.com/confach/admin/EditArticles.aspx?postid=353363#_ftnref2" name=_ftn2><span><span><span>&lt;!--[if !supportFootnotes]--&gt;<span><span>[2]</span></span>&lt;!--[endif]--&gt;</span></span></span></a><span> </span><span>服务约定，</span><span>Service Book,</span><span>这是</span><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span><span>使用中一个非常重要的概念。功能就是你订阅的服务，例如你订阅了</span><span>MMS</span><span>的功能，它会在你</span><span><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span><span>手持设备上出现。译者注。</span></p>
</div>
</div>
</div>
<img src ="http://www.cppblog.com/gtwdaizi/aggbug/44950.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gtwdaizi/" target="_blank">郭天文</a> 2008-03-20 14:44 <a href="http://www.cppblog.com/gtwdaizi/articles/44950.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>