如何创建sis文件——PKG文件格式
语言支持
PKG文件的第一行将指明应用程序的语言。每种语言用两个字母表示,如下:
&EN,FR
语言代号:
EN 英语 PO 葡萄牙语
FR 法语 SP 西班牙语
GE 德语 RU 俄语
IT 意大利语 DU 荷兰语
SW 瑞典语 DA 丹麦语
FI 芬兰语 NO 挪威语
更多的代码可以参考SDK
语言行可以忽略,这样的话,将使用默认的英语。
包头
PKG文件的下一个组成部分是包头。它详细什么包的名字,应用程序的UID,版本信息荷包的类型:
第一部分{"DummyLC","BetaLC"}是应用程序的名称。必须为语言行的每中语言指定相应名称,DummyLC是应用程序的英文名称;而BetaLC 是法语名称。
接下来是应用程序的UID(0x0010D003)。如果你打算发布你的应用程序,这个值应该从Symbian公司获得(参考为你的应用程序请求UID)。
The next three values represent the major, minor , build version number (we have here version 1.01, build 12).
接下来的3个值,描叙主次和bulid版本号(这个版本是1.01,Build 12)。
最后的一个值可选,它指定SIS的类型,可能的值如下:
SISAPP:包含一个应用(如果没填将被指定)。
SISSYSTEM:包含一个共享/系统组件,像DLL或者OPX,他们可以被其他的应用程序所使用。当最终的应用程序卸载的时候组件也将被卸载。
SISOPTION:包含一个扩展或可选的组件(动态载入代码,数据文件,等)。用户可以选择是否安装或者稍后删除,该组件不依赖主程序而工作。
SISCONFIG:配置一个已经存在的应用程序或服务. 该包不能够包含任何新文件,就算有也只能显示在安装时期,或者添加一个已存在的组件。该包安装后也不会出现在卸载中。
SISPATCH:增补已经存在的组件,它可以被用户卸载。
SISUPGRADE 更新已经存在的组件。该包安装完后也不列在卸载程序中,用户要重装或者卸载必须改变其关联的程序。
产品/平台兼容性
接下来的行指定应用程序目标平台或产品:
0x101F6F88 代表是Series 60 v0.9。它支持大多数的的现有S60设备。当然,如果你使用一些特定的API,你将使用响应的代号代替。查看我们的通用产UID页面获得更多代号。
0, 0, 0 是主版本号、次版本号和build号。你不用修改它。
{"Series60ProductID","Series60ProductID"} 是平台识别串。你在S60设备上应该使用“Series60ProductID”。注意:该字符串将重复你语言行所指定的语言中。
显示文字通知
在安装过程中,可以显示一些文字窗口。这里可以显示,程序使用的授权,一些发布通知等(新版本的特性等)
以下是FILETEXT的使用:
; Display new features
;
"release.txt" - "", FILETEXT, TEXTCONTINUE
上面一行自定了:release.txt文件的内容将在安装过程中被显示。该文件跟PKG文件在同一个目录下(如果不是同一个目录你必须指定路径),在这个例子中,该文件不会被安装在手机上。
TEXTCONTINUE:指定用户只能操作“继续”
TEXTSKIP:出现“是”和“否”文字对话框。如果“是”,对话框消失,继续安装程序,如果“不是”对话框消失,安装继续,接下来的文件和组件将不被安装。
TEXTEXIT:出现“是”和“否”文字对话框。选折“是”继续安装,选折“否”将取消安装,所有的文件将被删除。
TEXTABORT : 出现“是”和“否”文字对话框。选折“是”,对话框取消,安装继续;选择“否”,安装被取消,通常导致部分被安装。
这部分也可以集成在文件部分。TEXTSKIP选项可以用来询问用户选择文件是否想被安装。
语言依存文件
应用程序可以包含一些语言依赖的文件(数据文件,资源文件等),你能指定那些依赖的文件被安装:
; Install language dependent data
;
{
"/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:)。
在这一步你要注意大括号中的所有内容,用来指定语言选项。
独立语言文件
文件中的接下来这部分将不论用户使用什么语言,将安装这些文件:
; Files to install
;
"/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 命令来实现:
; Install and run an exe
;
"/Symbian/6.1/Series60/Epoc32/release/thumb/urel/RunMe.exe" -"!:/system/apps/DummyLC/RunMe.exe",FILERUN,RUNINSTALL
在上面的例子中,RunMe.exe将在安装的过程中自动被执行。
其他的命令:
RUNREMOVE:在卸载的时候执行
RUNBOTH:安装和卸载的时候都执行
安装一个共享组件
一个SIS文件,它包含一个组件可以共享给其他应用程序:
; Install shared component
;
@"../../Common/DLL/Install/newlcdll.sis",(0x1000EB00)
这个共享组件将被包含在应用程序中,和该应用程序一起安装,除非它已经被安装。当有一个应用程序在使用该共享组件时,它都不能被卸载。
我们的EzBoot 是共享组件的一个很好的例子。
接下来的代码也能使用指定的外部组件
上面的代码将请求安装已经存在的组件,它的UID是“0x1000EB00”版本1.0 Build 12,然而,如果手机上不存在这个DLL,用户将不能安装该安装包。
运行时产生的文件
应用程序可能也会产生一个数据文件在运行的时候(例如,参数,高分榜等)。
为了确保这些文件在你卸载应用沉许时也被删除,你需要使用 FILENULL 选项:
; Make sure the configuration file is removed on uninstall
;
""-"C:/system/apps/DummyLC/DummyLC.ini",FILENULL
注意:在更新版本时,DummyLC.ini 将不会被删除。这样做是为了确保想ini 这样的文件(记录一些相关参数)在更新时不会被删除。
如何创建sis文件——PKG文件格式相关推荐
- Linux系统中创建大文件,并作为文件系统使用
在LInux系统的使用过程中,有时候会遇到诸如某个磁盘分区的大小不够用了,导致其下的文件系统不能正常写入数据.亦或者是系统swap分区太小,不够用或者不满足条件而导致的其他一系列问题.如果我们系统上挂 ...
- Qt中创建excel文件
1.用Qt自带的实现创建excel文件 QFile file(filename); file.open(QIODevice::ReadWrite); file.close(); 创建是创建了excel ...
- django新建php文件,在Python的Django框架中创建语言文件
django-admin.py makemessages -l de -e html,txt -e xml 当创建JavaScript翻译目录时,你需要使用特殊的Django域:not -e js . ...
- Linux创建swap文件
新增swap分区 根据Redhat公司的建议,swap分区最适合的大小是物理内存的1-2倍.不过Linux上有些软件对swap分区得需求较大, 例如要顺利执行Oracle数据库软件,swap分区至少需 ...
- 利用“WinRAR”创建自解压文件
PS:参考博文:https://jingyan.baidu.com/article/b87fe19e9025915218356803.html?qq-pf-to=pcqq.c2c 为了和我的上一篇用& ...
- html中如何插入pdf文件,如何创建PDF文件
如何新建PDF格式文件大多数人所接触到的PDF格式文件,大多是其他格式转换而来的,转换成PDF是为了它的安全.兼容.打英传输方便.也因为大多数软件可转换成PDF,如办公软件或各类设计软件.为现时印刷的 ...
- 使用C#快速创建KML文件或读取其功能
KML是Keyhole标记语言的缩写,它是XML表示法的扩展.它是GIS文件格式,用于显示地理信息.可以以编程方式创建KML文件,也可以使用C#语言从其中读取信息. 让我们探索以下与KML文件格式有关 ...
- VS添加命令直接创建pkt文件
添加命令行直接创建pkt文件 越来多的朋友在学习使用Visual Studio编写代码来创建自己的部件, 这是我编写<AutoCAD Civil .NET二次开发>时没有预想到, 既然越来 ...
- JAR文件(文件格式)
JAR 文件是什么? JAR 文件格式以流行的 ZIP 文件格式为基础,用于将许多个文件聚集为一个文件.与 ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库.组件和插件程序 ...
- Labwindows_cvi基于C语言创建Excel文件
目录 1.前期准备工作 (1)找到Excel库所在路径 (2)搭建简单界面 (3)添加外部文件(导入Excel库里的文件) 2.开始编程 3.实现效果 最近有项目需要用Labwindows_cvi软件 ...
最新文章
- WP8.1 Study18:动态磁贴
- docker命令的组合使用
- 工作中常用到的sql命令!!!
- python 批量更换图片格式脚本
- 删除数组中的负数,输出结果为正数
- 【计算机网络】IPv4 NAT
- C# dapper 使用事务
- 收集的一些discuz插件常用插件分享给大家了
- python将列表元素全部小写_在Python中的字符串列表中转换元素的大小写
- 哎呀你不要把他叫出来_墓友-第一章——釉彩瓶-爱阅小说网
- MATLAB实现 有限长序列的线性卷积和圆周卷积
- python车牌识别系统抬杆_车牌识别系统识别到道闸不抬杆是什么问题?
- 2.1.7设置字体大小
- 动态规划 leetcode-714 最佳买卖股票时机含手续费
- 一个生日微信小程序 生日动画_生日当天发朋友圈的文案 生日快乐微信小句子...
- c语言二级常考算法大全,二级C语言 常用算法.doc
- springCloud-day04
- SolrCloud下DIH实践
- 基于Android系统的人脸识别签到软件
- word-spacing、word-break、letter-spacing和white-space
热门文章
- 基于Matlab的数字水印设计
- VJ第一周算法题(A - Mud Puddles)
- running_mean和running_var
- Linux文件裸写,linux环境先mkfs后写裸盘
- 定时播放音频、定时播放视频解决方案 —— 定时执行专家
- Emscripten 单词_学会词根词缀,开启高效、快速地记忆英语单词模式
- 杂七杂八(4): win10设置启动时创建系统还原点
- win10系统还原点怎么设置
- 平行时代的平行智能体系(王飞跃)
- 计算机论文 a会 c会,ccf b类论文 sci几区_焦文静_电影学者王田