青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 224  文章 - 41  trackbacks - 0
<2008年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

享受編程

常用鏈接

留言簿(11)

隨筆分類(159)

隨筆檔案(224)

文章分類(2)

文章檔案(4)

經典c++博客

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

PKG語法詳細說明 常用高級選項

連接:http://www.yuelongr.cn/post/880.html

另一篇PKG文章鏈接:

[symbian編程中pkg文件詳細解密](http://www.yuelongr.cn/post/39.html)

Contents

文本警告

多語言文本提示

刪除運行時生成的文件

內嵌SIS文件

在安裝或卸載時運行執行文件

必備程序選項

語言支持

手機支持

安裝特定手機所需文件

10 安裝指定平臺的文件

11 安裝條件

12 外部鏈接

13 內部鏈接

 

 

文本警告

在安裝時你可以指定一段文本顯示,這段文本不會復制到手機上,只是在安裝時顯示需知信息或相關協議。在pkg中增加如下代碼:

"license.txt" - "", FILETEXT, TEXTCONTINUE


FILETEXT 表明這個文件在安裝時顯示. TEXTCONTINUE提供了一個繼續按鈕用來關閉文本內容,繼續安裝程序。


你也可以將TEXTCONTINUE替換為如下選項:

• TEXTSKIP 顯示/選項,如果選擇是,那么就會繼續安裝,如果選擇否,那么下段文本就會跳過,但安裝還是會正常繼續。

• TEXTEXIT 顯示/選項,如果選擇是,那么安裝就會繼續,反之安裝就會終止,任何你已安裝的文件會被移除。

• TEXTABORT 顯示/選項,如果選擇否,那么安裝會終止,但是已經安裝的將不會刪除,刪除運行時生成的文件。

 

多語言文本提示

文本提示的語言可以根據手機缺省語言自己適配,如:

IF (LANGUAGE=2) ; If the language is French, then display mytext.t02
"mytext.t02"-"", FILETEXT, TEXTABORT
ELSEIF (LANGUAGE=3) ; If the language is German, then display mytext.t03
"mytext.t03"-"", FILETEXT, TEXTABORT
ELSE ; Otherwise display mytext.t01
"mytext.t01"-"", FILETEXT, TEXTABORT
ENDIF

上述示例當手機缺省語言為法語時將顯示mytext.t02,當為德語時則顯示mytext.t03,其他語種則為mytext.t01

此外,你需要有相應語言定義在PKG

;Language - standard language definitions
&EN,FR,GE

 

刪除運行時生成的文件

當你要卸載一個sis文件時,卸載程序將會移除所有在安裝時已經拷貝到手機上的文件。但那些運行時生成的文件怎么辦?

如果程序生成文件名在安裝時就要知道,那么需要在pkg文件中增加'null files'pkg中這些文件的格式(與語言無關)如下:

"" - "C\system\data\my_runtime_generated_file", FILENULL

這里my_runtime_generated_file是個程序生成的文件,FN(FILENULL)參數表示這個文件尚未存在,所以沒有包含在sis文件中。是程序運行時才會生成的,而在程序卸載時將會被刪除。注意源文件并不重要,只要為空即可("")。同樣注意這個文件在升級為新版時不會被刪除,這樣就可以確保一些如ini等存儲程序參數的文件不會在升級時丟失。

FILENULL選項在Symbian OS v9.x中并不支持,建議開發者在程序的data cage中生成文件,這樣可以在卸載時徹底刪除。

如果程序生成文件的數目(或文件名)不可知,這樣的情況就比較復雜了。有一個解決方案,sis可以包含一個卸載程序,可以用來查找并刪除相關文件。這樣程序需要在卸載時自動運行它:

"\epoc32\release\armi\urel\uninst.app" - "!:\system\apps\myapp\uninst.app", RR, RW

RR (RUNREMOVE)參數設置該文件在卸載時自動運行. RW (RUNWAITEND)表明系統將會等待該程序完成后才繼續卸載過程。

 

內嵌SIS文件

你可以包含另一個sis文件,按照如下代碼設置:

@”sis file name”,(UID)

例如@”prog1.sis”,(0x12341234)表示安裝prog1.sis,它的UID0x12341234。注意在卸載時,這里內嵌的sis將要等系統判定沒有其他程序使用它才會被刪除(即沒有其他安裝組件包括這個內嵌sis在他們的pkg文件中)

 

在安裝或卸載時運行執行文件

你可以在指定可執行文件那行的末尾添加FILERUN (FR)RUNINSTALL (RI)讓它在安裝時運行

例如:

"\Symbian\9.1\S60_3rd_MR\Epoc32\release\gcce\urel\myprogram.exe"-"!:\sys\bin\myprogram.exe",FR,RI

將會安裝myprogram.exe,并在安裝過程執行它。這里RUNINSTALL關鍵字也可以被下列選項取代:


• RUNREMOVE (RR) 指定程序只在卸載時執行它;

• RUNBOTH (RB)在安裝和卸載時都要執行這個程序

上述三個選項最好配以RUNWAITEND (RW)關鍵字,它指明安裝程序要等候該程序執行完畢再繼續。如果沒有指明這個關鍵字,那么程序啟動后,安裝就將繼續了。

FILERUN (FR) RUNINSTALL (RI) 選項無法工作于自簽名軟件,它需要一個受信簽名(Open Signed Online or Open Signed Offline during R&D stage and Symbian Signed when

released),否則程序所需能力將不能得以安裝。

 

必備程序選項

你可以指定一個必備程序選項,它表明系統必須先安裝有它,才能繼續下面的安裝,它的格式如下:

{UID}, Major_Version_#,Minor_Version_#,Build_#,{“Product Name”}

它表明這個組件的UID和名稱,以及所需最早版本號,否則將不能繼續下面的安裝。

例如:

{0x10000123},1,0,0,{"MyDll"}

表明組件名為MyDllUID0x10000123,以及最小版本號1.0.0,表明系統至少要安裝有該版本。必備程序選項也可以如下,這里表明所需的目標平臺:

(0x101F6F88), 0, 0, 0, {"Series60ProductID"}

這里所需的組件就是Series60ProductID, 而版本號至少為0.0.0或更高,都是安裝所必需的條件。

從第三版開始,S60平臺標識將顯示在方括號中,具體如下:

[0x101F7961], 0, 0, 0, {"S60ProductID"}

備注:必須是[0x1028315F]否則在安裝的過程中會提示版本不兼容的問題。 

語言支持

程序可以多個語言版本,而只要一個sis包即可。當用戶安裝sis文件時,將被提示選擇安裝語言。要增加語言,就要在你的pkg文件里添加語言支持行。它以&開始,包含下列語言列表中的一個:

AM– US English

AS – Austrian German

AU – Australian English

BF – Belgian French

BL – Belgian Flemish

CS – Czech

DA – Danish

DU – Dutch

EN – UK English

FI – Finnish

FR – French

GE – German

HK – Hong Kong Chinese

HU – Hungarian

IC – Icelandic

IF – International French

IT – Italian

JA – Japanese

NO – Norwegian

NZ – New Zealand

PL – Polish

PO – Portuguese

RO - Romanian

RU – Russian

SF – Swiss French

SG – Swiss German

SK – Slovak

SL – Slovenian

SP – Spanish

SW – Swedish

TC – Taiwan Chinese

TH – Thai

TU – Turkish

ZH – Prc Chinese

下面是一個實例:

&EN, FR, FI

它表明sis包含有英語,法語和芬蘭語,如果沒有語言項,則&EN是默認的。

 

手機支持

我們有可能需要指明安裝程序只為部分手機支持。如,如果一個程序需要WiFi,那么就只能安裝到有wifi的手機。如果到非wifi手機,那么安裝將顯示一個警告表示程序不兼容。

下列代碼演示了程序只能安裝到Nokia N80, N93, N93N95手機上。

[0x200005F9], 0, 0, 0, {"Nokia N80 ID"}
[0x20000600], 0, 0, 0, {"Nokia N93 ID"}
[0x20000605], 0, 0, 0, {"Nokia N93i ID"}
[0x2000060B], 0, 0, 0, {"Nokia N95 ID"}

手機型號的標識可以參考S60 Platform and device identification codes.

 

安裝特定手機所需文件

可能我們的部分安裝文件需要依賴用戶手機而定,例如一個游戲開發者可能需要生成一個指定的DLL,以便支持3D加速。那么對沒有3D加速的手機,

就只能安裝標準的DLL,示例代碼如下:

IF (MachineUID=0x20000600) OR (MachineUID=0x2000060B)
 
 ; If the device is Nokia N93 or N95, then install files in this block.
"\epoc32\release\armv5\urel\mydll_3d" -"!:\sys\bin\mydll.dll"
 
ELSE
 
 ; Otherwise install any files in this block.
"\epoc32\release\armv5\urel\mydll" -"!:\sys\bin\mydll.dll"
 
ENDIF

手機標識代碼可以在這里找到S60 Platform and device identification codes.

 

安裝指定平臺的文件

可能我們部分安裝文件依賴于手機的操作系統,例如第三版FP2就去掉了一些藍牙連接庫,這樣的不同導致我們在安裝時也需要區別對待,手機平臺可以在z:\system\install文件夾中獲取:

if exists("z:\system\install\Series60v3.2.sis")
"\Epoc32\release\gcce\UREL\Common_0x123123123_fp2.dll"-"C:\sys\bin\common_0x123123123.dll"
else
"\Epoc32\release\gcce\UREL\Common_0x123123123.dll"-"C:\sys\bin\common_0x123123123.dll"
endif

 

安裝條件

下列函數也可以使用在pkg:

package()用來測試一個安裝包是否存在;

exists()用來測試給定文件是否存在

appprop()獲得注冊表中的相關屬性

DevProp()函數用來詢問手機能力值,注意不是直接提供的名字屬性
 

package():如果指定UID已經安裝將返回true,否則返回false,下列代碼表示如果UID0x11223344那么將安裝foo.txt文件

IF package(0x11223344)
"foo.txt"-"c:\foo.txt"
ENDIF

exists(): 如果test.txt存在則返回true,將安裝新的

if exists("c:\test.txt")
"text\exists.txt"-"!:\private\0x01234567\exists.txt"

appprop(): 該函數的第一個參數是package UID.第二個參數是獲取的propid(property id). 下列代碼測試了其他包的能力

;Dependencies
(0x10000003), 1, 2, 3, {"Depend-EN"}
 
if (appprop(0x10000003,0) = 1)
"text\appprop1.txt"-"!:\Documents\appprop1.txt"
elseif (appprop(0x10000003,0) = 2)
"text\appprop2.txt"-"!:\Documents\appprop2.txt"
endif

DevProp(): 手機支持能力函數,它提供了直接訪問HAL API的能力,即HAL::Get()函數。這個函數可以有條件項使用,用來詢問手機的能力。注意這個能力不是名字屬性

+(0=1,1=2,3=-1)
 
if DevProp(1)
"text\appprop1.txt"-"", FT, TC
endif

posted on 2010-02-25 09:43 漂漂 閱讀(670) 評論(0)  編輯 收藏 引用 所屬分類: symbian開發
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品伦子伦免费视频| 国产精品久久二区| 亚洲日本中文字幕区| 99精品国产在热久久婷婷| aa日韩免费精品视频一| 久久久久成人网| 99亚洲一区二区| 美乳少妇欧美精品| 国产欧美精品日韩区二区麻豆天美| 亚洲国产经典视频| 久久综合伊人| 欧美一区二视频| 国产精品热久久久久夜色精品三区| 亚洲精品老司机| 欧美激情精品久久久久| 久久久激情视频| 国产综合香蕉五月婷在线| 国产亚洲一区二区在线观看| 一本久久综合| 亚洲国产aⅴ天堂久久| 午夜国产不卡在线观看视频| 欧美午夜一区二区| 中日韩高清电影网| 亚洲精品专区| 欧美日韩成人在线视频| 亚洲伦伦在线| 日韩一区二区电影网| 欧美日韩一区二区免费视频| 亚洲视频在线观看视频| 亚洲婷婷在线| 国产精品久久久久久久久婷婷| 亚洲免费影视| 欧美夜福利tv在线| 好看不卡的中文字幕| 久久免费视频观看| 欧美超级免费视 在线| 亚洲国产一区视频| 欧美激情a∨在线视频播放| 免费久久99精品国产自| 99视频精品在线| 一本色道**综合亚洲精品蜜桃冫 | 欧美亚洲综合另类| 红桃视频国产精品| 亚洲国产日韩精品| 欧美日韩一区二区三区| 亚洲欧美中日韩| 午夜精品久久久久久久白皮肤| 国产午夜精品理论片a级大结局 | 国产精品扒开腿爽爽爽视频| 在线视频你懂得一区| 亚洲精品视频二区| 欧美视频一区二区在线观看| 亚洲影院在线观看| 亚洲欧美日韩在线一区| 国内精品久久久久久久果冻传媒 | 亚洲七七久久综合桃花剧情介绍| 99视频精品| 欧美激情综合色| 日韩一级网站| 久久久久久久久久久久久9999 | 久久野战av| 日韩小视频在线观看专区| 亚洲精品免费电影| 国产欧美一区视频| 欧美chengren| 欧美精品久久久久久久久久| 亚洲无线一线二线三线区别av| 一区二区国产日产| 国产精品jvid在线观看蜜臀| 亚洲最新在线视频| 亚洲欧美日韩一区| 国产一区二区高清不卡| 欧美成人高清视频| 欧美日韩国产一级| 久久精品国产第一区二区三区最新章节| 久久成人18免费观看| 亚洲国产婷婷综合在线精品| 9人人澡人人爽人人精品| 国产日韩精品在线播放| 亚洲欧洲一二三| 国产一区白浆| 一区二区高清视频| 国产日韩免费| 午夜天堂精品久久久久| ●精品国产综合乱码久久久久| 99riav1国产精品视频| 激情小说另类小说亚洲欧美| aa成人免费视频| 亚洲国产毛片完整版 | 久久国产乱子精品免费女| 国产亚洲精品久久久久婷婷瑜伽| 久久9热精品视频| 欧美日本亚洲韩国国产| 美女91精品| 国产午夜精品全部视频在线播放| 亚洲电影毛片| 精品69视频一区二区三区| 亚洲视频国产视频| 一区二区三区中文在线观看| 99精品国产热久久91蜜凸| 亚洲第一色在线| 久久精品国产亚洲精品| 中文精品在线| 欧美精品播放| 亚洲高清视频在线| 1024精品一区二区三区| 久久精品99久久香蕉国产色戒| 亚洲午夜一区| 欧美三日本三级少妇三2023| 最新亚洲激情| 在线亚洲欧美视频| 欧美精彩视频一区二区三区| 香蕉尹人综合在线观看| 欧美日本高清视频| 亚洲国产精品一区二区www在线| 激情小说另类小说亚洲欧美| 一级日韩一区在线观看| 久久精品免费电影| 亚洲自拍偷拍麻豆| 欧美日韩午夜在线| 在线视频欧美日韩| 日韩午夜电影在线观看| 欧美日韩国产不卡| 99国产麻豆精品| 国产日韩欧美自拍| 久久久欧美精品sm网站| 蜜桃av一区二区| 黄色亚洲大片免费在线观看| 欧美在现视频| 欧美 日韩 国产一区二区在线视频 | 在线不卡a资源高清| 欧美诱惑福利视频| 毛片av中文字幕一区二区| 在线观看欧美一区| 欧美激情第二页| 99在线视频精品| 欧美一级专区| 激情小说另类小说亚洲欧美| 美女爽到呻吟久久久久| 久久久久久久一区二区三区| 国语自产精品视频在线看| 久久在线免费观看| 亚洲三级电影全部在线观看高清| 一本在线高清不卡dvd | 亚洲一区二区伦理| 国产精品日本精品| 欧美综合国产精品久久丁香| 美女视频黄免费的久久| 99re视频这里只有精品| 国产精品麻豆va在线播放| 久久久777| 亚洲国产综合91精品麻豆| 亚洲亚洲精品在线观看 | 亚洲一二三级电影| 国产伪娘ts一区| 欧美精品福利在线| 亚洲欧美国产77777| 亚洲欧美色婷婷| 国产精品三级视频| 亚洲欧美日韩在线高清直播| 欧美国产日韩免费| 午夜精品一区二区在线观看| 精品9999| 国产精品免费一区二区三区在线观看| 久久动漫亚洲| a4yy欧美一区二区三区| 久久婷婷久久一区二区三区| 亚洲麻豆视频| 黑丝一区二区三区| 欧美成人一区在线| 欧美亚洲三区| 亚洲精品在线三区| 免费中文日韩| 午夜亚洲影视| 牛牛影视久久网| 欧美aⅴ一区二区三区视频| 一本色道久久| 在线观看日韩| 欧美午夜免费| 性视频1819p久久| 亚洲欧美亚洲| 亚洲美洲欧洲综合国产一区| 久久久噜噜噜久久人人看| 亚洲视频免费观看| 亚洲国产99精品国自产| 国产午夜精品全部视频播放| 欧美偷拍另类| 欧美顶级艳妇交换群宴| 久久国产精品久久精品国产| 国产精品99久久不卡二区| 最新精品在线| 亚洲电影在线播放| 久久综合伊人77777| 一区二区三区日韩精品| 亚洲激情不卡| 亚洲精品国产无天堂网2021| 亚洲第一精品夜夜躁人人躁| 国产有码在线一区二区视频| 国产精品视频网址| 国产精品日韩电影|