您现在的位置: 中国IT实验室 >> 移动设备开发 >> PLAM >> 文章正文
PALM开发教程-第二章 建立一个应用程序

ChinaITLab 收集整理  2005-3-6  保存本文  推荐给好友  QQ上看本站  收藏本站



  无论你是一位编程专家还是初学者,通过本章的学习,你都将很快的学会Palm OS的编程。在这个过程中你首先要创建一个能稳定工作的开发环境。值得一提的是,开发环境并不仅仅是一些编程工具的简单组合,它更是一个能协助开发者更好完成工作的系统结构。一旦源代码能够在开发环境中正常的编译并运行,这就意味着你迈出了整个程序编写过程中最重要的一步。在程序以后的修改过程中,就是一些其它的尝试和寻找B UG的工作了,当然完成这些工作也都是要在开发环境中反复调试的。
  
  在简单复习一下Palm OS应用程序的基本结构后,我们就将创建一个这样的开发环境。然后我们将仔细研究资源编程的实质和Palm OS的代码。我们最后得到的将是一个简单而又实用的Palm OS应用程序。
  
  编程环境
  我们几乎全部使用C语言来编写应用程序代码,因为用C编写的Palm OS应用程序开销是最小的。书中的大多数例子都利用了Metrowerks Code Warrior编程环境。一般情况下,我们假定你使用的计算机操作系统是Windows。在所附光盘中,包含了一个免费的Metrowerks Code Warrior Lite版本,可以在Windows 9x和NT下运行。
  
  用Mac作为开发平台
  
  如果你使用的是Mac操作系统,那么你就需要做更多的工作,毕竟例子都是为Windows操作系统编写的。当然,在所附光盘中也提供了Mac版本的M etrowerks Code Warrior Lite。事实上,Mac版本和Windows版本的Code Warrior是很相似的。
  
  对C语言应知道多少
  在开始做本书的练习以前,假设你已能用C语言编写简单的程序。我建议你至少拥有一本有关C语言的好书。如果还没有的话,Herbert Schildt编写的《Teach Yourself C》(Osborne/McGraw-Hill,1997)是一个很不错的选择。
  
  Palm OS应用程序的剖析
  Palm OS的C语言编程和普通的C语言编程非常的相似。源代码被编译,并和一些控制Palm设备内部运行机制的库文件连接到一起。图2-1展示了一个P alm OS可执行程序是如何通过各种不同文件编译和连接后得到的。
  
  另外,资源文件是被单独编译和连接的。它们用来表示程序中的图形元件,诸如窗体、按钮、编辑框等等。很多现代的图形应用程序环境如M ac OS和Windows也是用资源文件来描述它们的用户界面的。
  
  每一个窗体都包含大量的按钮或其它控件。在资源文件中包含了应用程序所有窗体的所有信息。你可以通过Metrowerks Constructor(构造器)编辑资源文件——添加、改变或删除窗体和按钮等。
  
  深入什么是控件?
  控件就是用来接受用户信息的屏幕上的特殊区域。它可以从简单的如按钮(通过手指或输入笔激活)到复杂的如窗体(其中包含了各种不同的其它控件)。你可以通过资源编辑器创建和定义控件。
  
  Palm OS的存储器
  传统的存储器一般分两种:一种是快速但掉电后丢失数据的RAM,另一种是低速但永久保存数据的硬盘存储器。大多数计算机在将数据从诸如硬盘、C D等存储设备转移到RAM时花费了大量的时间。
  
  在这方面Palm的存储器较之传统计算机设备有着很大的区别,它使用的是另一种形式的存储器:快速且可永久保存的存储器。这使得它操作数据的速度有了极大的提高。同时P alm是没有文件系统的,它的工作原理实际上就是把存储器组织成数据库的形式。从基本上来说,存储器中的所有东西都被保存成数据库形式。甚至应用程序也是以这种形式保存的。应用程序所在的数据库就是由可执行的代码以及其它在资源编辑器编辑过的资源来填充的。
  
  对于传统的计算机应用程序,为使程序更快的运行,不可避免的存在着多个数据块的拷贝,如一个拷贝在RAM中,一个拷贝在硬盘上。但在P alm OS中,你如果移动数据或制作拷贝却完全没有必要,因为不管你的数据块在什么地方,Palm OS都能直接的访问到它,这是把存储器组织成数据库形式的好处之一。
  
  一个Palm OS 应用程序是怎样产生的源文件(Source File *.C) 文本编辑器(Text Editor) 头文件(Income File *.H) 编译器(Compiler)库(Librarian)对象文件(Object Files .OBJ 或.O) 资源编辑器(Resource Editor)库文件(Library Files *.LIB) 连接器(Linker) 资源文件(Resource Files *.RSRC) 可执行文件(Executable File *.PRC)
  
  Palm OS应用程序的执行和调试
  Palm一次只能执行一个程序。你可通过选择主菜单中的应用程序图表或按下在Palm底部的四个按钮的其中一个来运行程序。一旦一个程序开始后,它只在另一个程序开始时才会中止。当你关闭P alm后,程序停止,但再次打开后,程序将在断点处继续执行。
  
  当你测试程序时,Code Warrior开发环境会运行一个叫Console的程序来初始化调试信息。Code Warrior将把代码及其它调试信息传给Console,然后Code Warrior利用Console来执行程序、单步测试、设置断点、检查数据等等。当你调试完程序后,最好重启一下你的Palm,即按下调试面板上的X 按钮或用push-pin(或其它尖的东西)插入Palm背后的洞来重启。这样,你就可以把保存在存储器工作区域的数据清除掉。
  
  Console文件是作为隐藏文件保存在Palm中,你并不需要为调入Console而做任何事情。
  深入什么是调试器呢?调试器就是用来寻找和修改程序中存在问题的计算机应用程序。就Code Warrior和Palm OS来讲,调试器内嵌在PC中并与Console文件相关联用来检查程序运行时是否有什么问题。调试器可让你一步一步的观测代码和变量。你还可以设置断点来观测当程序运行到此处时会出现什么问题。
  
  开发环境的安装
  根据随书光盘所指出的步骤安装 Code Warrior。Code Warrior Lite和Code Warrior几乎一样,但为了督促某些程序员使用正版软件,它在程序的大小和复杂程度上有一定的限制。如果要成为一个真正的开发人员的话,我认为还是购买一套完全版的C ode Warrior为好。即便你不想立即购买,你在读完本书后也该拥有一套。
  
  在Windows计算机上安装完Code Warrior或Code Warrior Lite 后,你或许会发现你的构造器(constructor)还存在问题,那就是你所建窗体上的字体太大了。你须进行以下步骤以使你的构造器正常运行:
  1. 找到包含操作系统的文件夹,一般情况下在C:盘上的Windows目录下;
  2. 打开Windows文件夹;
  3. 打开Fonts文件夹;
  4. 关闭Fonts文件夹;
  5. 关闭Windows目录;
  现在你的构造器就可正常工作了。
  
  IDEs和Code Warrior
  当你需要把程序思想转变为现实时,一个好的编程环境显得尤为重要。很早以前(在打孔卡过时后和Turbo Pascal出现之前),你要用一个文字编辑器、一个编译器、一个连接器来构成你的编程环境,这或许就得用到三个不同公司的产品。Palm OS的免费编译器——gcc就是这样的一个例子。首先用文字编辑器产生代码文件和资源文件,然后用gcc工具单独的编译、连接和调试代码。
  
  90年代初,出现了一种新的编程环境——IDE(集成开发环境),它是一种集编辑、编译、连接、调试于一体的开发环境。Code Warrior就是这样一种编程环境,这样就为你节省很多时间和精力,以免你为在各个环节间不停的转换;并且,你也不必再为建立自己的各个开发环节而浪费时间,因为所有的工具都被集成在一起了。
  
  检查你的开发环境
  
  如果你能够保证硬件和软件衔接正常,以后就能节省很多时间,特别是对于Palm OS这样的内嵌环境——编译、连接和程序的运行不在同一个机器上。我想再没有比遇到问题时不知道问题出在开发环境、硬件还是自己的代码上更恼人的事了。经过多年的编程实践,我尽量使自己避免这些不定因素的影响。下面就讲讲如何一步步检查你的开发环境:
  
  1. 如果你还什么都没有做的话,那么第一步就是在你的PC上安装能和Palm通讯的软件Hotsync。
  2. 使你的Palm设备与PC保持同步;
  
  小技巧:
  
  如果你的设备不能同步,可尝试下面的几种方法:确保你的串行通讯接口所插的PC端口与HotSync软件中选择的串行口是同一个;确保你所选的端口在开始通讯时不被其它的进程占用(这与使用M odem是同样的道理); 根据帮助中的提示,检查你的计算机是否存在硬件冲突,这也会使你的串口无法正常工作; 尝试其它的串行端口,如果有的话; 按Palm设备后面的重启按钮,重启Palm设备。
  
  注意: 如果你的Palm设备不仅仅是用于开发,那么在调试之前,一定要确保Palm与PC的数据同步,否则有可能导致Palm原有的数据丢失。
  
  3. 开始调试之前,在PC上HotSync图标上单击右键,选择弹出菜单上的Exit退出HotSync。由于HotSync在运行时独占了Palm设备的连接通道,不关闭H otSync就不能下载代码或调试,所以这一步是完全必要的。但如果你忘记了,情况也不会太严重,Code Warrior将弹出一个漂亮的消息框提示你关闭HotSync。
  
  4. 运行Code Warrior集成开发环境(IDE);
  
  5. 选择File | New;
  
  6. 从Project选项卡上选择Palm OS 3.1;
  
  7. 通过Set按钮设置目录路径;
  
  8. 键入工程名称Starter;
  
  注意:把你的例程及将来的程序放入独立于Code Warrior目录树的文件夹中是个很好的办法。 因为这样可以使你轻松的备份和查找。而且,当你需重装Code Warrior时就不会由于疏忽而把你辛苦编写的程序删掉了。别问我为什么想起来告诉你这些,那是令人不快的经历。
  
  9. 在PC上,选择Project | Enable Debugger;
  
  10. 在PC上,选择Project | Debugger或按F5编译连接工程;
  
  11. 把Palm设备设置为Console模式。最简单的方法是利用find,删除find输入框中原有的文字并输入快捷符号。快




 相关文章  热门文章
Palm Powered设备上的增强型音频
编写Palm J2ME红外线“聊天”程序
PALM开发教程-…
PALM开发教程-…
PALM开发教程-…
PALM开发教程-…
PALM开发教程-…
Palm OS上发送和&…
Palm OS上常用编&…
Palm OS上如何利&…

 文章评论


认证培训
热门专题       more
相关下载
论坛新帖
博 客