Download presentation
Presentation is loading. Please wait.
1
J2ME實務概論 2018/11/8 國立虎尾科技大學資訊工程系
2
大綱 J2ME是什麼 Java基本平台簡介 無線、行動的迷思 J2ME的技術與架構 預先審核機制 Pre-verification
Configuration / Profile MIDP與MIDlet Wireless Toolkit與常用開發工具 開發手機程式設計之細節與重點 2018/11/8 國立虎尾科技大學資訊工程系
3
大綱 J2ME是什麼 Java基本平台簡介 無線、行動的迷思 J2ME的技術與架構 預先審核機制 Pre-verification
Configuration / Profile MIDP與MIDlet Wireless Toolkit與常用開發工具 開發手機程式設計之細節與重點 2018/11/8 國立虎尾科技大學資訊工程系
4
J2ME是什麼 J2ME (Java 2 Platform Micro Edition)由Sun 公司所發展出針對一般的消費性小型設備進行程式開發的工具 可分為Configuration以及Profile兩種架構概念 2018/11/8 國立虎尾科技大學資訊工程系
5
簡敘J2ME 主要應用在日常生活當中,會使用到的許多消費性電子商品與內嵌式裝置上的技術 適用於資源有限的小型裝置
程式上的編寫與傳統Java幾乎大同小異 可針對各種不同型號的手機做不同的開發與設計 2018/11/8 國立虎尾科技大學資訊工程系
6
Configuration與Profile
分割出J2ME結構中介於可移轉性與支援大範圍裝置功能的需求問題 Configuration定義出特定J2ME環境之執行特性的底層次API集 Profile定義出依裝置而定及依用處而定的API 2018/11/8 國立虎尾科技大學資訊工程系
7
消費性電子商品與內嵌式裝置 J2ME滿足有最小記憶體、通訊頻寬、計算能力、使用者介面,因此J2ME被為是用來滿足比智慧卡大而比個人電腦小的裝置上的Java程式設計需求 整個嵌入式裝置領域早已被另外一種,稱之為Embedded Java的規格技術所涵蓋 2018/11/8 國立虎尾科技大學資訊工程系
8
已完成之J2ME結構 2018/11/8 國立虎尾科技大學資訊工程系
9
大綱 J2ME是什麼 Java基本平台簡介 無線、行動的迷思 J2ME的技術與架構 預先審核機制 Pre-verification
Configuration / Profile MIDP與MIDlet Wireless Toolkit與常用開發工具 開發手機程式設計之細節與重點 2018/11/8 國立虎尾科技大學資訊工程系
10
Java的起源 Java原是1991年SUM公司內部一項名為Green的發展計畫中,為了撰寫控制消費性電子產品軟體,所開發出來的小型程式語言
2018/11/8 國立虎尾科技大學資訊工程系
11
Java平台技術 Java平台根據應用軟硬體服務需求可分為:
J2EE(Java 2 Platform Enterprise Edition) J2SE(Java 2 Platform Standard Edition) J2ME(Java 2 Micro Edition) Java Card 2018/11/8 國立虎尾科技大學資訊工程系
12
Java平台簡介 VM & Class & Libraries各不盡相同 J2EE J2SE J2ME Java Card
2018/11/8 國立虎尾科技大學資訊工程系
13
Java平台簡介(Cont'd) J2EE Java 2 Enterprise Edition
支援所有 Java 標準規格中核心類別函式庫,增加 Servlet、JSP、EJB 等擴充函式庫。 支援所有 Java 基本資料型別 開發:伺服端應用程式,Web 應用程式、 EJB 2018/11/8 國立虎尾科技大學資訊工程系
14
Java平台簡介(Cont'd) J2SE Java 2 Standard Edition 定義 Java 標準規格中核心類別函式庫
開發:視窗、applet、console 等應用程式 2018/11/8 國立虎尾科技大學資訊工程系
15
Java平台簡介(Cont'd) J2ME Java 2 Micro Edition
僅支援 Java 標準核心類別的子集合(包含:java.lang.*、java.io.*、java.util),增加 javax.microedition.* 嵌入式擴充函式庫。 子集合:J2ME 所使用的核心函式庫是從 J2SE 標準核心函式庫刪減而來(保留必要類別或刪減類別中的方法)。 開發:嵌入式系統、手持裝置,Smart Phone、PDA 2018/11/8 國立虎尾科技大學資訊工程系
16
Java平台簡介(Cont'd) Java Card
僅支援 Java 標準規格中的 java.lang.* 函式庫,當然也有屬於該平台的函式庫(javacard.* 與 javacardx.*) 在 Java 基本資料型別中僅支援 boolean 與 byte 兩種。 Java Card 是一個獨立的平台並不署於 J2ME 平台的一部分。 開發:Smart Card(IC 卡) 2018/11/8 國立虎尾科技大學資訊工程系
17
API與SDK API是Application Programming Interface的簡寫,API是一組其他程式設計師所寫好的程式,只要知道使用規則即可應用在程式上 SDK是SoftWare Development Toolkit的簡寫, 寫程式會用到的像是撰寫、編譯、執行、除錯等工具,而這些東西全部合起來就叫作SDK 2018/11/8 國立虎尾科技大學資訊工程系
18
Java的特點 Object Oriented Programming Write once run anywhere
Exception Handling Garbage Collection Unicode Free 2018/11/8 國立虎尾科技大學資訊工程系
19
Write once run anywhere
2018/11/8 國立虎尾科技大學資訊工程系
20
執行環境 2018/11/8 國立虎尾科技大學資訊工程系
21
緃向角度看Java平台區隔 2018/11/8 國立虎尾科技大學資訊工程系
22
大綱 J2ME是什麼 Java基本平台簡介 無線、行動的迷思 J2ME的技術與架構 預先審核機制 Pre-verification
Configuration / Profile MIDP與MIDlet Wireless Toolkit與常用開發工具 開發手機程式設計之細節與重點 2018/11/8 國立虎尾科技大學資訊工程系
23
無線、行動的迷思 J2ME是用來滿足行動裝置的規格技術,但並不是所有J2ME所適用的對象可以被稱之為行動式
很多J2ME的裝置並不一定都是使用於無線網路,但有些J2ME所適用的裝置卻是使用於有線網路的,如:視訊轉換盒及Internet影像電話 2018/11/8 國立虎尾科技大學資訊工程系
24
大綱 J2ME是什麼 Java基本平台簡介 無線、行動的迷思 J2ME的技術與架構 預先審核機制 Pre-verification
Configuration / Profile MIDP與MIDlet Wireless Toolkit與常用開發工具 開發手機程式設計之細節與重點 2018/11/8 國立虎尾科技大學資訊工程系
25
J2ME技術架構 Java 技術規格的制定 Expert Group:個人、法人組織或廠商所組成
JCP(Java Community Process):Java 所有的相關技術基本上是由 Expert Group 提案並遵循 JCP 的規則來訂定 JCP 好比就是議事規則 JSR(Java Specification Request):最後所制定出來的各種 Java 規格 JSR-068 J2ME Platform。 2018/11/8 國立虎尾科技大學資訊工程系
26
J2ME相關JSR協定標準 JSR 30/139 定義 CLDC 1.0 / 1.1 的規格 JSR 75
定義 PDA Optional Package 廠商選擇性套件功能 JSR 82 定義 Bluetooth 程式開發 APIs JSR 37/118 定義 MIDP 1.0 / 2.0 規格 JSR 120/205 定義 WMA 1.0 / 2.0 無線訊息開發套件(SMS、MMS) JSR 135 定義 MMAPI 行動多媒體開發套件 JSR 172 定義 J2ME Web Services 網路服務套件 2018/11/8 國立虎尾科技大學資訊工程系
27
J2ME相關JSR協定標準(Cont'd) JSR 177 定義 Security 與 Trust 服務開發套件 JSR 179
定義 Location-based Service 手機位置服務開發套件 JSR 184 定義 Mobile 3D Graphics 程式開發 APIs JSR 185 定義 JTWI Java 手機的業界標準 JSR 226 定義 2D Vector Graphics 向量圖形支援 APIs 2018/11/8 國立虎尾科技大學資訊工程系
28
J2ME的基本規格 JSR-068 J2ME Platform 廠商選擇性實作 Optional Packages 依照不同的硬體裝置
所訂製的高階 API Profile 定義硬體規格 / 功能與 低階 API Configuration JVM / OS 2018/11/8 國立虎尾科技大學資訊工程系
29
大綱 J2ME是什麼 Java基本平台簡介 無線、行動的迷思 J2ME的技術與架構 預先審核機制 Pre-verification
Configuration / Profile MIDP與MIDlet Wireless Toolkit與常用開發工具 開發手機程式設計之細節與重點 2018/11/8 國立虎尾科技大學資訊工程系
30
傳統Byte Code審核器 在傳統的Java 程式中,為了安全上的考量,任何一個類別檔只要他進入了執行環境,都必須經過byte code審核器的驗證,以防止程式在傳送的途中遭受到惡意的竄改,讓系統產生不良的影響,所以任何一個類別檔今天要執行必須要先經過 byte code 審核器的審核通過後才可以實行 2018/11/8 國立虎尾科技大學資訊工程系
31
傳統Byte Code審核器的驗證流程 編譯 執行 JVM 傳輸媒體 審核器 類別載入器 Hello.java Hello.class
2018/11/8 國立虎尾科技大學資訊工程系
32
預先審核機制 Pre-verification
在傳統 Byte Code 審核器的驗證機制,必須花費相當的 CPU 時間,這對於手機與 PDA 這種相對於 CPU 速度較慢以及記憶體也比較少的裝置上跑起來就會顯得格外吃力 所以為了節省寶貴的CPU 時間,如能將撰寫好的手機程式於編譯時期(在開發環境上)預先加以審核,這樣就可以減少手機在執行時期的審核時間與 CPU 的花費,進而加快程式在手機上執行的速度 2018/11/8 國立虎尾科技大學資訊工程系
33
預先Byte Code審核器的驗證流程 編譯 執行 預先 審核 輕量審核器 Hello.java 類別載入器 傳輸媒體
Hello.class 輕量審核器 預先 審核 KVM Hello.class 2018/11/8 國立虎尾科技大學資訊工程系
34
預先Byte Code審核器副作用 6.1 % 類別檔的大小約增加 5% ~ 10% 左右 1,236 位元組 1,312 位元組
2018/11/8 國立虎尾科技大學資訊工程系
35
大綱 J2ME是什麼 Java基本平台簡介 無線、行動的迷思 J2ME的技術與架構 預先審核機制 Pre-verification
Configuration / Profile MIDP與MIDlet Wireless Toolkit與常用開發工具 開發手機程式設計之細節與重點 2018/11/8 國立虎尾科技大學資訊工程系
36
Configuration 針對某一範圍內的裝置所定義的一些基本且通用的類別函式庫
遵循”對於各種不同裝置而造出一個單一的開發系統是沒有意義的事”的原則 依其範圍可劃分為CDC與CLDC Optional Packages Profile Configuration JVM / OS 2018/11/8 國立虎尾科技大學資訊工程系
37
連結式裝置組態 CDC (Connected device configuration)
適用於性能較好且相對資源較不限的消費性電子產品(運算能力較佳﹑電力供應較充足的嵌入式裝置,如:冷氣機﹑電冰箱﹑電視) 所用的JVM為CVM 2018/11/8 國立虎尾科技大學資訊工程系
38
連結式受限裝置組態 CLDC (Connected limited device configuration)
適用於性能相對較差且資源較有限的消費性電子產品(運算能力有限﹑電力供應有限的嵌入式裝置,如:PDA ﹑手機) JVM為KVM 2018/11/8 國立虎尾科技大學資訊工程系
39
CVM&KVM CVM是針對下一代消費性電子產品及嵌入式系統的市場所設計,CVM提供較佳的記憶體管理方式及在32位元CPU上執行的能力,較適合用於有較好連結能力的消費裝置 KVM則是專為受限制的電子消費產品所設計的虛擬機器,KVM適用於使用16位元或32位原的CPU及只有160KB可使用記憶體裝置 2018/11/8 國立虎尾科技大學資訊工程系
40
CDC VS CLDC 2018/11/8 國立虎尾科技大學資訊工程系
41
類別函式庫的關係 基於Configuration間的巢狀關係,當由受到更多限制的環境時,可移轉性將大幅加強
※註:J2ME定義了一些目前J2SE 裡未定義的類別庫 2018/11/8 國立虎尾科技大學資訊工程系
42
CLDC函式庫 CLDC所包含的函式庫可分為兩大部分
一是J2SE所提供的標準函式庫的子集合(java.lag.* java.io.* java.util.*等) 二為針對CLDC所做的擴充函式庫(javax.micoredition.io.*) 2018/11/8 國立虎尾科技大學資訊工程系
43
javax.micoredition類別 2018/11/8 國立虎尾科技大學資訊工程系
44
Profile 對於特定相同類型的裝置定義的一組的通用函式庫
每一類Configuration擁有不同的Profile,分類的條件包括:螢幕顯示大小﹑輸入方式﹑資料儲存方式﹑網路連結方式等 Optional Packages Profile Configuration JVM / OS 2018/11/8 國立虎尾科技大學資訊工程系
45
Profile(Cont'd) Profile是用來區隔與定義各種不同裝置與不同的特性,藉此定義出該目標裝置得以運行之延伸 API ,以提供給開發人員使用 Configuration 可以同時擁有一個以上的 Profile,但最少一定要有一個 2018/11/8 國立虎尾科技大學資訊工程系
46
Configuration/Profile
在不同的Configuration會搭上不同的Profile,雖說是在一樣的範圍裝置上,但還是會因上敘某些地方的不同而搭配不同的Profile.如:手機 ﹑PDA 2018/11/8 國立虎尾科技大學資訊工程系
47
Profile/MIDP 針對行動裝置上的開發(呼叫器、行動電話),J2ME 就定義出了專屬的 Profile:
JSR 37:MIDP 1.0 Mobile Information Device Profile 1.0 JSR 118:MIDP 2.0 Mobile Information Device Profile 2.0 2018/11/8 國立虎尾科技大學資訊工程系
48
硬體部分(Cont'd) 1.記憶體: 128K記憶體(ROM)可供MIDP元件使用 8K的記憶體(ROM)可供應用程式儲存資料
32K的記憶體(RAM)可供虛擬機器執行 2.顯示狀況: 螢幕大小:96X54 顯示色彩:1-bit(white and black) 顯示比例:大約1:1 2018/11/8 國立虎尾科技大學資訊工程系
49
硬體部分(Cont'd) 3.輸入: 一種或多種的輸入方式 單手使用袖珍鍵盤 雙手使用鍵盤輸入 觸控螢幕 4.網路: 雙向﹑無線﹑頻寬不大
2018/11/8 國立虎尾科技大學資訊工程系
50
API部分 使用者介面的支援:javax.microedition.lcdui 網路的支援:javax.microedition.io
資料持續儲存的支援:javax.micoredition.rms 其他如例外處理及Timer等支援 2018/11/8 國立虎尾科技大學資訊工程系
51
Javax.microedition.midlet
java.microedition.midlet.MIDlet,唯有任何MIDlet繼承此類別之後的系統才能夠對該MIDlet作起動﹑停止的基本功能 2018/11/8 國立虎尾科技大學資訊工程系
52
大綱 J2ME是什麼 Java基本平台簡介 無線、行動的迷思 J2ME的技術與架構 預先審核機制 Pre-verification
Configuration / Profile MIDP與MIDlet Wireless Toolkit與常用開發工具 開發手機程式設計之細節與重點 2018/11/8 國立虎尾科技大學資訊工程系
53
MIDP與MIDlet J2ME 在手機上定義了一個專屬的 Profile - MIDP(Mobile Information Device Profile) JSR-037:MIDP 1.0 JSR-118:MIDP 2.0 規格內容: MIDP 的規格定義了序多行動裝置軟硬體的資源與在開發上所需要的延伸套件 2018/11/8 國立虎尾科技大學資訊工程系
54
MIDP 2.0的延伸套件 定義了 MIDP 模型與生命週期 開發手機上的使用者介面 開發手機上的資料庫程式 檔案的存取與網路功能的支援
javax.microedition.midlet 定義了 MIDP 模型與生命週期 javax.microedition.lcdui 開發手機上的使用者介面 javax.microedition.rms 開發手機上的資料庫程式 javax.microedition.io 檔案的存取與網路功能的支援 javax.microedition.lcdui. game MIPD 2.0 所加入的遊戲開發套件 javax.microedition.media 多媒體開發套件 javax.microedition.media.control 提供多媒體開發上媒體播放與控制功能的套件 javax.microedition.pki 數位憑證處理套件 2018/11/8 國立虎尾科技大學資訊工程系
55
何謂MIDP 針對行動裝置所定義的Profile,是一個架構開放,可供第三協力廠商發展應用的類別函式庫
最主要針對小型且資源受限的行動裝置而開發 開發的裝置至少要符合某些特性,才適合用MIDP來發展相關應用程式 2018/11/8 國立虎尾科技大學資訊工程系
56
何謂MIDlet Java 針對特定領域上所跑的應用程式都會給予特定的執行單位 Applet:嵌入在瀏覽器的小型應用程式
Servlet:跑在 Web 伺服器上的應用程式 MIDlet:嵌入在手持行動裝置(手機)的應用程式執行單位 MID 表示 Mobile Information Device Let 表示「小型應用程式」的意思 2018/11/8 國立虎尾科技大學資訊工程系
57
MIDlet Suite 由很多個MIDlet所集合而成,壓縮成一個單一的 JAR 檔
在 MIDlet Suite 其實除了 MIDlet 外還包含了執行該應用程式所需要的支援類別檔、資源檔以及manifest檔。 在部署 MIDlet 應用程式的時候應都是以 MIDlet Suite 為單位來進行部署的動作 通常負責管理MIDlet Suite稱之為 AMS(Application Manager System)或 JAM(Java Application System) 2018/11/8 國立虎尾科技大學資訊工程系
58
MIDlet的生命週期 MIDlet 的生命週期可以有 2 種方式來管理: MIDlet 生命週期狀態有 3 種:
由 AMS 應用程式管理員自行管理 MIDlet 生命週期狀態。 由 MIDlet 自行來管理自己的生命週期狀態 MIDlet 生命週期狀態有 3 種: ACTIVE:運作狀態 PAUSE:暫停狀態 DESTROYED:銷毀狀態 2018/11/8 國立虎尾科技大學資訊工程系
59
MIDlet 抽象類別 startApp() ACTIVE 運作狀態 pauseApp() PAUSED 暫停狀態
destroyApp() DESTROYED 銷毀狀態 AMS 會利用這 3 個函式來控制 MIDlet 生命週期,因此所有的 MIDlet 都必須實作這些方法 2018/11/8 國立虎尾科技大學資訊工程系
60
AMS管理運作模式 PAUSED new() destroyApp() startApp() pauseApp() DESTROYED
ACTIVE 2018/11/8 國立虎尾科技大學資訊工程系
61
MIDlet 自行管理模式 resumeRequest():要求 AMS 將 MIDlet 從目前的 PAUSED 暫停狀態轉移到 ACTIVE 運作狀態,並執行 startApp() 方法 notifyPaused():要求 AMS 將 MIDlet 從目前的 ACTIVE 運作狀態轉移到 PAUSED 暫停狀態,呼叫該函式時系統不會主動執行 pauseApp() 方法 notifyDestroyed():要求 AMS 將 MIDlet 轉移到 PAUSED 運作狀態,呼叫該函式時系統不會主動執行 destroyApp() 方法 2018/11/8 國立虎尾科技大學資訊工程系
62
destroyApp(boolean unconditional)
destroyApp(true); 表示是由系統自行強制關閉 MIDlet 的情形。例:突然發生無法補救的系統錯誤、強制關閉或關機等 destroyApp(false); 表示是非系統上的強制關閉 MIDlet,程式開發人員自行在呼叫 destroyApp 方法時應該是要傳入 false 參數 2018/11/8 國立虎尾科技大學資訊工程系
63
2018/11/8 國立虎尾科技大學資訊工程系
64
大綱 Java基本平台簡介 無線、行動的迷思 J2ME的技術與架構 預先審核機制 Pre-verification
Configuration / Profile MIDP與MIDlet Wireless Toolkit與常用開發工具 開發手機程式設計之細節與重點 2018/11/8 國立虎尾科技大學資訊工程系
65
Wireless ToolKit與常用開發工具
由 Sun Microsystem(昇陽)所發展的 Java 無線手機開發與模擬環境 WTK 的開發環境是運作在 J2SE 平台上。 必要下載安裝套件: Java 2 SDK 1.4(含)以上 WTK 2.2 繁體中文版開發工具 2018/11/8 國立虎尾科技大學資訊工程系
66
啟動Wireless Toolkit 2018/11/8 國立虎尾科技大學資訊工程系
67
WTK 安裝目錄 WTK 安裝目錄 C:\WTK22 類別函式庫與 WTK 組態設定檔 RMS 資料庫 或下載的 apps appdb
lib 效能監控資料 專案或範例程式 apps sessions WTK 主程式 與模擬器外觀 WTK 工具程式 bin wtklib docs zh_TW 中文化套件 html WTK api 文件 2018/11/8 國立虎尾科技大學資訊工程系
68
建立新專案之初始目錄 存放 JAD 與 Hello 專案目錄 apps/Hello JAR 檔 bin 存放其他專屬 的類別函式庫 lib
存放圖片、聲音 或影像等資源檔 res 存放 java 原始檔 src 2018/11/8 國立虎尾科技大學資訊工程系
69
編譯後之目錄 經過預先審核 的類別檔 存放未經過預先 審核的類別檔 存放經過預先審核 的外部類別函式庫
Hello 專案目錄 apps/Hello bin lib res src 經過預先審核 的類別檔 classes 存放未經過預先 審核的類別檔 tmpclasses tmplib 存放經過預先審核 的外部類別函式庫 2018/11/8 國立虎尾科技大學資訊工程系
70
模擬實機樣式 2018/11/8 國立虎尾科技大學資訊工程系
71
模擬實機樣式 2018/11/8 國立虎尾科技大學資訊工程系
72
真實模擬器 若要針對某特定機種做為開發環境,可至官網下載手機模擬器之SDK
2018/11/8 國立虎尾科技大學資訊工程系
73
常用開發工具 J2ME Wireless Toolkit
NetBeans with plugins for J2ME Eclipse with eclipseME plugin JBuilder Mobile Edition 2018/11/8 國立虎尾科技大學資訊工程系
74
大綱 Java基本平台簡介 無線、行動的迷思 J2ME的技術與架構 預先審核機制 Pre-verification
Configuration / Profile MIDP與MIDlet Wireless Toolkit與常用開發工具 開發手機程式設計之細節與重點 2018/11/8 國立虎尾科技大學資訊工程系
75
手機主體與開發平台之限制 手機 CPU 處理時脈低,一般約為10~15MHZ 記憶體(RAM)容量小,一般約為2 MB以下
手機平台眾多,包括 Personal Java、J2ME CDC 與 J2ME CLDC 等 手機、螢幕尺寸、撥號鍵與鍵盤排列方式,都各有不同 手機的使用者介面比較簡單 2018/11/8 國立虎尾科技大學資訊工程系
76
動作前之構思 所設計的功能盡量單純化。 UI 越簡單越好 多使用手機本身提供的選單 以單手操作為原則 讓程式具備中斷 / 暫停性功能
訊息標示要明確,讓使用者明確地知道目前正進行中的動作 2018/11/8 國立虎尾科技大學資訊工程系
77
手機程式開發流程 定義好主題與手機型號 撰寫 JAD 描述檔
開始撰寫程式 / 編譯程式在模擬器上執行將 MIDlet Suite 包裝成 JAR 進行實機測試 將 JAD、JAR 放到 Server 上 2018/11/8 國立虎尾科技大學資訊工程系
78
Reference Sony官網: http://developer.sonyericsson.com JavaWorld:
95年中華電信服務訓練上課講義 2018/11/8 國立虎尾科技大學資訊工程系
Similar presentations