程式資訊檔案
概述
應用程式資訊檔案,其副檔名為.aif檔案,用來儲存與應用程式相關的資料,這裡的資訊包括應用程式的:
各種尺寸的icon
所支援語言的標題
拓展性,如嵌入, 隱藏等
MIME-type支援屬性
aif檔案可以用如下幾種方法來生成:
透過GUI工具AIF Builder
透過手寫一個Aiftool資原始檔。
如果你要手寫一個Aiftool資原始檔:
如果你使用的是C++,你應該指明在abld處理Aiftool的處理,我們可以將AIF關鍵字安插在你的.mmp檔案中,如下:
AIF DDBouncingBall.aif ..\Aif DDBouncingBallAif.rss \
c12 DDBouncingBallIcon.bmp DDBouncingBallIcon_mask.bmp DDBouncingBallIcon_42x22.bmp DDBouncingBallIcon_42x22_mask.bmp
執行命令列Aiftool工具以生成aif檔案
我們使用C++reader和writer類來管理儲存在aif檔案中的資料(其中wirter類是很少使用的)。程式可以在沒有aif檔案的狀況下執行,在這種情況,一個預設的圖示被使用——一般是一個問號(依小糊塗看不然,預設的在s60至少不是問號,而是個拼圖狀的東東:);不支援MIMI型別;不支援embedding;不支援新檔案的產生;預設的標題就是它可執行檔案的名字,不過沒有副檔名。
如何構建一個AIF
概述下面的列子演示了怎麼去生成一個應用程式資訊檔案,你必須:
生成一個資源定義檔案(rss檔案)這個檔案中包含了一個結構,裡面定義了應用程式的UID,標題,圖示的數目,capabilities,以及MIME型別支援級別。
生成一個image和mask bitmap以便在shell中標識該程式。
生成資源定義檔案
最容易的方法就是複製一個現成的資原始檔來修改修改,主要是標題,UID,以及圖示的數目。大家可以看下面的列子:
#include
RESOURCE AIF_DATA
{
// uid
app_uid=0x10004299;
// captions
caption_list=
CAPTION { code=ELangEnglish; caption="Hello"; },
CAPTION { code=ELangFrench; caption="Bonjour"; }
};
// icons
num_icons=2;
// capabilities
embeddability= KAppEmbeddable;
hidden=KAppNotHidden;
newfile= KAppSupportsNewFile;
// MIME types
datatype_list=
DATATYPE { priority=EDataTypePriorityNormal; type="text/html"; },
DATATYPE { priority=EDataTypePriorityLow; type="text/plain"; }
}
the include file 這裡aiftool.rh資源標頭檔案應該放置在每個資源定義檔案的頂部,這個檔案定義了aif檔案的結構,包括所有支援的語言以及預設的aif檔案
capabilites。
include
這個aiftool資源標頭檔案存放在標準的c++包含目錄:\Epoc32\Include\
UID 這裡的UID(0x10004299)是用來標識程式的唯一性數字,同樣的UID也定義在工程檔案中(mmp)。開發者可以從symbian developer network website獲得未使用的UIDs
Captions 標題是和圖示一起顯示在shell中的,下面標識標題為英文和法文都準備了:
};Icons 資源定義檔案還指明瞭本程式所使用的圖示數目,每個圖示都是由一個icon bitmap和一個mask所組成的,在這個列子裡,有2個圖示,因此圖示檔案將包含4個bitmaps(關於mask,前面已經講的很清楚了:) num_icons=2;
Capabilities Capabilities用來表示應用程式是embeddable,not hidden, 以及是否允許從system shell中產生新的文件。
MIME Types datatype_list語句塊表明該應用程式是和HTML以及plain text files相聯的。
如何編譯AIF檔案
概述當你已經產生了一個適當的資原始檔和點陣圖後,你必須將這些都編譯在一個單獨的二進位制aif檔案中,你可以用如下兩個方法:
使用abld來編譯
使用命令列工具aiftool和bmconv
使用abld進行編譯
使用abld工具編譯時,我們需要在mmp工程檔案中使用aif語句塊,它應該列出目標檔案和原始檔的路徑名,以及bitmaps檔案,如
aif hello.aif helloaif.rss icon1.bmp iconmask1.bmp icon2.bmp iconmask2.bmp
指明要在應用程式目錄中編譯成hello.aif,它是從原始檔helloaif.rss中,以及icon1.bmp已經icon2.bmp和他們的相關的mask。注意這裡mask bitmap必須緊跟在相關的icon後面。
在工程進行abld操作時才進行aif檔案的編譯,abld會呼叫低層的aiftool和bmconv來編譯aif檔案。這些工具也可以直接使用。
使用aiftool及bmconv編譯
點陣圖必須要轉化為一個單獨的multi-bitmap(.mbm)檔案,這使用的是bitmap轉換工具bmconv,你需要提供一個bitmap列表給bmconv,注意mask也是必須的。
生成aif檔案
Aiftool將編譯資源定義檔案,這要和mbm檔案一起,在aif檔案中,如:
aiftool hello hello.mbm
這裡使用hello.rss和hello.mbm,然後產生hello.aif。
程式資訊檔案
概述
應用程式資訊檔案,其副檔名為.aif檔案,用來儲存與應用程式相關的資料,這裡的資訊包括應用程式的:
各種尺寸的icon
所支援語言的標題
拓展性,如嵌入, 隱藏等
MIME-type支援屬性
aif檔案可以用如下幾種方法來生成:
透過GUI工具AIF Builder
透過手寫一個Aiftool資原始檔。
如果你要手寫一個Aiftool資原始檔:
如果你使用的是C++,你應該指明在abld處理Aiftool的處理,我們可以將AIF關鍵字安插在你的.mmp檔案中,如下:
AIF DDBouncingBall.aif ..\Aif DDBouncingBallAif.rss \
c12 DDBouncingBallIcon.bmp DDBouncingBallIcon_mask.bmp DDBouncingBallIcon_42x22.bmp DDBouncingBallIcon_42x22_mask.bmp
執行命令列Aiftool工具以生成aif檔案
我們使用C++reader和writer類來管理儲存在aif檔案中的資料(其中wirter類是很少使用的)。程式可以在沒有aif檔案的狀況下執行,在這種情況,一個預設的圖示被使用——一般是一個問號(依小糊塗看不然,預設的在s60至少不是問號,而是個拼圖狀的東東:);不支援MIMI型別;不支援embedding;不支援新檔案的產生;預設的標題就是它可執行檔案的名字,不過沒有副檔名。
如何構建一個AIF
概述下面的列子演示了怎麼去生成一個應用程式資訊檔案,你必須:
生成一個資源定義檔案(rss檔案)這個檔案中包含了一個結構,裡面定義了應用程式的UID,標題,圖示的數目,capabilities,以及MIME型別支援級別。
生成一個image和mask bitmap以便在shell中標識該程式。
生成資源定義檔案
最容易的方法就是複製一個現成的資原始檔來修改修改,主要是標題,UID,以及圖示的數目。大家可以看下面的列子:
#include
RESOURCE AIF_DATA
{
// uid
app_uid=0x10004299;
// captions
caption_list=
{
CAPTION { code=ELangEnglish; caption="Hello"; },
CAPTION { code=ELangFrench; caption="Bonjour"; }
};
// icons
num_icons=2;
// capabilities
embeddability= KAppEmbeddable;
hidden=KAppNotHidden;
newfile= KAppSupportsNewFile;
// MIME types
datatype_list=
{
DATATYPE { priority=EDataTypePriorityNormal; type="text/html"; },
DATATYPE { priority=EDataTypePriorityLow; type="text/plain"; }
};
}
the include file 這裡aiftool.rh資源標頭檔案應該放置在每個資源定義檔案的頂部,這個檔案定義了aif檔案的結構,包括所有支援的語言以及預設的aif檔案
capabilites。
include
這個aiftool資源標頭檔案存放在標準的c++包含目錄:\Epoc32\Include\
UID 這裡的UID(0x10004299)是用來標識程式的唯一性數字,同樣的UID也定義在工程檔案中(mmp)。開發者可以從symbian developer network website獲得未使用的UIDs
Captions 標題是和圖示一起顯示在shell中的,下面標識標題為英文和法文都準備了:
caption_list=
{
CAPTION { code=ELangEnglish; caption="Hello"; },
CAPTION { code=ELangFrench; caption="Bonjour"; }
};Icons 資源定義檔案還指明瞭本程式所使用的圖示數目,每個圖示都是由一個icon bitmap和一個mask所組成的,在這個列子裡,有2個圖示,因此圖示檔案將包含4個bitmaps(關於mask,前面已經講的很清楚了:) num_icons=2;
Capabilities Capabilities用來表示應用程式是embeddable,not hidden, 以及是否允許從system shell中產生新的文件。
MIME Types datatype_list語句塊表明該應用程式是和HTML以及plain text files相聯的。
如何編譯AIF檔案
概述當你已經產生了一個適當的資原始檔和點陣圖後,你必須將這些都編譯在一個單獨的二進位制aif檔案中,你可以用如下兩個方法:
使用abld來編譯
使用命令列工具aiftool和bmconv
使用abld進行編譯
使用abld工具編譯時,我們需要在mmp工程檔案中使用aif語句塊,它應該列出目標檔案和原始檔的路徑名,以及bitmaps檔案,如
aif hello.aif helloaif.rss icon1.bmp iconmask1.bmp icon2.bmp iconmask2.bmp
指明要在應用程式目錄中編譯成hello.aif,它是從原始檔helloaif.rss中,以及icon1.bmp已經icon2.bmp和他們的相關的mask。注意這裡mask bitmap必須緊跟在相關的icon後面。
在工程進行abld操作時才進行aif檔案的編譯,abld會呼叫低層的aiftool和bmconv來編譯aif檔案。這些工具也可以直接使用。
使用aiftool及bmconv編譯
點陣圖必須要轉化為一個單獨的multi-bitmap(.mbm)檔案,這使用的是bitmap轉換工具bmconv,你需要提供一個bitmap列表給bmconv,注意mask也是必須的。
生成aif檔案
Aiftool將編譯資源定義檔案,這要和mbm檔案一起,在aif檔案中,如:
aiftool hello hello.mbm
這裡使用hello.rss和hello.mbm,然後產生hello.aif。