文章接上!!
"\epoc32 \release\armi\urel\AnsPhone.aif" -
"!: \ system\ apps \AnsPhone \AnsPhone. ai f"
"\epoc32 \ release\ armi \urel \AnsPhone. app" -
"!: \ sys t em\ apps \Aris Phone \Ans Phone. app"
"\epoc32 \release\armi\urel\AnsPhone. r01" -
"!: \system\apps\AnsPhone\AnsPhone. rsc"
" \ epoc32 \ release\armi \urel \AnsPhone. mbm" -
"!: \system\apps\AnsPhone\AnsPhone.mbm"
2.x版本(或CodeWarrior)的等价.pkg文件将包含:
"\epoc32 \data \ z \ system\ adps \AnsPhone \AnsPhone. ai f" -
"!: \systemlapps\AnsPhone\AnsPhone.aif"
"\epoc32\release\armi\urel\AnsPhone.app" -
"!: \system\apps\AnsPhone\AnsPhone.app"
"\ epoc 32 \ data \ z \ system\ apps \AnsPhone \Ans Phone. r 01"
"!: \system\apps\AnsPhone\AnsPhone, rsc"
"\ epoc 32 \ data \ z \ system\ apps \AnsPhone \Ans Phone. mbm"
"!: \system\apps\AnsPhone\AnsPhone .mbm"
注意,.pkg文件的1.x版本和2.x版本之间需要改变平台UID。
同样需要注意的是,在.pkg脚本中,源文件和目标文件的文件扩展名并不总是相同的。原因在于,可能存在可选的源文件,这一节后面的HelloWorldLoc本地化示例项目中说明了这一点。
为了允许用户选择在设备上的任意驱动器中安装应用程序(例如,在可移动存储卡上安装,而不选择在闪存上安装),通过一个“!”字符来指定驱动器名,这里给出的示例中说明了这一点。在安装期间,提示用户获得存储应用程序的可选驱动器列表。
技巧:
为了确保应用程序总是显示正确的图标,请按照提供示例中所显示的方式排列文件的顺序。特别需要注意的是,将.aif文件的名称放在.app文件的前面。
1.在安装期间运行可执行文件
为了使HelloWorld GUI应用程序可以在安装过程期间运行,需要在应用程序文件名和后面添加一个额外的参数,如下所示:
"\Epoc32 \release\armi\urel\HelloWorld.app" -
"!: \system\apps\HelloWorld\HelloWorld.app", FR
或者,在HelloWorldCon控制台应用程序的情况中:
"\Epoc32 \release\ thumb\urel \HelloWorldCon ~ exe"
-" c: \EMCC\Exes \HelloWorldCon.exe", FR
确保在安装.pkg文件中的应用程序之前安装其他所有的应用程序组件文件。
“FR”参数表示“文件运行(File Run)”。在安装过程期间,不要错误地认为应用程序已经再次关闭—应用程序仍然保持运行。安装过程启动应用程序,然后任务返回到自身,以完成剩余的安装过程,仅此而已。为每个示例项目提供了示例“文件运行”安装包文件(.pkg)。它们位于主项目文件夹下面的\install文件夹中,并且带有以FR结尾的文件名—例如,HelloWorldConFR.pkg。
2.多地区安装
示例应用程序的HelloWorldLoc版本支持3种可选地区:英国、法国和德国。将在\EMCCSoft\HelloWorldLoc\目录下面找到该项目(相对于Series 60 SDK的根目录)。
下面是HelloWorldLoc.pkg文件中和应用程序安装本地化相关的部分代码:
; Languages - English, French and German
&EN, FR, GE
注意这里如何指定支持的语言—指定为EN、FR和GE,这不同于在项目.MMP文件的LANG语句中使用的方法—指定为01、02和03。标识支持语言的这种差异似乎只是由于传统的习惯。.pkg文件的其他语言码在SDK文档中进行了说明,位于“包文件格式”下面。
包的头文件必须包含每种支持语言中的组件名。
; Name/caption for each language, caption file is used if
supplied
# { "HelloWorldLoc" , "BonjourMondeLoc'' , "HalloWeltLoc" }, (0x101F614
9) , 1,0,0, TYPE=SISAPP
包文件(.pkg)的语法强制要求针对每种语言重复输入Series60ProductID字符串:
(0x101F6F88), 0, 0, 0,
{ "Series60ProductID", "Series60ProductID", "Series60ProductID" )
接下来,提供了3个地区特有的.aif文件列表,只安装其中一个.aif文件:
{
"\Epoc32\release\armi\urel\HelloWorldLoc .a01"
"\Epoc32\release\armi\urel\HelloWorldLoc.a02"
"\Epoc32\release\armi\urel\HelloWorldLoc.a03"
} -" !: \ system\apps\HelloWorldLockHelloWorldLoc.aif"
现在指定将要安装的应用程序名称。其他的应用程序组件可以有它们自己的代码行,或者使用嵌入的安装文件(.sis)来安装组件。查看后面的“多组件安装”了解更多细节。
"\Epoc32\release\armi\urel\HelloWorldLoc, app"
,, !: \system\apps\HelloWorldLoc\HelloWorldLoc ~ app"
接下来,提供了3个地区特有的资源文件列表,只安装其中一个资源文件:
{
"\Epoc32 \release\armi\urel\HelloWorldLoc. r01"
"\Epoc32\release\armi\urel\HelloWorldLoc. r02"
"\Epoc32 \releaselarmi\urel\Hel loWorldLoc, r03"
}-" !: \system\apps\HelloWorldLoc\HelloWorldLoc. rsc"
最后,提供了3个地区特有的标题资源文件列表,同样,将只安装其中一个标题资源文件:
{
"\Epoc32\release\armi\urel\HelloWorldLoc_caption.r01"
"\Epoc32\release\armi\urel\HelloWorldLoc_caption. r02"
"\Epoc32 \release\armi\urel\HelloWorldLoc_caption. r03"
}-" !: \system\apps\HelloWorldLoc\HelloWorldLoc_caption.rsc"
; End of File
3.多组件安装
有时,使用嵌入的安装文件(.sis)处理应用程序所需的组件安装可能会更好。通过如下的方式很容易实现这一点:
; Embedded SIS file for components e.g. DLLs
@"- -\- .\Engine\group\Engine.sis", (0x101F6150)
@". -\..\Controls\group\Emccctrls.sis", (0x101F6151)
注意,指定嵌入.sis文件名称的每一行都以@开头。相对于当前的应用程序位置,在引号中提供了.sis文件的路径和文件名。文件名和路径后面是应用程序或组件的UID3,作为主安装包的一部分包括这些应用程序或组件。
每个组件或是一个单独的项目,或者是组成主项目的一部分。每个组件都需要自己的.pkg(或.sisar)文件,用于生成对应的嵌入.sis文件。如果指定一个或多个嵌入.sis文件作为应用程序安装的一部分包括进来,则在删除嵌入组件的应用程序或组件时,这些嵌入的组件也将被删除(假设没有其他的组件与这些嵌入的组件相关)。
4.有条件的组件安装
有时必须决定在安装过程自身中需要哪些组件,或者决定哪些组件适合。在安装脚本中集成条件语句,本章后面将说明如何做这项工作,请参阅“高级部署和生成指南”一节中的“安装时的设备标识”小节。
2.4.3 生成SIS文件
为了生成HelloWorld.sis文件,打开命令提示符,定位到HelloWorld项目所在的文件夹,按照如下方式生成项目:
bldmake bldfiles
abld build armi urel
然后,改变到\install文件夹。输入如下命令生成.sis文件:
makesis HelloWorld.pkg
或者,为了生成自动运行的版本,使用如下命令:
makesis HelloWorldfr.pkg
注意,如果在项目中包括适当的.pkg文件,则Borland C++ BuilderX IDE可以在生成过程期间创建.sis文件。选择“项目 | 属性”菜单项,然后选择“Symbian设置”选项卡。将平台设置为适当的目标设备,将生成设置为urel,并且在生成项目时得到.sis文件。
为了在目标设备上运行应用程序,使用红外线或蓝牙连接将.sis文件传送到设备上。