隨筆 - 2, 文章 - 10, 評論 - 3, 引用 - 0
          數(shù)據加載中……

          采用 Marv The Miner 的 J2ME MIDP 設備破碎教程(轉載)

          • 如何將現(xiàn)有分段的 MIDP 項目移植到 NetBeans
          • 如何使用 IDE 的內置設備破碎解決方案

          本教程使用的示例程序是流行的 J2ME 游戲 "Marv The Miner",這是在 GPL 下發(fā)布的程序,并且編寫為在幾個不同的移動平臺上運行。

          完成本教程大約需要兩個小時的時間,并且包括以下主題:

          • 從現(xiàn)有 MIDP 項目導入源。
          • 創(chuàng)建和定制每個分發(fā) Jar 的項目配置。
          • 標記特定于每個配置的源代碼段。
          • 為項目生成幾個分發(fā) Jar。
          • 通過 IDE 使用外部仿真器。

          要完成本教程,您需要 MarvTheMiner_120_all.zip 文件,該文件包含此程序的原始源文件。單擊此處,下載“Marv the Miner v1.2.0(包括級別編輯器)”,以獲得源文件。

          1. 設置環(huán)境
          2. 獲取所需源文件
          3. 在 NetBeans 中開發(fā) Marv The Miner 應用程序
          4. 生成和執(zhí)行 Marv the Miner 應用程序
          5. 深入探討配置
          6. 使用不符合 UEI 的仿真器平臺

          設置環(huán)境

          此節(jié)介紹如何在開始本教程之前對系統(tǒng)進行設置。

          獲取并安裝所需軟件

          示例所需的軟件如下:

          使用下載站點提供的說明安裝該軟件。

            啟動 IDE

            要啟動 NetBeans IDE,請執(zhí)行以下操作:

              • 在 Microsoft Windows 上
                選擇“開始”>“程序”>“NetBeans版本”> "NetBeans IDE"。
              • 在 UNIX 或 Linux 環(huán)境上
                在終端窗口中,鍵入 sh IDE-install-path/bin/runide.sh

            IDE-install-path 變量代表 IDE 起始目錄的路徑。

            獲取所需源文件

            MarvTheMiner_120_all.zip 文件包含原始 Marv The Miner 應用程序的源文件。該 zip 包括一個 MarvTheMiner 目錄,其中包含您將在本教程中使用的 srcres 子目錄。

            要解壓縮 MarvTheMiner_120_all.zip 文件,請執(zhí)行以下操作:

            1. 在您的文件系統(tǒng)中,創(chuàng)建一個臨時位置,用于放置 MarvTheMiner_120_all.zip 的內容。
              例如,在本教程中,該目錄指的是 C:\temp 目錄。
            2. 使用用于解壓縮文件的應用程序將 MarvTheMiner_120_all.zip 文件解壓縮到 temp 目錄。
              temp 目錄現(xiàn)在擁有 MarvTheMiner 目錄,其中包含以下文件和子目錄:
              文件或子目錄
              描述
              src 構成 Marv The Miner 程序的源文件。
              res 包含該程序所使用的資源文件。其中包括圖,以及用于定義游戲級別布局的 .map 文件。
              MarvEditor 級別編輯器(不在本教程的討論范圍之內)。
              Nokia.full 該游戲的 Nokia 生成形式。
              MIDP.full 該游戲的一般 MIDP 生成形式。

            3. 將 res 目錄移動到 C:/temp/MarvTheMiner_120_all/src/。為了在創(chuàng)建新的 NetBeans 項目之后確保資源文件保持正確的相對路徑,可以使用這種簡單的解決方法。

            在 NetBeans IDE 中開發(fā) Marv The Miner 應用程序

            本節(jié)介紹如何在 NetBeans IDE 中設置和使用現(xiàn)有項目源。

            導入現(xiàn)有源

            創(chuàng)建項目

            第一步是在 NetBeans IDE 中創(chuàng)建一個新項目。

            1. 從主菜單中選擇“文件”>“新建項目”。
              將顯示“新建項目”向導。
            2. 在“類別”列表中選擇“移動”。然后選擇“來自現(xiàn)有 MIDP 源的移動項目”,并單擊“下一步”。
            3. 如果未使用安裝程序安裝 NetBeans,則此處將顯示一個面板,指導您安裝移動平臺。按照說明執(zhí)行操作,并安裝某些版本的 Wireless Toolkit。然后單擊“下一步”。
            4. 對于“導入的源的位置”,單擊“瀏覽”按鈕并導航至您在解壓縮 MarvTheMiner_120_all.zip 文件時創(chuàng)建的 C:/temp/MarvTheMiner_120_all/src 目錄。選擇 src 目錄,然后單擊“打開”。單擊“下一步”。
            5. 輸入新項目的名稱。例如,將其命名為 MarvTheMiner
            6. 現(xiàn)在,選擇新項目目錄所在的目錄。確保已選中“設置為主項目”復選框,并單擊“完成”。
              將創(chuàng)建新項目 MarvTheMiner,并且顯示在 IDE 的“項目”標簽中。
            7. 展開 MarvTheMiner 根項目節(jié)點,以查看該項目的源和資源。展開 <缺省包> 節(jié)點,然后雙擊 Main.java,以在編輯器中打開該文件。

            創(chuàng)建項目配置

            NetBeans 設備破碎解決方案基于對項目配置的使用。對于一個項目而言,為該項目創(chuàng)建的每個分發(fā) Jar/Jad 都應該擁有一個項目配置。

            如果您檢查文件 Main.java,將看到作者支持具有(Nokia 的 FullCanvas)和 Class.forname() 注釋組合的多個平臺。同時還定義了變量 vendor,該變量用于跟蹤運行應用程序的電話。根據此信息,您可以看到他們支持五組不同的電話:

            • Nokia Series 60
            • 其他 Nokia 產品
            • Motorola
            • Vodafone
            • 其他

            同樣,您將創(chuàng)建四個配置來處理這些分發(fā)之間的差異。

            創(chuàng)建配置
            1. 右鍵單擊 MarvTheMiner 項目節(jié)點,并選擇“屬性”。
              此時將打開“項目屬性”頁面,用于控制項目多方面的內容。
            2. 單擊該頁頂部的“管理配置”按鈕。此時將打開“管理配置”對話框。
            3. 單擊“添加”,然后鍵入 NokiaSeries60 并按“確定”。
            4. 對于 MotorolaVodafoneNokiaOther 重復前面的步驟。單擊“關閉”可關閉“管理配置”對話框。

            位于“項目屬性”頁頂部的“項目配置”組合框現(xiàn)在應該包含五種配置。我們馬上會使用這些設置,但是現(xiàn)在要向 IDE 添加一些仿真器。

            向 IDE 添加仿真器

            要使用已經安裝在計算機上的仿真器平臺運行項目,首先必須在 IDE 中進行注冊。

            1. 在“項目配置”組合框中選擇 "DefaultConfiguration",然后選擇“平臺”節(jié)點。單擊“管理仿真器”按鈕。將出現(xiàn)“平臺管理器”對話框。

              請注意,還可以從“工具”>“Java 平臺管理器”的主菜單訪問該對話框。

            2. 單擊“添加平臺”,并導航至安裝 Nokia Series 60 仿真器的目錄。單擊“下一步”。
            3. 確保仿真器設置檢測正確,然后單擊“下一步”。
            4. 如果需要,在此您可以指向該仿真器的源文件和 javadoc 文件。否則,只需單擊“完成”,以完成該平臺的安裝。
            5. 對于您的機器上已經安裝的每個仿真器平臺,以及要通過 IDE 使用的每個仿真器平臺重復這些步驟。

              請注意,IDE 只能檢測到符合 UEI 標準的仿真器。遺憾的是,這意味著不能檢測開發(fā)人員用于 Marv The Miner 的 Motorola 7.5 仿真器。本教程后面的章節(jié)將介紹通過 IDE 使用不符合 UEI 的仿真器的解決辦法。

            針對配置定制項目設置

            可以針對每個項目配置單獨定制“項目屬性”頁上的每個面板。缺省情況下,配置將使用在缺省配置中定義的設置。

            1. 打開“項目屬性”頁,并選擇“平臺”面板。確保在“項目配置”組合框中選中 "DefaultConfiguration"。
            2. 在“仿真器平臺”組合框中選擇 "J2ME Wireless Toolkit 2.x"。將單選按鈕切換為 CLDC-1.0 和 MIDP-2.0。
              缺省情況下,所有配置將使用此仿真器來生成和執(zhí)行項目。然而,這并不是我們想要的結果,因為代碼引用幾個特定于平臺的庫。
            3. 從“項目配置”組合框中選擇 NokiaSeries60 配置。
              “平臺”面板現(xiàn)在完全灰顯。這是因為當前對此面板使用 "DefaultConfiguration" 中的值。
            4. 取消選中該面板頂部的“使用 "DefaultConfiguration" 中的值”復選框。
              該面板中的所有元素現(xiàn)在將處于啟用狀態(tài)。從“仿真器平臺”組合框中選擇 Series 60 MIDP Concept SKD Beta 0.3.1 Nokia 平臺。

              如果在各個配置之間進行切換,您將看到,現(xiàn)在除了 NokiaSeries60 配置之外,所有配置都使用在 DefaultConfiguration 中指定的值。如果您更改了“DefaultConfiguration 平臺”面板中的任何配置設置,所做的更改將傳播到除 NokiaSeries60 之外的所有配置。

            5. 在“項目配置”組合框中選擇 "NokiaOther" 配置。取消選中“使用 "DefaultConfiguration" 中的值”復選框,并選擇一個您安裝的其他 Nokia 平臺。
            6. 也可以針對 Vodafone 平臺重復這些步驟。
            7. 如上所述,Motorola 7.5 仿真器不符合 UEI,因此不能安裝到 IDE 中。然而,為了進行編譯,我們仍然可以指向其 API。激活 Motorla 配置,并選擇“庫和資源”面板。
            8. 取消選中“使用 "DefaultConfiguration" 中的值”復選框。
            9. 單擊“添加 Jar/Zip”,并導航至 {motorola 安裝目錄}\Emulator7.5\lib。選中每個 .zip 文件(使用 Ctrl+ 鼠標),然后單擊“打開”。
            10. 單擊“確定”退出項目屬性。現(xiàn)在您已經完成項目配置的創(chuàng)建任務。
            為每個配置創(chuàng)建定制代碼塊

            設備破碎解決方案的第二部分是能夠指定源文件中的某些代碼塊,以使其特定于一個或多個配置。通過使用右鍵單擊編輯器上下文菜單中的操作或通過“編輯”>“預處理程序塊”菜單可以完成此任務。

            1. 打開 Main.java,并檢查 initStaticData() 方法。此處,該方法確定在運行時中哪些特定于設備的 API 可用,并隨后執(zhí)行相應的操作。這是一個非常智能的解決方案,可以解決設備破碎某些部分的問題。遺憾的是,該解決方案也存在會添加分發(fā) Jar 的大小,從而影響運行時性能及提高源復雜性的問題,并且不能解決所有分段問題(您隨后會看到這一點)。

              以下是 initStaticData() 的相關部分:

              vendor = 0;
              try
                 {
              // Nokia
              Class.forName("com.nokia.mid.sound.Sound");
              vendor = 1;
              try
                     {
              Class.forName("com.nokia.mid.ui.DeviceControl");
              com.nokia.mid.ui.DeviceControl.setLights(0,100);
              vendor = 2;
                     }
              catch(Exception ex2){}
                 }
              catch(Exception ex){}
              
              try
                 {
              // Vodafone
              Class.forName("com.vodafone.v10.system.device.DeviceControl");
              com.vodafone.v10.system.device.DeviceControl.getDefaultDeviceControl().
              setDeviceActive(com.vodafone.v10.system.device.DeviceControl.BACK_LIGHT,
              true);
              vendor = 3;
                 }
              catch(Exception ex){}
              
              try
                 {
              // Motorola
              Class.forName("com.motorola.multimedia.Vibrator");
              Class.forName("com.motorola.multimedia.Lighting");
              com.motorola.multimedia.Lighting.backlightOn();
              vendor = 4;
                 }
              catch(Exception ex){}
                                  
            2. 刪除所有只涉及確定程序在哪個設備上運行的功能,因此剩下的代碼如下:
               // Nokia
              com.nokia.mid.ui.DeviceControl.setLights(0,100);
              
              // Vodafone
              com.vodafone.v10.system.device.DeviceControl.
              	getDefaultDeviceControl().
              	setDeviceActive(com.vodafone.v10.system.device.DeviceControl.BACK_LIGHT,
              			true);
              
              // Motorola
              com.motorola.multimedia.Lighting.backlightOn();
                                  

              現(xiàn)在您擁有與不同配置關聯(lián)的三個代碼塊。

            3. 突出顯示特定于 Motorola 的行,然后右鍵單擊編輯器,并選擇“預處理程序塊”> "Motorola"。
            4. 對于 Vodafone 塊重復此步驟(“預處理程序塊”> "Vodafone")。
            5. 對于 Nokia 代碼,選擇“預處理程序塊”>“管理預處理程序塊”。
              此時將打開“管理預處理程序塊”對話框。
            6. 選擇 "NokiaOther" 和 "NokiaSeries60" 的選項,然后單擊“確定”。

              這些代碼塊現(xiàn)在與預處理程序塊的頁眉和頁腳中列出的配置相關聯(lián)。如果活動配置是預處理程序塊頁眉和頁腳的一部分,則更改項目的活動配置將觸發(fā)一個預處理程序,該程序將注釋或注釋掉所基于的塊。

            7.  通過使用主工具欄中的組合框可更改項目的活動配置。
              還可以通過從主“生成”菜單中的相同菜單右鍵單擊項目節(jié)點 >“設置活動項目配置”> 選擇配置,或通過切換主工具欄中的“配置”組合框(如果項目當前是主項目)來完成此操作。

              請注意,代碼塊突出顯示的顏色將發(fā)生變化,以標識哪些塊處于活動狀態(tài),哪些塊處于非活動狀態(tài)。活動配置名稱也將在代碼塊的頁眉/頁腳中突出顯示一個不同的顏色。
            8. beep() 方法中刪除 class.forName() 的所有實例。如果還要精簡 if 塊,則剩下以下代碼:
              if (midlet.muteSound == 0)
              {
              // Nokia 3650, 7650
              com.nokia.mid.sound.Sound sound = new com.nokia.mid.sound.Sound(1000,100);
              sound.play(1);
              // All other Nokias
              com.nokia.mid.sound.Sound sound = new com.nokia.mid.sound.Sound(1000,100);
              sound.play(1);
              
              }
              
              if (midlet.useVibra == 1)
              {
              // Nokia
              com.nokia.mid.ui.DeviceControl.startVibra(50,500);
              // Vodafone SDK
              com.vodafone.v10.system.device.DeviceControl.
              	getDefaultDeviceControl().
              		setDeviceActive(
              			com.vodafone.v10.system.device.DeviceControl.VIBRATION,
              			true);
              vibra_delay = 10;
              
              // Motorola 7.5
              com.motorola.multimedia.Vibrator.
              	setVibrateTone(
              		com.motorola.multimedia.Vibrator.VIBRATE_LONG);
              com.motorola.multimedia.Vibrator.vibrateFor(500);
              
              }
              

              您應該能夠將每個塊與正確配置相關聯(lián)。切記將 Nokia 振動控制調用與兩個 Nokia 配置相關聯(lián)。

            9. run() 方法也包含特定于 Vodafone 的調用。刪除 try/catch 塊,并將這兩行與 Vodafone 配置相關聯(lián)。

              我們馬上就能完成任務了。最后一步是以某種方式來處理 Nokia 的 FullCanvas

            10. 激活 NokiaSeries60 配置。
            11. 右鍵單擊 FullCanvas 聲明,并選擇“創(chuàng)建 If/Else 程序塊”(NokiaSeries60)。
            12. 右鍵單擊第一個塊,并添加 NokiaOther。
            13. 右鍵單擊第二個塊,并添加 NokiaOther。
            14. 第二個塊是倒置的塊。將此倒置的塊類定義更改為 extend Canvas

            完成后,類定義如下:

            生成和執(zhí)行 Marv the Miner 應用程序

            生成和執(zhí)行應用程序

            此時,我們應該能夠針對所有配置編譯和運行該程序。單擊主工具欄上的任何圖標將對活動配置執(zhí)行所選的操作。

            1. 在主菜單中,選擇“生成”>“生成所有主項目配置”。
              假設所有項目均已正確設置,現(xiàn)在應該可以生成所有配置了。

              如果您不能訪問包含正確 API 的一個或多個仿真器平臺,則此步驟可能失敗。如果出現(xiàn)這種情況,您應該手動注釋掉任何對不存在的 API 進行的調用。

              如果您未按照這些步驟手動安裝不符合 UEI 的仿真器一節(jié)中描述的 Motorola 仿真器,則針對 Motorola 配置的預校驗將失敗。為了在不手動添加仿真器的情況下進行此配置的編譯,您可以注釋掉所有 motorola API 調用,并從“庫和資源”面板中刪除 motorola 庫。

            2. 選擇 IDE 左上方的“文件”標簽,并展開 dist 文件夾。在此文件夾中,您應該擁有包含每個已成功生成配置的 Jar/JAD 的目錄,以及代表 DefaultConfiguration 生成的 Jar/Jad。
            3. 按 F5 可采用當前選定的配置運行該程序。您可以切換配置,并再次按 F5,同時運行該程序的多個版本。

              5. 深入探討配置

              通過本教程,您可以熟練掌握如何將現(xiàn)有 MIDP 項目導入到 NetBeans 環(huán)境中,但是它并未將 IDE 解決的所有設備破碎問題全部列出。以下列舉了一些常見問題的更多示例及如何通過 IDE 來解決。

              • 項目屬性頁中的每個面板都是特定于配置的(“一般”頁除外)。從而為您提供了極大的靈活性。例如,對于每個配置唯一命名的(“創(chuàng)建 Jar”面板)分發(fā) Jar,您可以擁有不同的 MIDlet-Version 值(“應用程序描述符”面板)。
              • 在設置項目之間的相關項時,特別是在使用“項目配置”時,應確保在“選擇項目”對話框的“項目 Jar 文件”列表框中選擇正確的輸出 jar。將顯示所選項目中每個配置的項目 Jar。

                例如,您擁有兩個項目 MyLibrary 和 MyApplication,這兩個項目均包含兩個配置 ReleaseConfiguration 和 DebugConfiguration,則可以執(zhí)行以下步驟來設置正確的相關項:

                • 打開 MyApplication 的“項目屬性”。在“項目配置”組合框中選擇 "ReleaseConfiguration"。
                • 選擇“庫和資源”面板,然后單擊“添加項目”按鈕。
                • 導航至 MyLibrary 項目的位置。“項目 Jar 文件”列表框現(xiàn)在包含三個項目 Jar。在路徑 dist/ReleaseConfiguration/ 中選擇其中之一,然后單擊“添加項目 Jar 文件”
                • 切換到 DebugConfiguration,并重復這些步驟,除非此時添加位于 dist/DebugConfiguration/ 中的項目 jar。

                這是在進行配置時設置項目之間相關項所采用的方式。

              • 該解決方案是 VCS 友好型的。所有源文件將始終保存到硬盤驅動器上,就好像已選中 DefaultConfiguration 一樣。從而可以防止在 VCS 檢入期間發(fā)生沖突,或由于擁有不同的活動配置而導致更新。還要確保共享 project.properties 文件(位于 {projecthome}/nbproject)!
              • 可以通過命令行來運行項目,而不用使用 IDE。只需在項目起始目錄中鍵入 ant run,項目就會使用活動配置運行。通過鍵入 ant run -Dconfig.active={config_name},您可以將不同的配置傳遞到 ant 腳本
              • 使用現(xiàn)有預處理程序解決方案的項目應該易于導入。雖然 NetBeans 預處理程序相比之下不太復雜,但是卻可以使用提供的指令表達任何情況。
              • 使用“庫和資源”面板或“過濾”面板可以決定應該將哪個版本的資源部署到分發(fā) Jar。
                • 庫和資源:創(chuàng)建一個 Jar 文件的多個版本(該文件包含應用程序的所有資源),然后指向每個配置正確的 Jar 版本。因此您可能擁有 3 個 jar:large_res.Jarmedium_res.Jarsmall_res.Jar,其中每個 Jar 文件都包含同名但解決方式不同的資源。然后指向正確版本的 Nokia_large、Nokia_med、Nokia_small 配置。
                • 過濾:包括直接位于 src 目錄中或該目錄之下的資源,然后使用“過濾”樹來控制分發(fā) Jar 中包含的資源版本。

              使用不符合 UEI 的仿真器平臺

              雖然 IDE 只能自動檢測符合 UEI 規(guī)范的第三方仿真器平臺,但是仍然可以使用不符合 UEI 的仿真器。本節(jié)介紹具體操作方式。

            1. 添加不符合 UEI 的仿真器
              1. 在 userhome 目錄中(在 Windows 中的缺省位置為 C:\Documents and Settings\{username}\.netbeans,Linux 中的缺省位置為 /home/{username}/.netbeans),檢查 {userhome}\config\Services\Platforms\org-netbeans-api-java-Platform 目錄。
                此目錄包含定義已安裝仿真器平臺的 xml 文件。您可以為不符合 UEI 的任何仿真器手動創(chuàng)建這些文件。可以在以下網址找到此 xml 文件的 DTD:http://www.netbeans.org/dtds/j2me-platformdefinition-1_0.dtd
              2. 將以下文件保存為 SDK_4.1_MRI_7.5.xml,以使用本教程所需的 Motorola 7.5 仿真器。請注意,使用 &quot; 是有一定作用的,應按原樣保存。
                <?xml version='1.0'?>
                <!DOCTYPE platform PUBLIC '-//NetBeans//DTD J2ME PlatformDefinition 1.0//EN'
                	'http://www.netbeans.org/dtds/j2me-platformdefinition-1_0.dtd'>
                <platform name="Motorola_7_5"
                home="C:\WTK\Motorola\SDK v4.1 for J2ME\Emulator7.5"
                type="custom"
                displayname="Motorola 7.5"
                srcpath=""
                preverifycmd="&quot;{platformhome}/bin/preverify.exe&quot;
                	-classpath &quot;{classpath}&quot; -d &quot;{destdir}&quot;
                	&quot;{srcdir}&quot;"
                runcmd="">
                <device name="Motorola_7_5" securitydomains="trusted,untrusted"
                	description="Motorola_7_5">
                <configuration name="CLDC" version="1.1" displayname="CLDC"
                	classpath="${platform.home}/lib/cldc.zip"
                	dependencies="" default="true"/>
                <profile name="MIDP" version="2.0" displayname="MIDP"
                	classpath=";${platform.home}/lib/midp.zip"
                	dependencies="" default="true"/>
                </device>
                </platform>
                

                保存此 XML 文件之后,需要重新啟動 IDE。完成操作之后,就可以選擇 Motorola 7 5 作為平臺,而選擇 Motorola_7_5 作為設備。您應該將 Motorola 配置與這個新的平臺相關聯(lián)。請注意,您可能需要刪除 {userhome}\var\cache 中的緩存文件,以便檢測到手動安裝的平臺。此外,不應刪除也可能位于此處的 mdrstorage 文件夾。

                注意 runcmd 特性設置為空字符串。這是因為啟動此 Motorola 仿真器的命令將 MIDlet 作為其參數(shù)之一來執(zhí)行。這與 UEI 標準截然不同,IDE 中不能提供直接支持。但是...

                • 如果您所使用的仿真器平臺所需的信息不會比提供給 UEI 仿真器的信息要多,則可以跳過此步驟。以下信息將提供給 UEI 仿真器:
                  • 安全域
                  • 平臺類型
                  • 平臺起始目錄
                  • Jad 位置
                  • Jad 目標目錄/Jad 名稱

                如果您的仿真器需要額外信息(如項目 Jar 的位置或要執(zhí)行的 MIDlet 的名稱),則通過修改位于項目起始目錄中的 build.xml 文件可以執(zhí)行仿真器。

                此文件控制所有項目操作。我們在此可以創(chuàng)建一個新目標,該目標不僅可以執(zhí)行 motorola 仿真器,如果在 Motorola 配置上調用運行操作,則還可以傳遞所有適當?shù)臄?shù)據。

                向項目的 build.xml 添加以下代碼:

                <target description="Run MIDlet suite." depends="init" name="run">
                <condition property="run.motorola">
                <!-- arg2 must match the configuration name
                    you would like to use the special emulator -->
                <equals arg1="${config.active}" arg2="Motorola"/>
                </condition>
                <ant inheritrefs="true" inheritall="true" target="run_normal"/>
                
                <ant inheritrefs="true" inheritall="true" target="run_motorola"/>
                
                </target>
                
                <target description="Run MIDlet suite the normal way." depends="init"
                	name="run_normal" unless="run.motorola">
                
                	<nb-run commandline="${platform.runcommandline}"
                	securitydomain="${evaluated.run.security.domain}"
                	execmethod="${run.method}" platformtype="${platform.type}"
                	platformhome="${platform.home}" device="${platform.device}"
                	jadurl="${dist.jad.url}" jadfile="${dist.dir}/${dist.jad}"/>
                </target>
                
                <target description="Run MIDlet suite for motorola's non-UEI emulator."
                	depends="init" name="run_motorola" if="run.motorola">
                <property name="project.home" location="."/>
                
                <!-- the last arg line contains an value "Miner".
                    This must match the name of the midlet you want to execute  -->
                <java dir="${platform.home}/bin"
                fork="true"
                classname="com.mot.tools.j2me.emulator.Emulator"
                classpath="${platform.home}/bin/Emulator.jar;${platform.home}/bin/configtool.jar">
                <jvmarg value="-Djava.library.path=${platform.home}/lib"/>
                <arg value="-classpath${project.home}/${dist.dir}/${dist.jar}"/>
                <arg line="-deviceFile"/>
                <arg value="${platform.home}/bin/RESOUR~1/T720I~1.PRO"/>
                <arg line="javax.microedition.midlet.AppManager Miner -JSA 1 1"/>
                </java>
                
                </target>
                
                

                因此,只要活動配置是 Motorola,就會運行 run_motorola 目標。否則,將調用 run_normal 目標(使用正常仿真器執(zhí)行程序)。

                其中包括 Marv the Miner 教程。

              3. posted on 2006-02-04 14:28 Alex 閱讀(311) 評論(0)  編輯  收藏 所屬分類: 轉載

                主站蜘蛛池模板: 万源市| 东山县| 师宗县| 石楼县| 河源市| 大连市| 凤山市| 进贤县| 马尔康县| 泰兴市| 上饶县| 宿州市| 台北县| 晋城| 靖江市| 含山县| 永和县| 满洲里市| 五原县| 台中县| 甘泉县| 资源县| 石阡县| 绥滨县| 北票市| 班戈县| 临朐县| 铜川市| 巩义市| 建平县| 驻马店市| 南陵县| 麦盖提县| 南靖县| 盐源县| 福贡县| 乌苏市| 大安市| 西丰县| 密山市| 故城县|