3


使用專案

上一章解說 Sun JavaTM Wireless Toolkit for CLDC 如何幫助您進行 MIDP 開發周期。這一章會深入探討使用專案的詳細資訊,包括下列各項:


3.1 選取 API

每個專案都是根據某些 API 的集合建立而成。Sun JavaTM Wireless Toolkit for CLDC 可支援多個 API。第 1.6 節, 支援的技術詳細列出了其完整清單。工具組可讓您根據將來要執行軟體的裝置類型,開發某些 API 子集的應用程式。

例如,雖然工具組支援 Mobile 3D Graphics API JSR 184,但您可能想要開發不會利用到該 API 的應用程式。專案的 [API 選擇] 設定可讓您只選擇要使用的 API。

若要瞭解此運作方式,請啟動該工具組並開啟專案。按一下 [設定] 以顯示圖 3-1 中所示的視窗:

圖 3-1 專案設定視窗

[API 選擇] 的專案設定視窗。 目標平台為 MSA。

在 [API 選擇] 窗格上,[目標平台] 設定控制窗格其他部分的外觀。請選擇最符合需要的設定,並用下列控制項調整選項。例如,如果您要開發用於與 Java Technology for the Wireless Industry JSR 相容裝置的應用程式,請從組合方塊中選擇 [JTWI]。然後使用下方的控制項指定 CLDC 版本並選擇選擇性 API。

當您編譯原始碼時,工具組會套用您的選擇項目。



備註 - API 選擇項目不適用於模擬器。模擬器總是支援所有可用的 API。您在專案設定中選擇的 API 項目只適用於生成專案。基本上,API 選擇項目是選擇工具組於編譯及預檢驗原始碼檔案時,所用的類別路徑。




3.2 變更 MIDlet 套件屬性

專案設定視窗也可讓您控制 MIDlet 套件屬性,這些屬性儲存在描述元以及 MIDlet 套件 JAR 的清單檔案內。

若要查看屬性,請開啟某專案,然後按一下 [設定] 按鈕。設定視窗左側的圖示列有三個屬性圖示︰ [必需的]、[選擇性的] 以及 [使用者定義]。

如需必需的與選擇性的屬性定義,請參閱 MIDP 2.0 規格最終發行版本 2 (亦稱為 MIDP 2.1)。Sun JavaTM Wireless Toolkit for CLDC 會負責處理大部分細節。在開發前期,您可能完全不必顧慮屬性問題。但是當應用程式逐漸穩定,您開始考慮將應用程式部署在實際裝置上並準備上市時,就應該調整這些值。

若要調整 [必需的] 或 [選擇性的] 窗格上的值,請在要變更的屬性機碼旁的儲存格中按一下。輸入新的值。

圖 3-2 編輯 MIDlet 套件屬性

「Tiny」專案的 Midlet 套件屬性

若要建立新的使用者定義的屬性,請按一下 [用戶定義的] 圖示。按一下 [增加] 按鈕並填入特性名稱和值,然後按一下 [確定]。

若要編輯使用者定義的特性值,請按一下機碼旁的值欄,以設定必需或選擇性屬性的方式編輯屬性值。

若要移除屬性,請選取屬性,然後按一下 [移除]。


3.3 處理 MIDlet

專案設定同時提供一種方法,可新增或修改包含在當前 MIDlet 套件專案內的 MIDlet。若要瞭解此運作方式,請啟動工具組並開啟現有專案。按一下 [設定],然後選擇 [MIDlets] 圖示。就會顯示專案中所有 MIDlet 的清單。如果剛建好新專案,工具組會自動填入第一個 MIDlet 項目。

圖 3-3 專案中的 MIDlet 清單

「Tiny」專案的 MIDlet 清單

若要增加新的 MIDlet,請按一下 [增加],然後填入名稱、圖示檔案名稱與類別名稱。圖示檔案名稱可以保持空白。若要變更值或移除 MIDlet 項目,請使用 [編輯] 與 [移除] 按鈕。

使用者看到的 MIDlet 名稱順序是按照 MIDlet 套件的啟動順序。若要修改順序,請選取 MIDlet,再按一下 [上移] 或 [下移]。


3.4 使用推送註冊表

您也可以使用專案設定,來處理 MIDlet 套件的推送註冊表設定。請按一下 [設定...],並選擇 [推送註冊表] 圖示。

圖 3-4 專案推送註冊表設定

此圖顯示 WMADemo 專案的推送註冊表設定

若要在推送註冊表中新增項目,請按下 [增加],並填入連線 URL、MIDlet 類別及允許的寄件者值,然後按一下 [確定]。若要編輯某項目,請選取該項目,並按下 [編輯] 按鈕。若要移除推送註冊表項目,請選取該項目,再按一下 [移除]。

如果您為應用程式建立推送註冊表項目,請確定要一併輸入適當的權限。如需詳細資訊,請參閱第 6 章


3.5 設定內容處理器

Sun JavaTM Wireless Toolkit for CLDC 可支援由 JSR 211 定義的內容處理器 API (CHAPI)。CHAPI 的基本概念是 MIDlet 可依據內送的內容 (檔案) 啟動。現代行動電話可使用 SMS、紅外線、藍芽、電子郵件以及其他方式接收內容。大多數內容具有相關聯的內容類型。CHAPI 可指定系統,以便依據指定的內容類型啟動 MIDlet。

若要修改專案中的內容處理器設定,請按一下 [設定],然後選擇 [內容處理器] 窗格。

圖 3-5 配置內容處理器

已選取左側 [內容處理器] 圖示的 CHAPIDemo 專案設定視窗

清單中的每一行表示內容處理器的設定。此範例配置了兩個內容處理器,一個用於 TextViewer,另一個用於 ImageViewer。若要建立新的內容處理器,請按下 [增加];若要編輯現有的內容處理器,請按下 [編輯]。您可以選取一個內容處理器並使用 [上移] 與 [下移] 按鈕來調整其順序。若要移除清單中的內容處理器,請按下 [移除]。

當您增加或編輯內容處理器時,將顯示詳細資訊視窗︰

圖 3-6 內容處理器詳細資訊

已選取 [內容處理器] 標籤的 [內容處理器詳細資訊] 視窗

在 [類別] 欄位中填入 MIDlet 的名稱。ID 是用來呼叫內容處理器與控制存取的識別字串。

內容類型是該內容處理器所負責的內容類型清單。使用 [增加] 或 [移除] 管理該清單。尾碼字串是 URL 尾碼清單,一般用於代替明確的內容類型。最後,已允許存取是內容處理器的 ID 清單,表示可存取該內容處理器的其他內容處理器。如果該清單為空白,則任何其他內容處理器均可存取該內容處理器。

內容處理器具有相關聯的動作,讓呼叫的應用程式選擇處理內容的方式。例如,影像檢視器內容處理器可能包含檢視影像原始大小的動作,以及讓影像填滿可用螢幕空間的動作。按一下內容處理器詳細資訊視窗的 [動作] 標籤,以編輯內容處理器的動作。

圖 3-7 內容處理器動作

已選取 [動作] 標籤的 [內容處理器詳細資訊] 視窗

[動作] 清單包含用於此內容處理器之動作的內部名稱。語言環境指顯示易讀動作名稱時,可用的所有語言環境清單。本土化動作是一個表格,其中包含各種語言環境的易讀動作名稱。每一列是一種語言環境,欄則列出各個動作。閱讀一整列便可查看特定語言環境的所有易讀動作名稱。


3.6 專案目錄結構

每個專案都有標準的目錄結構。專案本身由 apps 子目錄中的目錄代表。例如,在 Windows 上,demos 專案位於 workdir\apps\demos 中。以下表格描述了專案目錄結構。


表格 3-1 專案目錄結構

目錄

描述

bin

封裝專案時,MIDlet 套件描述元與 JAR 檔案放在此目錄內。此目錄也包含未封裝的清單資訊,而且可能包含使用 [經由 OTA 執行] 時供內部使用的 HTML 檔案。

classes

此目錄用於儲存已編譯的類別檔案。

lib

將第三方程式庫放入此目錄,以將其包含在此專案中。

res

將影像、聲音與其他資源檔案存放於此目錄中。這些檔案會封裝入 MIDlet 套件 JAR 檔案的根目錄。

src

將原始碼檔案放入此目錄。

tmpclasses

由工具組使用。

tmplib

由工具組使用。

此外,專案目錄包含一個內含專案相關資訊的 project.properties 檔案。

若要移除專案的暫存目錄與檔案,請選擇 [專案] > [清除]。


3.7 使用第三方程式庫

Sun JavaTM Wireless Toolkit for CLDC 可讓您在應用程式中納入第三方程式庫。使用第三方程式庫可省去自行生成功能的時間從而縮短開發時間,但是您應該密切注意 MIDlet 套件 JAR 檔案的大小。

在應用程式中使用第三方程式庫時,第三方程式庫的大小會加進您的 JAR 中。您可以用混淆器縮小程式碼的大小,而且好的混淆器甚至會去除程式庫中您用不到的部分。即便使用混淆器,第三方程式庫的大小仍然可能比您從頭開始仔細撰寫的自訂程式碼大。您必須權衡在縮短開發時間與 MIDlet 套件 JAR 檔案的大小之間如何取捨。

Sun JavaTM Wireless Toolkit for CLDC 提供兩種併入第三方程式庫的方式。專案設定中的 [外部 API] 窗格可讓您輕鬆在專案中包含或排除程式庫。另外,您可以將程式庫置於特定位置,讓一個或所有專案得以使用。

3.7.1 使用外部 API

若要指定應包含的 API,請按一下 [設定],然後按一下 [外部 API] 圖示。系統將顯示可用的外部 API 清單 (此清單可能為空白)。

若要在生成時在類別路徑中增加 API,請核取 [使用] 欄中的方塊 (請參閱圖 3-8)。如果您想要 API 隨附至應用程式,還需核取 [束] 方塊。如果您知道應用程式要部署於缺少所選外部 API 的裝置上,請將這些 API 隨附於您的應用程式。

圖 3-8 選擇外部 API

CHAPIDemo 專案的外部 API。

3.7.2 一個專案的第三方程式庫

放在專案 lib 目錄內的任何程式庫檔案,都會包含在專案的生成與封裝中。程式庫應該是 Java 技術類別的 JAR 或 Zip 檔案。

因此,如果您安裝在 Windows 上且應用程式名為 Tiny,則類別程式庫將位於 workdir\apps\Tiny\lib。當您生成、執行、除錯與封裝專案時,會使用 lib 目錄中的類別檔案。

3.7.3 所有專案的第三方程式庫

有些裝置的程式庫可供所有安裝的 MIDlet 套件使用。例如,某家製造商可能提供額外的 API,讓該公司的所有裝置都可以使用。在這種情況下,您會希望在生成與測試應用程式時,能夠使用這些程式庫。但是因為安裝 MIDlet 套件的裝置上已經存在該程式庫,所以您不希望將程式庫包含在您的封裝 MIDlet 套件中。

只要將程式庫放在 workdir\apps\lib 目錄中即可實現此功能。此目錄中的程式庫可供所有專案使用。


3.8 配置 Wireless Toolkit

工具組包括一些進階的配置選項。您可透過編輯 ktools.properties 檔案的副本使用這些選項,該檔案可在以下位置找到:


Windows:

toolkit\wtklib\Windows\ktools.properties

Linux:

toolkit/wtklib/Linux/ktools.properties

ktools.properties 複製到 workdir/os/wtklib,並按本小節其餘部分的描述進行變更。

變更 ktools.properies 所產生的效果在下次啟動工具組時才能看到。

3.8.1 變更主控台字型

若要變更主控台 (和其他文字區域) 中使用的字型,可以編輯兩個特性。以下為將字型變更為 Times New Roman 20 號的範例︰

font.JTextArea=Times New Roman
font.size.JTextArea=20

若要復原預設字型與大小,請移除這兩個特性。

3.8.2 設定應用程式目錄

依預設,Sun JavaTM Wireless Toolkit for CLDC 將應用程式儲存在您工作目錄的 apps 子目錄中。您可以在 ktools.properties 中以下列格式新增一行來做變更:

kvem.apps.dir: 應用程式目錄

對於 Windows,目錄路徑中任何反斜線 (\) 字元之前,必須加上另一條反斜線。而且,目錄路徑不得包含任何空格。

例如,若要將應用程式目錄設定為 D:\dev\midlets,請使用:

kvem.apps.dir: D:\\dev\\midlets

Linux 路徑則可以依常規指定。

3.8.3 設定 javac 編碼特性

依預設,javac 使用您正在執行之 Java SE 平台所設定的編碼。如需有關如何置換預設原始碼檔案編碼的資訊,請參閱附錄 C

3.8.4 使用修正控制系統

使用 filterRevisionControl 特性可以配置工具組,以辨識並忽略 SCCS、RCS 與 CVS 修正控制系統所建立的輔助檔案。

若要識別並忽略輔助檔案,請在 ktools.properties 中包括以下行:

kvem.filterRevisionControl: true

這樣可以防止工具組將修正控制檔案視為原始碼檔案和資源檔案。例如,工具組會將名稱為 src\SCCS\s.MyClass.java 的檔案視為 SCCS 修正控制檔案,而非 Java 技術原始碼檔案。