天天看點

BREW SDK 中的工具

版權聲明:本文為半吊子子全棧工匠(wireless_com,同公衆号)原創文章,未經允許不得轉載。 https://blog.csdn.net/wireless_com/article/details/6507742

BREW模拟器在3.X以前的版本叫Emulator,3.x及以上版本叫Simulator,隻有功能上的改進,沒有本質的不同,為了友善起見這裡都使用模拟器這個概念。BREW模拟器可以用來模拟各種的手持裝置,并測試在BREW環境下開發的應用和擴充類。

MIF 編輯器用來建立 MFX和 MIF 檔案。 BREW3.x之前的版本隻有MIF檔案,MFX 是開發 MIF 過程中使用的 XML 格式中間檔案。從3.X開始,MIF是一種從 MFX 檔案編譯而成的特殊類型資源檔案,其中包含有關子產品 (MOD) 檔案内容的資訊。MIF建立之後,将以二進制形式加載到目标裝置。 在模拟器上運作應用程式時,也要使用 MIF。

在了解MIF編輯器的功能前,先要弄清楚一個概念就是ClassID。BREW中ClassID必須唯一,任何兩個應用或非應用不應該具有相同的ClassID。如果ClassID不能確定唯一性的話,當具有同樣ClassID的兩類出現在同一手機中,該裝置中的AEE就會混淆,而且隻能找到其中的一個。由于終端使用者在下載下傳應用包的過程中可能将許多應用的組合一股腦地存放在無線裝置中,是以無法保證ClassID唯一性的後果是不堪設想的。可以在MIF編輯器中取得ClassID,也可以登陸BREW開發商外聯網,通過BREW ClassID生成器來獲得。這樣就可生成一個擴充名為.bid的檔案,可以下載下傳并包含在應用中。每個 BID 檔案均包含唯一的 32 位類型 ID,并具有指定的名稱(例如 AEECLSID_APP)。 ClassID儲存在 MIF 中,而 BID 檔案包含在子產品來源檔案(例如 app.c)中。這使得應用可以根據AEE 提供的ClassID 為其建立執行個體。

在 MIF 編輯器中輸入必要的資訊後,用将 MFX 編譯為 MIF,可以使用适于不同裝置顯示屏的圖像建立多個 MIF。 應用在編譯連結後生成可執行檔案,即為模拟器生成 app.dll,為目标裝置生成 app.mod。 要在模拟器上加載此應用,要指定包含 app.mif和app.dll 的目錄。選擇執行其中該應用時,模拟器将加載 app.dll,以建立應用的執行個體并開始執行。

每個 BREW 子產品均包含一個或多個應用,也可以是擴充類應用。

MIF 中還包含每個應用的文本字元串,以及在可運作應用菜單中代表應用的一個或多個圖形圖示。MIF中還包含其它可确定子產品權限級别的資訊,以及該應用可從其它應用接收到的通知。

在手機上,MIF與包含每個子產品目錄的檔案夾處于同一層次。子產品目錄的名稱與 MIF 的字首名稱相同。模拟器允許MIF 目錄的選擇獨立于包含子產品可執行檔案的目錄,以便在多個裝置上模拟應用的執行。

資源編輯器可以建立支援不同手機和語言的資源檔案。通過從代碼分離資源并在運作時間加載,可以避免将源代碼與每個所支援的語言和手機的獨立編輯标記相混淆。資源編輯器可以使用以下檔案格式:

BRX是 XML 格式的中間檔案,在生成最終輸出之前,可以使用資源編輯器對其進行編輯和儲存。資源編輯器不要求此中間檔案使用 BRX 擴充名,隻要檔案包含正确的 XML 格式有效資料,不管擴充名是什麼,資源編輯器都能夠對其進行解釋。BAR是由資源編譯器作為最終輸出的一部分生成的二進制檔案。BRH是由資源編譯器作為最終輸出的一部分生成的頭檔案。

BREW 3.x 以前的版本使用擴充名為 BRI 的二進制中間格式。為了相容,資源編輯器仍然支援此格式,但是建議将所有 BRI 檔案轉換為 BRX 檔案。

手機裝置配置器可用于建立和配置模拟器使用的裝置檔案,即與手機相關的軟硬體屬性檔案。然後通過模拟器,再在各種裝置上測試應用程式。裝置檔案首先包含的是要配置的裝置的圖像,一般由實際裝置的圖檔生成。接着是每個裝置按鍵的圖像區域,然後定義按鍵以及每個按鍵要傳送給應用的事件代碼,還可以定義裝置的螢幕大小、字型、支援的語言和顔色深度。

由手機裝置配置器組織的裝置的項目包括以下元件:裝置檔案(QSC/DPK),對正常裝置屬性和特定的裝置對象及其屬性等資訊進行編碼。另外,它還包含裝置圖像檔案的引用。位圖圖像檔案包括主圖像檔案和可選的按下按鈕産生的圖像檔案。另外,裝置和圖像檔案必須位于同一目錄下。

            對于3.x及其以上版本,CP/SP一般隻使用手機裝置配置器來浏覽手機裝置的資訊,而不做其他的修改操作。

本文來自CSDN部落格,轉載請标明出處:

http://blog.csdn.net/wireless_com/archive/2010/07/14/5734449.aspx