分类: C/C++
2009-04-10 13:36:35
本文通过一个例子对pkg文件进行了简单的介绍。相关的文章包括。本文有不准确的地方,请大家指正。
pkg文件也就是安装包配置文件,是制作Symbian OS安装程序的核心部分。它包含了制作安装文件所需要的全部信息,根据这个文件的内容,sis文件生成器(安装程序的扩展名是.sis)制作生成应用程序的安装程序,也就是.sis文件。
.sis文件相当于PC中的setup.exe这样的程序,通过这个文件,Symbian OS的智能电话可以将应用程序部署到合适的位置,使得我们所编写的程序可以在手机中正常工作。
为了生成.sis文件,必须首先编写.pkg文件。因此制作Symbian程序安装文件的过程,实际上主要就是编写pkg文件的过程。pkg文件像Symbian的资源文件一样,有自己完整的语法体系,掌握了pkg文件的语法,就基本上掌握了制作安装程序的大部分知识,所以熟悉pkg文件的结构,对于制作安装程序来说,是非常重要的。
本文以一个最基本的pkg文件为例,介绍了一些经常使用的语法,并简单描述了根据该文件生成sis文件的方法。
下面列出一个完整的例子。这个例子比较简单,但是会经常用到,基本上一些最一般的安装程序都会是这种格式。
; HelloWorldBasic.pkg ; ;Language - standard language definitions &EN
; standard SIS file header #{"HelloWorldBasic"},(0x10005B91),1,0,0
;Supports Series 60 v2.0 (0x101F7960), 0, 0, 0, {"Series60ProductID"}
; "..\..\..\epoc32\release\thumb\urel\HelloWorldBasic.APP"-"!:\system\apps\HelloWorldBasic\HelloWorldBasic.app" "..\..\..\epoc32\data\z\system\apps\HelloWorldBasic\HelloWorldBasic.rsc"-"!:\system\apps\HelloWorldBasic\HelloWorldBasic.rsc" |
这个pkg文件是完整的,只要把文件目录适当调整一下,就可以可以使用了。这段例子来自S60 SDK2.1的例子代码。
下面对这个文件的各个部分依次做一些解释说明:
l 以分号开始的行,是注释。这些注释主要是给开发人员看的,生成器会忽略它们。
l &EN,表示安装程序使用的语言。EN表示使用美国英语,具体的代码的意义可以在SDK中查到,这里不详细列出。sis文件支持多语言安装,可以在这里进行设置,比如,&EN,FR,IT,表示是多语言的。对于多语言的安装程序,有一些语法和规则与其对应,具体的使用方法请查阅SDK。如果你只是希望可以做出一个安装程序,那么使用&EN就可以,不过需要保证后面出现的字符串部分使用英文字母。
l #{"HelloWorldBasic"},(0x10005B91),1,0,0。这是标准Symbian SIS文件的头部。所有的pkg都必须包含这行,而且必须在语言设置的后面。其中HelloWorldBasic是程序的名字,在安装过程中,可能会使用。ox10005B91,是所开发程序的UID,具体点说就是mmp文件中UID项的后面那个数字。接下来的数字,依次是主版本号,副版本号,和创建号,这些号码用于安装程序的版本控制。
l (0x101F7960), 0, 0, 0, {"Series60ProductID"}。这一句说明了这个程序在安装之前需要准备的组件,实际上就是要求必须是Series60的平台。如果还需要其它的组件,也需要在这里说明。0x101F7960,是组件的UID,它其实表示的是S60 2.0的平台,对于S60 2.1的平台,应该是0x101F9115。0,0,0分别是主副版本号和创建号,Series60ProductID则是当需要显示的时候用于向用户显示的说明文字。
l 最后就是实际操作的语句了。第一个双引号中的是文件的源位置,它只的是编译后的文件在PC中的位置。你可以使用绝对位置,也可以像例子那样使用相对位置。第二个双引号中的是文件在目标机器中的位置。“!:”表示由用户来选择安装在哪个驱动器下面,如果不想由用户指定,可以使用“C:”,表示安装在电话的C驱动下面。这两行语句表示的意思就是将指定位置的文件复制到电话的指定位置中。还有很丰富的语法,请查看S60的SDK。
对于一般的要求来说,这些语法已经可以达到将程序安装到电话上的目的了。
可以使用SDK附带的Sisar来生成sis文件。Sisar可以将上述pkg文件导入到工程中,这样基本上大部分的设置都完成了,再做一些简单的Sisar所需要的设置,就可以生成sis文件了。
另外,也可以使用Sismake这个工具在命令行生成sis文件。它的语法很简单,主要是根据pkg文件的设置来生成sis文件。
本文对一个比较常用的例子进行了解释,并介绍了一些简单的语法。通过这些介绍,可以对安装程序的制作有一定的认识。详细的说明和语法的细节,还需要到S60的SDK中查询。