回覆列表
  • 1 # 使用者6602652349876

    程式資訊檔案

    概述

    應用程式資訊檔案,其副檔名為.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。

  • 中秋節和大豐收的關聯?
  • 工作最早開始時間如何計算?