AIF[程式信息檔案]

AIF[程式信息檔案]
更多義項 ▼ 收起列表 ▲

應用程式信息檔案,其擴展名為.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 <aiftool.rh>

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.rh>

這個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。

相關詞條

熱門詞條

聯絡我們