﻿<?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>BlogJava-Blogger Scott-随笔分类-PALM OS</title><link>http://www.blogjava.net/easywu/category/21936.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 24 Apr 2007 06:39:54 GMT</lastBuildDate><pubDate>Tue, 24 Apr 2007 06:39:54 GMT</pubDate><ttl>60</ttl><item><title>Palm OS Developer Suite的安装和使用 </title><link>http://www.blogjava.net/easywu/archive/2007/04/23/113051.html</link><dc:creator>Scott Wu</dc:creator><author>Scott Wu</author><pubDate>Mon, 23 Apr 2007 14:31:00 GMT</pubDate><guid>http://www.blogjava.net/easywu/archive/2007/04/23/113051.html</guid><wfw:comment>http://www.blogjava.net/easywu/comments/113051.html</wfw:comment><comments>http://www.blogjava.net/easywu/archive/2007/04/23/113051.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/easywu/comments/commentRss/113051.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/easywu/services/trackbacks/113051.html</trackback:ping><description><![CDATA[<div class=postText>
<p>终于买了一个掌上电脑，我又开始关注Palm开发了。Palm上虽然可以安装Java虚拟机，但据我所知绝大多数用户受里的Palm并没有安装，让他们为了用你的一个小软件而装虚拟机不太现实，因此只能用C/C++了。大学里学的C语言一直没有实际应用过，所以经过这么多年也和没学差不多，最近通过看wj给我的书，对C语言又有了重新的认识。不过C语言是面向过程的，我在Java里积累的经验似乎帮不上什么忙，边走边看吧。我在&#8220;Palm开发&#8221;这个分类里记录学习过程，这是第一篇，先介绍一下PODS的使用方法。</p>
<p>如果不熟悉Palm，可以先通过<a href="http://www.it023.com/digital/pda/buy/2004-11-22/32518.html"><u><font color=#000080>这篇文章</font></u></a>了解一下Palm公司的历史和产品。没有掌上电脑也可以开发Palm应用，你可以在模拟器上运行和调试，但我相信把自己编写的应用程序拿在手里的感觉一定不错。</p>
<p>Palm OS Developer Suite(PODS)是PalmSource提供的基于Eclipse的Palm应用程序开发工具，它包含了编译工具、调试工具、模拟器、资源编辑工具和Palm SDK等等，可以在<a href="http://www.palmos.com/dev/tools/dev_suite.html"><u><font color=#000080>这个地址</font></u></a>下载。虽然很多人都使用CodeWarrier开发Palm应用程序，但PODS毕竟是PalmSource官方推出的开发工具，从最初的1.0到现在的1.2版本看来，支持得也不错，加上它是基于我们熟悉的Eclipse平台，更重要的一点它是免费的，所以我还是选择了PODS。当然，用什么工具只能在一定程度上影响开发速度，熟练以后工具间的差别就不那么明显了。</p>
<p>我目前收集到的Palm开发资料主要有这几部分：首先是PalmSource网站上提供的不少pdf文档，对入门者比较有用的是&#8220;Palm OS Companion&#8221;和&#8220;Palm OS Reference&#8221;这两份，还有一个&#8220;UI Guideline&#8221;在设计窗体之前可以看看；另一个是PalmOS的开发者新闻组（news.palmos.com），比较活跃，到现在已经有超过10万个post了；最后就是纸版的图书，我找到的比较新的中文书籍是<a href="http://www.china-pub.com/computers/common/info.asp?id=28379"><u><font color=#000080>《PalmOS编程宝典（第二版）》</font></u></a>，网上可以找到该书第一版的英文电子版，决定购买以前可以先看一下。</p>
<p>PODS的安装很简单：运行你下载的安装文件就可以了（PODS没有Linux的版本，它带的模拟器也是运行在Windows里的，所以我暂时还是要用回Windows了），可能需要你的机器里事先装有JRE。安装以后在&#8220;开始&#8221;菜单里会出现PODS组，其中有两个模拟器（Simulator，注意和Emulator的区别），开发OS5及以下应用程序用Garnet Simulator，开发OS6应用程序用Cobalt Simulator，所以我们一般用前者，它的样子见图1。</p>
<p align=center><img height=508 alt="" src="http://www.blogjava.net/images/blogjava_net/easywu/1pods-garnet-simulator.gif" width=326 border=0><br>图1 Garnet模拟器</p>
<p>如果你用过Eclipse，对PODS的界面也不会感到陌生，基本上PODS就是在Eclipse里加了个透视图（Perspective）和一些向导，PODS 1.2版本带的Eclipse是3.0.1版本，显得有点过时了（也许可以把PODS那部分拿出来放在新版本Eclipse和CDT里，不知道能不能兼容），图2是PODS的运行界面。</p>
<p align=center><img height=525 alt="" src="http://www.blogjava.net/images/blogjava_net/easywu/2pods-perspective.gif" width=700 border=0><br>图2 PODS的运行界面</p>
<p>环境看得差不多了，现在试着创建第一个Palm应用程序吧。在新建向导里创建&#8220;Managed Make 68K C/C++ Project&#8221;，如图3。这种应用程序可以运行在各个版本的Palm上，具有最好的兼容性。</p>
<p align=center><img height=500 alt="" src="http://www.blogjava.net/images/blogjava_net/easywu/3pods-new.gif" width=525 border=0><br>图3 创建Palm应用程序</p>
<p>按下一步按钮，给项目起个名字&#8220;hello&#8221;，见图4。</p>
<p align=center><img height=438 alt="" src="http://www.blogjava.net/images/blogjava_net/easywu/4pods-new2.gif" width=525 border=0><br>图4 给项目起名</p>
<p>按下一步按钮，这里要指定你的应用程序的一些属性，对普通应用程序来说，大部分可以不动，只有&#8220;Creator ID&#8221;这一项必须改为其他值。按正规的流程，我们首先要在palmos网站上注册自己唯一的ID，然后把这个ID填在这里，目的是避免应用程序间的冲突。因为现在只是试验，随便改成&#8220;HELL&#8221;就可以了，见图5。</p>
<p align=center><img height=514 alt="" src="http://www.blogjava.net/images/blogjava_net/easywu/5pods-new3.gif" width=525 border=0><br>图5 修改Creator ID</p>
<p>按下一步按钮，在这一步里PODS提供了一些代码模板，这样可以不用从零开始写每个程序。我们选择&#8220;Sample Application&#8221;这一项，见图6，这样在向导结束后我们会得到一个很简单的应用程序。</p>
<p align=center><img height=514 alt="" src="http://www.blogjava.net/images/blogjava_net/easywu/6pods-new4.gif" width=525 border=0><br>图6 选择一个模板</p>
<p>现在直接按Finish按钮结束向导，这时要稍等一会儿，PODS在生成必要的代码和编译它们。简单来看一下生成的代码，主要的程序文件是src目录下的AppMain.c文件，注意它的入口方法不是main()而是PilotMain()，这个文件里的内容以后的帖子里会说明；在rsc目录下生成了名为AppResources.xrd的文件，这是一个资源文件，如果你在PODS里双击它，会打开Palm OS资源编辑器，见图7，在资源编辑器里你可以编辑窗体、定义菜单、定义图标、定义字符串等等。</p>
<p align=center><img height=525 alt="" src="http://www.blogjava.net/images/blogjava_net/easywu/7pods-resource-editor.gif" width=700 border=0><br>图7 Palm OS资源编辑器</p>
<p>怎样在模拟器里运行这个应用程序呢？首先确认你已经启动了Garnet模拟器；然后在PODS里选择菜单&#8220;Run-&gt;Run...&#8221;，这将弹出一个对话框。在对话框左边选中&#8220;Palm OS Application&#8221;，然后按下面的New按钮，在&#8220;Palm OS Application&#8221;下面会出现一个新的节点（运行项）；选中这个节点，在对话框右半部分把它的名称改为和项目名一样的&#8220;hello&#8221;，并确认&#8220;Files to install&#8221;框里只勾选了hello项目；点击Target属性页，在Device下拉列表里选择&#8220;Palm OS Garnet Simulator 5.4&#8221;，这个设置很重要，不要忽略。</p>
<p>现在运行项已经配置好了，见图8，按下对话框右下方的Run按钮即可运行程序。注意，以上这个过程对一个项目只需要配置一次就够了，再需要运行可以在PODS的工具栏里直接按Run下拉按钮。</p>
<p align=center><img height=496 alt="" src="http://www.blogjava.net/images/blogjava_net/easywu/8pods-run.gif" width=697 border=0><br>图8 为hello项目配置运行项</p>
<p>我们第一个应用程序在模拟器上运行的界面如图9所示。</p>
<p align=center><img height=508 alt="" src="http://www.blogjava.net/images/blogjava_net/easywu/9pods-hello.gif" width=326 border=0><br>图9 第一个应用程序</p>
<p>你可能已经注意到了，在项目的Debug目录下已经生成了hello.prc文件，这个文件可以直接在Palm设备上运行（方法和安装其他软件一样，通过同步，或者复制到扩展卡上，等等），图10是我们的hello项目在真正的Palm上运行的样子。</p>
<p align=center><img height=501 alt="" src="http://www.blogjava.net/images/blogjava_net/easywu/10.jpg" width=560 border=0><br>图10 运行在Palm T|X上的hello项目</p>
<br><br><br>-----------------------------------------------------------------------------------------------------------------------<br>本文转自<a href="http://www.cnblogs.com/bjzhanghao/archive/2006/06/09/421821.html">http://www.cnblogs.com/bjzhanghao/archive/2006/06/09/421821.html</a><br></div><img src ="http://www.blogjava.net/easywu/aggbug/113051.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/easywu/" target="_blank">Scott Wu</a> 2007-04-23 22:31 <a href="http://www.blogjava.net/easywu/archive/2007/04/23/113051.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>