540 likes | 716 Views
JAVA PHONE. J2ME MIDP 行動通訊程式設計. 大綱. J2ME 簡介 J2ME Wireless Toolkit 模擬器 MIDlet Suites J2ME 程式開發流程. JAVA 手機簡介. 所謂 JAVA 手機,是指手機內建 JAVA 程式的執行平台,讓電信系統開發業者可以開發各種應用程式,將其放在手機上,把原本單純的手機,變成可以依使用者需求,增加各種功能與服務。. MIDP 簡介.
E N D
JAVA PHONE J2ME MIDP 行動通訊程式設計
大綱 • J2ME 簡介 • J2ME Wireless Toolkit • 模擬器 • MIDlet Suites • J2ME 程式開發流程
JAVA手機簡介 • 所謂JAVA手機,是指手機內建JAVA程式的執行平台,讓電信系統開發業者可以開發各種應用程式,將其放在手機上,把原本單純的手機,變成可以依使用者需求,增加各種功能與服務。
MIDP簡介 • 用於開發Java應用軟體的標準,是採用業界標準規格的”MIDP”(Mobile Information Device Profile),只要遵循這個標準,程式開放者只需以Java開發軟體,便能提供各家手機使用,非常的方便有效率
Java phone未來趨勢 • 手機可以播放多媒體,線上下載手機遊戲,進行銀行轉帳等電子商務,直接上網抓取HTML格式……等等
J2ME • Java因為具備跨平台及支援動態下載特性,現今已被廣泛應用於行動通訊領域,而這個開發執行環境便是”J2ME”(Java 2 platform Micro Edition) • J2ME是一種適用於微型裝置(例如:行動電話或雙向型傳呼機)的Java開發平台
CDC & CLDC (Connected, Limited, Device Configuration) a.CLDC就是定義為「可以放在手掌上的裝置」,比方說PALM系列的PDA或是手機就是最好的例子 b.CDC則是定義為「可以插在牆壁上的裝置」比方說冷氣機、電冰箱等等。
開發工具 • Java發展環境 • J2SDK • J2ME開發工具 • MIDP • J2ME Wireless Toolkit • CODEWARRIOR FOR JAVA (MOTOROLA A6288手機) • JBUILDER MOBILESET
J2ME Wireless Toolkit • J2ME Wireless Toolkit 1.01 • http://java.sun.com/products/j2mewtoolkit/ • Integrates with Sun Forte IDE • J2ME Wireless Toolkit 1.02 • adds debugging capabilities • adds new emulators • early access version available (as of 6/3/01)
J2ME Wireless Toolkit開發環境(1) • J2ME Wireless Toolkit開發工具是用來發展有關Java移動式資訊裝置軟體的工具 • J2ME Wireless Toolkit包括KToolbar此開發工具,KToolbar是一支很容易操作的使用者圖形介面的工具,讓使用者可以很迅速地開發有關J2ME的應用程式
J2ME Wireless Toolkit開發環境(2) • KToolbar是一個使用者圖形介面工具去執行Java MIDlet應用程式 • 程式開發者可以使用KToolbar去編譯、發展、執行、和將Java MIDlet應用程式中會用到的一些資源檔案,封裝成單一的JAR檔,再利用模擬器來測試程式的執行情況 • 當然還需要一套文字編輯器(如:UltraEditor)來編修Java的原始程式碼
模擬器(Emulator) • 模擬器亦即支援在桌上型電腦,用來發展Java MIDlet應用程式 • 模擬器會將Java MIDlet應用程式中會用的的一些資源檔案封裝成單一的JAR檔,再利用模擬器來測試程式的執行情況
模擬器的範圍(1) • 特定手機的application management性能 • 在模擬器中,application management 的主要功能是安裝Java MIDlet應用程式到機器上執行,並進行Java MIDlet應用程式的操作。Application management 的實作,在不同裝置上會產生不同的變化,這也是在操縱模擬器時需注意的
模擬器的範圍(2) • 執行的速率 • Java MIDlet應用程式可以在不同素速率的目標裝置下執行 • 使用者介面的準確性和真實裝置的功能 • 在J2ME Wireless Toolkit中的模擬器是一種可自定類別的模擬器裝置,它提供了一些組態設定,可以模擬真實裝置的功能,至於使用者介面也只能與真實裝置類似,但無法一模一樣
在Toolkit中模擬器裝置的種類(1) • 選擇不同的裝置時,模擬器的外觀會有所不同,而同樣的程式,在操作上也有很大的不同
DefaultColorPhone DefaultGrayPhone 在Toolkit中模擬器裝置的種類(2)
MinimumPhone Motorola_i85s 在Toolkit中模擬器裝置的種類(3)
RIMJavaHandheld 在Toolkit中模擬器裝置的種類(4) PalmOS_device
MIDlet Suites(1) • 所謂MIDlet為一個可以執行的收機硬應用程式之基本單位 • 除了繼承至javax.microedition.midlet.MIDlet的類別外,以及讓此類別可以順利執行的所有其他類別和資源檔所構成的集合,又稱作MIDlet 應用程式
MIDlet Suites(2) • 資源檔指的是MIDlet執行時所需的檔案,如圖片、文字檔等 • 許多MIDlet所構成的集合又稱MIDlet suite • 在J2ME Wireless Toolkit開發工具執行期間,所有的MIDlet應用程式皆有一個共通的 MIDP執行環境在此環境內進行封裝和測試多個MIDlet應用程式
MIDlet Suites(3):JAR檔 • JAR : Java Archive File,.jar檔 • 單一一個MIDlet Suite(JAR檔)之中可以包含許多個MIDlet • 描述MIDlet Suite中一支支MIDlet應用程式讀相關資訊。MIDlet-n中的n會從1開始編號,每新增一支MIDlet就會新增一列,並自動從上一個編號依序往下遞增,如:MIDlet-1 ,MIDlet-2 ,…… ,MIDlet-n
MIDlet Suites(4):JAR檔 • 處於同一個MIDlet Suite的MIDlet彼此之間可以共享資源及類別檔 • MIDlet應用程式執行時所需要的檔案皆存在資訊檔內,如圖片、文字檔等 • 每一支JAR檔都包括一支清單檔,檔案類型為文字檔,清單檔內容架構有三部份
MIDlet-1類別與資源 MIDlet-2類別與資源 1 … MIDlet-n類別與資源 2 共同類別 3 共同資源(如影像、文字) Manifest MIDlet Suites(5):JAR檔 • 清單檔是用來描述一個MIDlet Suite之基本資料,以及該MIDlet Suite內含之MIDlet相關資訊的內部檔案
MIDlet Suites(6):JAD檔 • JAD: Java Application Descriptor file,.jad • 描述檔,是單純的文字檔,主要記錄應用程式的屬性名稱及屬性值 • JAR檔內容的格式與manifest檔相同,是用來描述一個MIDlet Suite之基本資料,以及該MIDlet Suite內含之MIDlet相關資訊的外部檔案
MIDlet Suites(7):JAD檔 • JAD檔主要是讓Java Application Manager能夠在下載JAR之前先做些檢查,確定機器上的實際環境可以符合JAR檔所需要,也符合使用者的需求 • 描述檔也能夠讓程式開發者在能夠不修改JAR檔內部之清單檔的情況下,額外增加一些MIDlet在執行時所需要的參數
MIDlet-1類別與資源 MIDlet-2類別與資源 … MIDlet-n類別與資源 共同類別 共同資源(如影像、文字) MIDlet屬性 Manifest JAD檔 JAR檔 MIDlet Suites(8) • MIDlet Suite組成元素,包括有MIDlet應用程式的類別檔、資源檔、清單檔、描述檔等 MIDlet Suite
應用程式開發循環(1) • 1.Edit • 用一文字編輯器編修Java的原始程式 • 2.Build • 編譯:利用J2ME中的編譯程式對Java的原始程式進行編譯,即將.java的原始檔編譯成.class的類別檔 • Byte-code驗證:CLDC 是使用兩階段的類別檔驗證程序,此驗證程序必需在Java MIDlet應用程式執行之前,先確認Java所有得類別檔皆已透過預先審查器處理,byte-code是否適合在CLDC上執行
應用程式開發循環(2) • 3.測試與除錯 • 在模擬器中,Java MIDlet應用程式的除錯:Java MIDlet開發環境是一個整合性開發環境(Integrity Development Environment:IDE) ,它在開發時期可對原始碼作除錯工作 • 4.封裝成一個MIDlet Suite • 利用J2ME中的JAR工具將所有先期驗證過的類別檔和Java MIDlet 應用程式中所使用的一些資源檔封裝成一個單一的JAR檔。在此過程也會產生一支JAD檔及manifest檔
Edit Compile .java檔 Preverify .class檔 已預先審核的.class檔 利用模擬器執行/除錯 模擬裝置 改變模擬器裝置 應用程式開發循環(3) 應用程式資源檔(文字、影像….)
封裝應用程式: 已預先審核的.class檔 MIDlet套件(Jar檔、Jad檔) 封裝 (packet) 在實體裝置上執行 應用程式資源檔(文字、影像….) 具有MIDlet屬性的Jar檔及ManiFest檔 應用程式開發循環(4)
KToolbar操作介面 選單 工具列 目標裝置 訊息窗格
MIDlet程式撰寫步驟 Step 1.開啟新專案 專案名稱,即JAR檔的名稱 MIDlet應用程式的類別名稱
MIDlet程式撰寫步驟 Step 2
MIDlet程式撰寫步驟 Step 3
MIDlet程式撰寫步驟 Step 4:撰寫程式碼
MIDlet程式撰寫步驟 Step5:編譯
MIDlet程式撰寫步驟 Step 6:執行
MIDlet程式撰寫步驟 結果:
Ch2_2_1的目錄結構 目錄結構(1)
目錄結構(2) • apps:包含專案的所有來源、資源和二進位檔 • src:包含所有來源檔 • res:包含所以資源檔 • bin:包含JAR 、 JAD和解壓縮的manifest檔 • lib:包含某特定專案的JAR或ZIP格式的外部類別程式庫
DefaultColorPhone 模擬器功能操作 結束程式 輸出畫面 Soft Button Soft Button 方向鍵 SELECT鍵 清除鍵 小鍵盤 MODE SPACE
MIDlet之套裝類別 • MIDlet生命周期是定義MIDlet與該裝置間執行流程的一個協定,其要素如下: • 一個簡單且定義明確的狀態機制 • 有關MIDlet的狀態之定義非常簡潔 • 利用MIDlet的API函數來標示狀態間的轉換,API函數有startApp() 、pauseApp()、notifyPaused()、resumeRequest()、notifyPause()、及notifyDestroyed()
MIDlet狀態內容(1) • 暫停(Paused)狀態 • 在暫停狀態中,MIDlet已經初始化且呈現靜止狀態,MIDlet不應該占用或使用任何的共同資源 • 此狀態有四個進入時機
MIDlet狀態內容(2) • 運作(Active)狀態 • 運作狀態為MIDlet一般性功能。此狀態之進入時機: • 事先呼叫MIDlet.startApp()方法
MIDlet狀態內容(3) • 摧毀(Destroyed)狀態 • MIDlet釋放所有配置給程式的系統資源,並且結束程式 • 此狀態有兩個進入時機
MIDlet狀態內容(4) new() 暫停狀態(Paused) destroyApp() pauseApp() 摧毀狀態(Destroyed) startApp() destroyApp() 運作狀態(Active)