如何创建sis文件PKG文件格式.docx
- 文档编号:8998026
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:11
- 大小:21.97KB
如何创建sis文件PKG文件格式.docx
《如何创建sis文件PKG文件格式.docx》由会员分享,可在线阅读,更多相关《如何创建sis文件PKG文件格式.docx(11页珍藏版)》请在冰豆网上搜索。
如何创建sis文件PKG文件格式
如何创建sis文件——PKG文件格式
语言支持
PKG文件的第一行将指明应用程序的语言。
每种语言用两个字母表示,如下:
CODE:
;Languages
&EN,FR
语言代号:
EN英语PO葡萄牙语
FR法语SP西班牙语
GE德语RU俄语
IT意大利语DU荷兰语
SW瑞典语DA丹麦语
FI芬兰语NO挪威语
更多的代码可以参考SDK
语言行可以忽略,这样的话,将使用默认的英语。
包头
PKG文件的下一个组成部分是包头。
它详细什么包的名字,应用程序的UID,版本信息荷包的类型:
CODE:
#{"DummyLC","BetaLC"},(0x0010D003),1,01,12,TYPE=SISAPP
第一部分{"DummyLC","BetaLC"}是应用程序的名称。
必须为语言行的每中语言指定相应名称,DummyLC是应用程序的英文名称;而BetaLC是法语名称。
接下来是应用程序的UID(0x0010D003)。
如果你打算发布你的应用程序,这个值应该从Symbian公司获得(参考为你的应用程序请求UID)。
Thenextthreevaluesrepresentthemajor,minor,buildversionnumber(wehavehereversion1.01,build12).
接下来的3个值,描叙主次和bulid版本号(这个版本是1.01,Build12)。
最后的一个值可选,它指定SIS的类型,可能的值如下:
SISAPP:
包含一个应用(如果没填将被指定)。
SISSYSTEM:
包含一个共享/系统组件,像DLL或者OPX,他们可以被其他的应用程序所使用。
当最终的应用程序卸载的时候组件也将被卸载。
SISOPTION:
包含一个扩展或可选的组件(动态载入代码,数据文件,等)。
用户可以选择是否安装或者稍后删除,该组件不依赖主程序而工作。
SISCONFIG:
配置一个已经存在的应用程序或服务.该包不能够包含任何新文件,就算有也只能显示在安装时期,或者添加一个已存在的组件。
该包安装后也不会出现在卸载中。
SISPATCH:
增补已经存在的组件,它可以被用户卸载。
SISUPGRADE更新已经存在的组件。
该包安装完后也不列在卸载程序中,用户要重装或者卸载必须改变其关联的程序。
产品/平台兼容性
接下来的行指定应用程序目标平台或产品:
CODE:
(0x101F6F88),0,0,0,{"Series60ProductID","Series60ProductID"}
0x101F6F88代表是Series60v0.9。
它支持大多数的的现有S60设备。
当然,如果你使用一些特定的API,你将使用响应的代号代替。
查看我们的通用产UID页面获得更多代号。
0,0,0是主版本号、次版本号和build号。
你不用修改它。
{"Series60ProductID","Series60ProductID"}是平台识别串。
你在S60设备上应该使用“Series60ProductID”。
注意:
该字符串将重复你语言行所指定的语言中。
显示文字通知
在安装过程中,可以显示一些文字窗口。
这里可以显示,程序使用的授权,一些发布通知等(新版本的特性等)
以下是FILETEXT的使用:
CODE:
;
;Displaynewfeatures
;
"release.txt"-"",FILETEXT,TEXTCONTINUE
上面一行自定了:
release.txt文件的内容将在安装过程中被显示。
该文件跟PKG文件在同一个目录下(如果不是同一个目录你必须指定路径),在这个例子中,该文件不会被安装在手机上。
TEXTCONTINUE:
指定用户只能操作“继续”
TEXTSKIP:
出现“是”和“否”文字对话框。
如果“是”,对话框消失,继续安装程序,如果“不是”对话框消失,安装继续,接下来的文件和组件将不被安装。
TEXTEXIT:
出现“是”和“否”文字对话框。
选折“是”继续安装,选折“否”将取消安装,所有的文件将被删除。
TEXTABORT:
出现“是”和“否”文字对话框。
选折“是”,对话框取消,安装继续;选择“否”,安装被取消,通常导致部分被安装。
这部分也可以集成在文件部分。
TEXTSKIP选项可以用来询问用户选择文件是否想被安装。
语言依存文件
应用程序可以包含一些语言依赖的文件(数据文件,资源文件等),你能指定那些依赖的文件被安装:
CODE:
;
;Installlanguagedependentdata
;
{
"\Symbian\6.1\Series60\Epoc32\release\thumb\urel\DummyLC.r01"
"\Symbian\6.1\Series60\Epoc32\release\thumb\urel\DummyLC.r02"
}-"!
:
\system\apps\DummyLC\DummyLC.rsc"
如果用户选择英文,DummyLC.r01将作为DummyLC.rsc文件被安装;用户选择法文DummyLC.r02将被安装。
有趣的是,仅仅只有一个文件将被安装到手机上,他们总是一个名字,内容和用户语言一致。
如果用户使用了存储卡,"!
:
"用来指定,用户能选择的目标位置,如果不想用户选择路径,你可以用绝对路径来替换它(例如:
C:
)。
在这一步你要注意大括号中的所有内容,用来指定语言选项。
独立语言文件
文件中的接下来这部分将不论用户使用什么语言,将安装这些文件:
CODE:
;
;Filestoinstall
;
"\Symbian\6.1\Series60\Epoc32\release\thumb\urel\DummyLC.app"-"!
:
\system\apps\DummyLC\DummyLC.app"
"\Symbian\6.1\Series60\Epoc32\release\thumb\urel\DummyLC.aif"-"!
:
\system\apps\DummyLC\DummyLC.aif"
上面的内容将添加SIS文件中的2个文件到手机上,DummyLC.app和DummyLC.aif他们位于C:
\Symbian\6.1\Series60\Epoc32\release\thumb\urel\文件夹下面。
这些文件将被安装到手机设备的所安装盘符的\system\apps\DummyLC目录下。
安装时运行一个文件
在运行一个安装或卸载程序时运行一个文件有时显得非常有用。
典型用处:
1.安装完后启动一个服务(recognizer注册者也可以用到)。
2.卸载后做一些清理工作。
...
可以用FILERUN命令来实现:
CODE:
;
;Installandrunanexe
;
"\Symbian\6.1\Series60\Epoc32\release\thumb\urel\RunMe.exe"-"!
:
\system\apps\DummyLC\RunMe.exe",FILERUN,RUNINSTALL
在上面的例子中,RunMe.exe将在安装的过程中自动被执行。
其他的命令:
RUNREMOVE:
在卸载的时候执行
RUNBOTH:
安装和卸载的时候都执行
安装一个共享组件
一个SIS文件,它包含一个组件可以共享给其他应用程序:
CODE:
;
;Installsharedcomponent
;
@"..\..\Common\DLL\Install\newlcdll.sis",(0x1000EB00)
这个共享组件将被包含在应用程序中,和该应用程序一起安装,除非它已经被安装。
当有一个应用程序在使用该共享组件时,它都不能被卸载。
我们的EzBoot是共享组件的一个很好的例子。
接下来的代码也能使用指定的外部组件
CODE:
(0x1000EB00),1,0,12,{"NewLCDLL","NewLCDLL"}
上面的代码将请求安装已经存在的组件,它的UID是“0x1000EB00”版本1.0Build12,然而,如果手机上不存在这个DLL,用户将不能安装该安装包。
运行时产生的文件
应用程序可能也会产生一个数据文件在运行的时候(例如,参数,高分榜等)。
为了确保这些文件在你卸载应用沉许时也被删除,你需要使用FILENULL选项:
CODE:
;
;Makesuretheconfigurationfileisremovedonuninstall
;
""-"C:
\system\apps\DummyLC\DummyLC.ini",FILENULL
注意:
在更新版本时,DummyLC.ini将不会被删除。
这样做是为了确保想ini这样的文件(记录一些相关参数)在更新时不会被删除。
本文来自:
USB开发中国(或者)详细出处参考:
pkg文件中指定多个操作系统版本
字体:
小中大|打印发布:
2007-12-1619:
09作者:
admin来源:
查看:
0次
pkgfile定义了安装文件(sis)的内容,它包括应用程序的UID,一个支持的语言列表,目标产品的UID和打包在sis的一组文件:
;MyGame.pkg
;SpecifiesaninstallationfileforMyGame
;Languages
&EN
;Header
#,(0x1000ABCD),1,0,0
;RequiredlineforSeries60devices.Definesthetargetproduct
;UID.
(0x101F6F88),0,0,0,
“\epoc32\release\thumb\urel\MyGame.app”-“!
:
\system\apps\MyGame\MyGame.app”
“\epoc32\release\thumb\urel\MyGame.rsc”-“!
:
\system\apps\MyGame\MyGame.rsc”
“\epoc32\release\thumb\urel\MyGame.mbm”-“!
:
\system\apps\MyGame\MyGame.mbm”
“\epoc32\release\thumb\urel\MyGame.aif”-“!
:
\system\apps\MyGame\MyGame.aif”
“..\MyGame\MyGameSample.wav”-“!
:
\system\apps\MyGame\MyGameSample.wav”
ProductUID定义了应用程序的目标环境,大部分的s60版本是向下兼容的。
参见下表:
Nokia76500x101F6F87
Nokia36500x101F7962
Nokia9210/92900x10005E33
NokiaN-gage0x101F8A64
SiemensSX10x101F9071
Series60Platformv0.90x101F6F88
Series60Platformv1.00x101F795F
Series60Platformv1.10x101F8201
Series60Platformv1.20x101F8202
Series60Platformv2.00x101F7960
如果程序需要依据各不同的平台来进行安装,那就可以使用条件语句块来处理,这时pkg里的语句如下:
;
;Filestoinstall
;
IFMachineUID=0x101fb3dd
;Nokia6600specificfiles
“..\MyFiles\FileFor6600.dat”-“!
:
\system\apps\MyGame\MyData.dat”
ELSEIFMachineUID=0x101f466a
;Nokia3650specificfiles
“..\MyFiles\FileFor3650.dat”-“!
:
\system\apps\MyGame\MyData.dat”
ELSE
;Filesforotherdevices
“..\MyFiles\FileForOthers.dat”-“!
:
\system\apps\MyGame\MyData.dat”
ENDIF
就可以生成一个支持多平台的安装文件,除了机器UID外,还有很多属性,如内存和CPU的标识:
注意,机器UID和ProductUID是不同的,见下:
Nokia76500x101F4FC3
Nokia36500x101F466A
Nokia66000x101FB3DD
Nokia9210/92900x10005E33
NokiaN-Gage0x101F8C19
Win32Emulator0x10005F62
可以使用如下的代码来找出该设备的机器UID:
#include//andlinkwithhal.lib
TIntmachineUid=0;
HAL:
:
Get(HALData:
:
EmachineUid,machineUid);
本文来自:
USB开发中国(或者)详细出处参考:
pkg文件结构详细解释
字体:
小中大|打印发布:
2007-12-1619:
09作者:
admin来源:
查看:
0次
;“;“行内容为注释。
;本文件未包含pkg文件结构所有内容,具体内容请参考sdk1.2文档Packagefileformat.pkg
;Graphics.pkg文件名称
;
;Language-standardlanguagedefinitions
;语言支持EN代表英语,ZH代表大陆简体汉语,HK代表香港汉语,TC台湾汉语
&EN,ZH,HK
;standardSISfileheader
;sis文件标准头格式如下:
;#{"ComponentNameforlanguage1","ComponentNameforlanguagen"},
;(ComponentUID),Major,Minor,Build-Number[,PackageOptions][,TYPE=PackageType]
;#{"一般就是程序名称"},(程序UID),主版本号,次版本号,编译版本号
#{"Graphics"},(0x10005B81),1,0,0
;SupportsSeries60v1.2
;版本支持,主要就是()中的内容,0x101F8202是v1.2,0x101F795F是v1.0,0x101F6F88是v0.9
;这个应该随着你的sdk版本改变
(0x101F8202),0,0,0,{"Series60ProductID"}
;以下是你的sis中需要办含的文件
;格式是:
"编译生成的文件路径"-"目标设备目录"
"c:
\symbian\6.1\series60\epoc32\release\armi\urel\Graphics.APP"-"C:
\system\apps\Graphics\Graphics.app"
"c:
\symbian\6.1\series60\epoc32\release\armi\urel\Graphics.rsc"-"C:
\system\apps\Graphics\Graphics.rsc"
"c:
\symbian\6.1\series60\epoc32\release\armi\urel\images.mbm"-"C:
\system\apps\Graphics\images.mbm"
本文来自:
USB开发中国(或者)详细出处参考:
pkg文件简介
1概述
pkg文件也就是安装包配置文件,是制作SymbianOS安装程序的核心部分。
它包含了制作安装文件所需要的全部信息,根据这个文件的内容,sis文件生成器(安装程序的扩展名是.sis)制作生成应用程序的安装程序,也就是.sis文件。
.sis文件相当于PC中的setup.exe这样的程序,通过这个文件,SymbianOS的智能电话可以将应用程序部署到合适的位置,使得我们所编写的程序可以在手机中正常工作。
为了生成.sis文件,必须首先编写.pkg文件。
因此制作Symbian程序安装文件的过程,实际上主要就是编写pkg文件的过程。
pkg文件像Symbian的资源文件一样,有自己完整的语法体系,掌握了pkg文件的语法,就基本上掌握了制作安装程序的大部分知识,所以熟悉pkg文件的结构,对于制作安装程序来说,是非常重要的。
本文以一个最基本的pkg文件为例,介绍了一些经常使用的语法,并简单描述了根据该文件生成sis文件的方法。
2例子及解释
下面列出一个完整的例子。
这个例子比较简单,但是会经常用到,基本上一些最一般的安装程序都会是这种格式。
;HelloWorldBasic.pkg
;
;Language-standardlanguagedefinitions
&EN
;standardSISfileheader
#{"HelloWorldBasic"},(0x10005B91),1,0,0
;SupportsSeries60v2.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文件是完整的,只要把文件目录适当调整一下,就可以可以使用了。
这段例子来自S60SDK2.1的例子代码。
下面对这个文件的各个部分依次做一些解释说明:
l以分号开始的行,是注释。
这些注释主要是给开发人员看的,生成器会忽略它们。
l&EN,表示安装程序使用的语言。
EN表示使用美国英语,具体的代码的意义可以在SDK中查到,这里不详细列出。
sis文件支持多语言安装,可以在这里进行设置,比如,&EN,FR,IT,表示是多语言的。
对于多语言的安装程序,有一些语法和规则与其对应,具体的使用方法请查阅SDK。
如果你只是希望可以做出一个安装程序,那么使用&EN就可以,不过需要保证后面出现的字符串部分使用英文字母。
l#{"HelloWorldBasic"},(0x10005B91),1,0,0。
这是标准SymbianSIS文件的头部。
所有的pkg都必须包含这行,而且必须在语言设置的后面。
其中HelloWorldBasic是程序的名字,在安装过程中,可能会使用。
ox10005B91,是所开发程序的UID,具体点说就是mmp文件中UID项的后面那个数字。
接下来的数字,依次是主版本号,副版本号,和创建号,这些号码用于安装程序的版本控制。
l(0x101F7960),0,0,0,{"Series60ProductID"}。
这一句说明了这个程序在安装之前需要准备的组件,实际上就是要求必须是Series60的平台。
如果还需要其它的组件,也需要在这里说明。
0x101F7960,是组件的UID,它其实表示的是S602.0的平台,对于S602.1的平台,应该是0x101F9115。
0,0,0分别是主副版本号和创建号,Series60ProductID则是当需要显示的时候用于向用户显示的说明文字。
l最后就是实际操作的语句了。
第一个双引号中的是文件的源位置,它只的是编译后的文件在PC中的位置。
你可以使用绝对位置,也可以像例子那样使用相对位置。
第二个双引号中的是文件在目标机器中的位置。
“!
:
”表示由用户来选择安装在哪个驱动器下面,如果不想由用户指定,可以使用“C:
”,表示安装在电话的C驱动下面。
这两行语句表示的意思就是将指定位置的文件复制到电话的指定位置中。
还有很丰富的语法,请查看S60的SDK。
对于一般的要求来说,这些语法已经可以达到将程序安装到电话上的目的了。
3生成SIS文件
可以使用SDK附带的Sisar来生成sis文件。
Sisar可以将上述pkg文件导入到工程中,这样基本上大部分的设置都完成了,再做一些简单的Sisar所需要的设置,就可以生成sis文件了。
另外,也可以使用Sismake这个工具在命令行生成sis文件。
它的语法很简单,主要是根据pkg文件的设置来生成sis文件。
4小结
本文对一个比较常用的例子进行了解释,并介绍了一些简单的语法。
通过这些介绍,可以对安装程序的制作有一定的认识。
详细的说明和语法的细节,还需要到S60的SDK中查询。
本文来自:
USB开发中国(或者)详细出处参考:
创建sis包
字体:
小中大|打印发布:
2007-12-1619:
09作者:
admin来源:
查看:
0次
1在hellotext目录下,bldmakeclean,bldmakebldfiles。
2abldbuildarmiurel,在C:
\Symbian.0a\S60_2nd_FP2\epoc32\release\armi\urel目录下生成hellotext.exe
和hellotext.exe.map。
3创建pkg文件,大致内容如下
;
;Basicinstallfileforminimalapplication
;
;Languages
;none-Englishonlybydefault
;Installationheader
;OnlyonecomponentnameasweonlysupportEnglish
;UIDistheapp'sUID-seeHelloWorld.mmp
#{"Minimalapplication"},(0x10004299),1,0,0
;Onlytwofilestoinstallfortheminimalapplication
"C:
\Symbian.0a\S60_2nd_FP2\epoc32
\release
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 如何 创建 sis 文件 PKG 文件格式