程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2ME >> Java回歸嵌入式無線通信(1)

Java回歸嵌入式無線通信(1)

編輯:J2ME

編者按:當語言技術走向前台,成為通信應用“解決方案”的一種時,Java與BREW之爭也日益明顯。今年初,中國移動聯合移動設備商、SP等舉辦了Java大賽,並且正在或將要舉辦類似活動,以大力推廣Java在手機、互聯網等通信領域的應用。另一方面,從10月15日開始,中國聯通和美國高通公司合資成立的聯通博路公司在全國推廣基於BREW的應用大賽,此舉吸引了包括媒體在內的多方力量的關注。

針對這一形勢,《計算機世界》組織了一個小型專題,就Java和BREW在通信領域應用的趨勢探討。當Java和BREW都有理由宣揚自己的陣營已經確立時,雖然我們還不知道這一場較量誰會更占優勢,但關於技術的討論,本身就是一個必要。在這兩篇針鋒相對的文章背後,不僅是兩個作者的工作差異,更多是兩大開發群體之間的對壘。

在經歷了互聯網和電子商務的淘金時代後,Java已經准備好向通信領域發展,而且巨大的商業利益已經顯現出來。據Ovum研究公司預測,到明年初,Java技術將應用於2.67多億部移動設備,而Java手機目前已然在北美和歐洲大行其道。更有分析公司預測,到2007年,幾乎100%的手機都將采用Java技術,Java已經回歸到嵌入式無線通信領域。

Java在嵌入式通信領域的應用與發展頗具傳奇色彩。1991年出現的Oak(Java語言前身)技術,最初的設想是在冰箱、電視等信息家電產品中嵌入可編程通信控制平台,以實現這些設備間的數據通信。然而在當時,Oak並沒有受到開發者所希望的歡迎,整個市場對這一新技術語言的重視遠遠不夠。

1995年後全球爆發的互聯網絡信息革命為Java帶來機會,Java成為眾多編程語言和編程技術中的黑馬,迅速成為全球各大IT廠商應用開發平台的新貴,不僅一躍成為桌面應用(J2SE)平台,更在很短的時間內成為企業級應用(J2EE)開發平台。

如今,Java已經回歸到嵌入式無線通信領域,並且這次是有備而來。

從Sun到與Sun無關

在1999年的JavaOne大會上,Sun Microsystems 介紹了第一個袖珍版 Java和第一個 KVM以及相關的類庫,並於同年6月向Java團體宣布了Java的第一個Java 2 Micro Edition(J2ME)版本,為開發者提供了一個無線開發工具包Wireless Toolkit(WTK),WTK可以讓開發者編譯(compile)、打包(package)、部署(deploy)和執行(execute)J2ME應用,這一工具包還包括一個仿真測試環境,該環境用於在資源受限的設備上對J2ME應用進行模擬運行,這些仿真模擬器可以被當做插件向通信設備廠商提供,同時由這些設備商向消費者提供,例如摩托羅拉、諾基亞等。

遺憾的是,WTK中並不包含IDE開發環境和Debug調試環境,筆者認為,之所以出現這樣的結果,主要原因不是Sun或JCP缺乏設計優良IDE環境的能力,而是Sun發布J2ME平台規范後,全球各軟件工具開發商“百家爭鳴”推出各自的IDE開發環境,雖然這樣防止了IDE技術的企業壟斷,卻也忽略了市場和用戶的個性需求。況且,自Java問世以來也沒有正式提供IDE開發環境的先例。

這樣做的不利在於多版本差異,但也有好處,沒有正式的IDE開發環境,並不意味著開發者沒有開發環境,相反,專業開發者有更大的選擇余地來選擇合適的IDE,甚至從Opensource中獲得免費的Wireless IDE工具,當前一些主流Java開發工具已經都有相關插件支持無線開發環境,例如Sun ONE Studio、JBuild、Oracle9i JDeveloper等。

從Sun發布袖珍版的Java技術標准,到IDE多種類局面出現,Java正走著一條整個產業化前進的道路。

Java技術的典型代表J2ME

Sun 將J2ME 定義為“一種以廣泛的、以消費性產品為目標的、高度優化的Java 運行環境,這些環境包括尋呼機、移動電話、可視電話、數字機頂盒和汽車導航系統等。”但由此也可以明顯看出,要為所有這些設備定義一種最優化、或者接近最優化的單一技術是不可能的,因為這些設備的處理器能源、內存、固定存儲器和用戶界面的差異都非常之大。為解決這一問題,Sun 公司將適合 J2ME 的設備的配置分成各個部分,然後再進一步細分,其他品牌的Java技術也采用了大體相同的方式。

在第一步的劃分中,Sun 將各種設備按照處理性能、內存和存儲能力劃分成CDC和CDLC兩大類,需要說明的是,這一分類方法並沒有考慮應用者最終的使用目的。在這一基礎之上,Sun定義了 Java 語言的一個剝離版本,它能夠在每一類設備的限制下工作,也包括通信設備,同時提供最低限度的 Java 語言功能性,這一點,對於作為消費類產品的終端通信設備而言,非常重要。

移動信息設備簡表(MIDP)是J2ME補充CLDC配置的Java API集合,也是基於CDC和CDLC的最上層。MIDP為開發者提供了計時器、簡單固定存儲器、通過 HTTP 的連網等常用API,開發者可以通過MIDP提供的界面快速開發UI元素來構造J2ME應用,這些元素包括常用的:

Alert 用於通過屏幕向用戶顯示有關異常情況或錯誤的信息;Choice 用於實現從既定數量的選項中進行選擇;ChoiceGroup 可提供一組相關選項;Form 作為其他UI 元素的容器;List 提供選項列表;StringItem 提供只顯示(display-only)字符串功能;

TextBox 允許用戶輸入和編輯文本的屏幕顯示;TextField 允許用戶輸入和編輯文本,多個 TextField 可放到一個 Form 中;DateField 作為可編輯組件,用於表示日期和時間信息,DateFIEld 可以放到 Form 中;Ticker 用於文本的可滾動顯示等。

當開發者對界面控制有較高要求時,可以使用Canvas技術來實現圖形化的界面輸出,利用Double buffering技術實現流暢的動畫處理效果。MIDP還提供了記錄管理系統RMS(Record Management System),RMS的記錄管理系統存取數據到移動設備中。

在CLDC中提供一個通用的連接框架(Connection Framework),我們可以使用該連接框架從Web端發送和接收數據,這一連接框架實現Http1.1協議。在企業級應用開發中,HttpConnection或Socekt經常會和Threads技術應用在一起,以提供高性能的企業數據連接。

熟悉Java Serverlet的開發者在編寫J2ME程序時並不會感覺環境的陌生,因為J2ME為每個應用提供了類似於Serverlet的有生命周期管理的MIDlet,每個J2ME應用都必須擴展MIDlet類,以便能夠讓應用系統控制它。

Model-View-Controller,(MVC,Model為維護應用模型的狀態,View指通過圖形或非圖形模式表現Model,Controller接收外部指令更新Model或VIEw)J2ME的開發者必須參照MVC設計模式,因為整個設計需要在完成最後UI步驟之前完全測試通過商業邏輯部分,以保證在仿真運行環境下的聯調焦點放在UI控制上。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved