開發Series 60項目的時候你可以使用的各種選項總結在表1-1中。Symbian、Nokia和開發工具廠商Borland、Metrowerks正在提供更多的選擇。但是,似乎微軟開發工具,盡管它目前可行並被廣泛地使用,在可預見的未來無法受到支持。
<!-- frame contents -->
<!-- /frame contents -->
在微軟、Borland和Metrowerks的多種IDE的功能之間目前有一些值得注重的差別。對後兩種開發環境的增強正在進行之中。EMCC軟件有限公司把所有的三種廠商的IDE都作為自己開發活動的基礎。我們也天天使用命令行工具——並不是因為我們原意,而是由於我們目前只能這樣做。這是為目標設備建立程序和自動化通宵編譯過程的基本操作。C++BuilderX和CodeWarrior IDE現在可以用於為目標設備建立程序——但並不是所有的基本的建立操作都受到全部IDE的支持。
在寫作本文的時候,開發任何Series 60項目的最輕易的和最通用的出發點是定義一對bld.inf和.mmp項目文件。在EMCC軟件公司,這些文件用於任何特定IDE項目文件的生成過程,並且可以在任何需要的命令行建立過程中使用。這種方法也是Symbian和Nokia在它們的SDK和文檔中提供的每個簡單的項目目前所采用的方法。在目前情況不斷變化的情況下使用專用的IDE是不可行的。各種情況很快就會發生變化,而這正式Symbian OS和Series 60開發人員的真實生活。
表1-1.基於PC的開發選項綜合
選項
描述
命令行建立操作
使用Symbian OS工具進行編譯和鏈接,使用微軟Visual C++編譯器/鏈接器為模擬器進行建立操作,從命令行調用。模擬器也可以從命令行調用。PC模擬器上的源代碼層的調試需要在IDE中進行。
從命令行提示符調用用於ARM目標設備的GNU C++的跨平台編譯器和鏈接器。
微軟Visual C++ IDE
在IDE中使用微軟Visual C++編譯器/鏈接器為模擬器建立操作進行編譯和鏈接。
從命令行提示符調用用於ARM目標設備的GNU C++的跨平台編譯器和鏈接器。
Borland C++ IDE
目前兩種IDE選擇都可以使用。兩者都在IDE之中使用Borland C++編譯器和鏈接器進行模擬器建立操作。
從命令行提示符調用用於ARM目標設備的GNU C++的跨平台編譯器和鏈接器。
Metrowerks CodeWarrior C++ IDE
在IDE內部使用Metrowerks編譯器和鏈接器進行模擬器建立操作。
直接從命令行或CodeWarrior IDE內部調用ARM目標設備建立操作所需要的GNU跨平台編譯器和鏈接器。
在本文的剩余部分中,我們使用HelloWorld示例項目來演示Series 60模擬器的開發、調試和部署過程的所有步驟。
我們也提供了示例應用程序需要的其它的所有文件——例如頭文件(.h)、源文件(.cpp)和用戶界面資源文件(.rss)。
你可以使用Series 60模擬器測試該應用程序,或者在某個IDE中啟動它,或者從命令行提示符上運行它。但是,在模擬器上調試應用程序必須在IDE內部進行。
在模擬器上開發、運行、測試和調試應用程序之後,一般你都希望在目標設備上建立和運行該程序。因此我們還演示了如何為目標設備建立示例應用程序,如何部署它,並在目標Series 60硬件上運行它。
更多內容請看C/C++技術學堂 C/C++技術專題 C/C++相關文章專題,或
Series 60模擬器 Series 60應用程序的開發、調試和最初的測試一般都在PC模擬器上進行,該模擬器提供了一種基於微軟Windows的Series 60設備的實現。
<!-- frame contents -->
<!-- /frame contents -->
在大多數情形中你會發現基於模擬器的開發過程與在真實的設備上運行的應用程序的操作是非常相似的;因此你的主要工作在硬件設備可以使用之前就可以進行了。模擬器的精確界面與提供的圖形會有很大的不同,它依靠於你使用的目標平台、Series 60的版本和所選擇的IDE。此外,還可能添加或刪除一些按鈕或其它的操作元素以模擬現實的設備的配置。同樣,模擬器上可以使用的應用程序也依靠於平台的版本和設備廠商的選擇。
模擬器和真實的設備之間有些差異無法避免。真實的Series 60設備可能帶有硬件附件(例如照相頭)和其它特性(例如後台振動)。因此有時候硬件對於開發和測試是必要的。此外,基於PC的模擬器不能精確地模擬精確計時、應用程序性能和內存治理的問題。
對於基於PC的開發,編輯/編譯/建立周期是基於微軟Windows開發工具集的。但是,與依靠Win32或MFC類庫進行鏈接和建立不同,開發者將依靠於Series 60 SDK安裝的頭文件和PC格式的類庫來進行鏈接和建立。作為結果的Windows格式的二進制可執行文件就可以在以PC的模擬器上運行了。
在開發過程中,特定IDE的項目文件治理著所有的鏈接和建立細節信息。它同時確保了建立操作的所有輸出和其它需要的資源文件(例如應用程序資源文件)都被放到了適當的位置以供在模擬器環境下進行運行和調試。
根據圖1-2,Series 60顯示屏邏輯上被分成三個區域:狀態塊、主塊和控制塊。
圖1-2. Series 60模擬器
狀態塊是屏幕頂部的刻度條(在模擬器上是藍色的)加上它上面的區域。主塊是屏幕中間的,位於狀態條和屏幕底部之間的軟按鍵(soft key)標簽之間的部分。控制塊是緊接著主快,包含了軟按鍵標簽。
狀態塊可以顯示當前應用程序的信息和設備的一些普通信息(例如信號強度和電池情況)。它在大多數情形中是可視的,但是有時候是隱藏的。例如很多游戲就使用了整個屏幕。
主塊是屏幕的主要區域,應用程序可以在這兒顯示數據。典型情況下,這個區域作為客戶端矩形引用,它通常被應用程序的數據顯示所填滿。
控制塊占據了屏幕的下部,它顯示了與兩個軟按鍵相關的標簽,並根據需要顯示滾動條。與狀態塊類似,控制塊有時候也可以隱藏。在這種情況下,在Series 60中樣式指導假定用戶可以使用Options菜單(左邊的軟按鍵的默認的標簽),即使它是不可視的(請參考Series 60 SDK文檔提供的“Nokia Series 60游戲UI樣式指導”)。
控制塊下面的兩個按鈕分別是左和右軟按鍵,用於選擇當前關聯的Options菜單或標記的操作。四路導航按鍵可以上下左右滾動,假如按下(點擊)中間就可以進行選擇。
你可以通過PC鼠標或光標按鍵在顯示屏上的對象之間進行導航,從而與模擬器交互操作。我們可以直接地使用鼠標點擊來選擇文件夾或其它顯示的對象,而不需要使用四路導航按鍵(僅僅在模擬器上可行)。我們可以使用PC鍵盤進行數據輸入,或者通過點擊模擬器上的12位鍵區來輸入。因此與模擬器的交互操作是類似於、但並不是完全與使用真實的Series 60一樣的——在真實的設備上沒有筆輸入,因此所有的移動和選擇都是通過光標導航完成的。
更多內容請看C/C++技術學堂 C/C++技術專題 C/C++相關文章專題,或