999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

JavaME平臺上手機通信系統的設計與實現

2013-01-01 00:00:00李勇楊威林勇胡秀兵
計算機時代 2013年3期

摘 要: Java ME是一種高度優化的Java運行平臺,它具有平臺無關性、安全性、分布式等特點,廣泛應用于機頂盒、移動電話和PDA等電子設備中。文章簡述了Java ME的體系結構,包括千字節虛擬機、連接設備配置、有限連接配置和移動信息設備簡表,以及Java ME的關鍵技術;運用套接字技術實現了客戶端與服務端之間的通信;通過RMS(Record Management System,記錄管理系統)將聊天記錄保存到手機中。

關鍵詞: Java ME; 有限連接配置; 信息設備簡表; 套接字; RMS

中圖分類號:TP319 文獻標志碼:A 文章編號:1006-8228(2013)03-04-04

0 引言

近年來,全球移動通信產業飛速發展,發展中國家手機用戶總量呈指數增長。截止2012年12月底,我國網民規模達到5.64億,其中手機網民數量為4.2億,年增長率達18.1%,手機網絡各項指標增長速度全面超越傳統網絡。據中國互聯網絡信息中心(CNNIC)于2013年1月15日發布的《第31次中國互聯網絡發展狀況統計報告》顯示,網民中使用手機上網的比例繼續提升,由69.3%上升到74.5%。由此可見,手機在人們生活中的地位越來越高,人們也越來越多地傾向于使用手機等平臺進行交流和溝通。本文對Java ME做了簡要的概述,并通過其相關的技術設計并實現了手機通信系統。

1 Java ME體系結構

Java ME(Java Platform Micro Edition)是由Sun公司聯合了摩托羅拉、諾基亞、西門子等設備制造商共同推出的無線設備標準化應用開發平臺[1]。Java ME是針對那些內存、處理能力以及圖形用戶界面等受限的小型設備,包括手機、PDA和電視機頂盒等。

Java ME總體上采用四層結構[2]。由下至上依次為:Java虛擬機層、配置層、簡表層和MIDP層。Java虛擬機層處于Java ME的最底層,是Java ME運行所必需的,因為所有的Java ME程序都必須要在虛擬機上運行,這也是為什么Java ME能夠跨平臺的原因。通常,在PDA等內存比較大和處理器比較強的設備中,使用的是Java虛擬機,而在手機等內存小、處理能力比較弱的設備中,則使用KVM(Kilo-byte Virtual Machine,千字節虛擬機)。Java ME四層結構如圖1所示。

圖1 Java ME體系結構

1.1 配置(Configuration)

Java ME平臺上有兩種連接配置[3]:連接設備配置(Connected Device Configuration, CDC)和連接受限設備配置(Connected Limited Device Configuration, CLDC)。

1.1.1 CLDC配置

CLDC是為運行于資源非常有限的設備上的Java ME應用程序制定的架構。CLDC的官方定義是這樣的:“輕便、覆蓋區域最小的Java構建塊,適合小型的、有資源限制的設備。”CLDC配置是為將由企業定義的簡表中使用一個虛擬機和一套核心庫準備的。它簡要描述了高度受限的設備上每個Java ME執行所要求的一套最基本的庫和Java虛擬機特征。

1.1.2 CDC配置

CDC配置是面向如電視機機頂盒這樣運算能力較強、電源充足的系統。CDC是應用在具有較大的內存上的設備,針對有限和間歇的無線連接設備,CDC與CVM和Foundation Profile共同定義了完整的Java ME環境。CDC是CLDC的一個擴展集,所以在兩種配置之間存在著向上的兼容性。

1.2 簡表(Profile)

簡表定義了用戶的應用程序所支持的設備類型[4],它向Java ME配置添加了特定域的類來定義設備的某種作用。簡表在一個特定的配置層上實現。應用程序是針對特定的簡表編寫的。因此,可以移植到支持該簡表的任何設備上。用戶和應用程序開發者看到最多的就是簡表層。

1.3 MIDP(Mobile Information Device Profile)

MIDP是第一個實現的簡表,它補充了CLDC并且提供應用程序語義和控件、用戶界面、持久存儲器、網絡和用于移動電話的計時器、雙通道呼叫器和其他無線電設備。MIDP是一個Java API集合,它定義了處理雙向無線通訊設備的用戶接口界面、應用模式、存儲管理及網絡功能等規范。

1.4 Java ME關鍵技術

Java ME中涉及到很多關鍵技術:在游戲方面,有GameCanvas類、Sprite類等解決方案;在網絡通信方面,有HTTP、套接字和數據報等連接模式;在無線網絡方面,有GPRS、藍牙等技術;在持久化方面,則有RMS、XML文件和嵌入式數據庫等解決方案。本系統在網絡通信方面采用套接字技術,在聊天記錄的保存時采用RMS,接下來我們對套接字和RMS進行簡要的闡述。

1.4.1 套接字Socket

套接字通訊是基于低級網絡應用的一種通訊方式,在MIDP1.0中沒有得到實現,而在MIDP2.0中才得以實現。實現接口是SocketConnection,該接口繼承自StreamConnection,提供了Socket客戶端對Socket服務器端的連接。另外,MIDP2.0還提供了對Socket服務器的連接,在StreamConnectionNotifier接口上實現的ServerSocketConnection便提供了此功能。

1.4.2 RMS

數據的持久存儲是把數據保存在可能斷開的設備中的過程,它是傳統的計算機設備所體現的主要功能之一。MIDP的RMS(記錄管理系統)借助移動設備中記錄存儲來促進持久數據的存儲,其主要功能是提供一組用于組織和操作設備資料庫的類別和界面[5],可以將RMS視為一張二維表。RMS提供了插入、修改、刪除和枚舉等操縱記錄的功能。

RMS中有兩個重要概念:Record Store和Record。Record Store提供了諸如打開、關閉和刪除記錄存儲等功能的不同方法。一個Record Store由一些記錄的集合組成,供一個或多個MIDlet調用,用長整型來記錄最后修改的時間和日期,用整型來記錄版本信息。Record則是由一串byte組成。在一個Record Store中,每一個Record使用RecordId惟一的標識。RecordId是一個整數,被用作記錄的主鍵。第一個記錄創建的時候,RecordId為1,之后每個RecordId的依次增1。

2 手機通信系統的設計

本系統在Java ME平臺上,通過套接字技術實現服務器端對客戶端的監聽;通過用MySQL數據庫保存聊天用戶的基本信息;通過RMS實現聊天記錄信息的保存。

在本系統中,每個用戶都有一個惟一的用戶名,客戶端將用戶的信息發送到服務器端,服務器端接收后在數據庫中已存在的用戶列表中進行檢測,并將檢測結果返回給客戶端。客戶端則根據服務器端返回的結果代碼來判斷該用戶是否已存在并且通過密碼驗證。如果不存在,則進行注冊。如果用戶名或者密碼不正確,則重新輸入。本系統的總體流程如圖2所示。

2.1 數據庫設計

MySQL數據庫具有體積小、速度快、總體成本低等特點。由于本系統中用到的數據及表都不龐大,所以選擇MySQL數據庫。本系統主要用到三張表:tbluser、tbldetail、tblonline。tbluser記錄用戶的用戶名、用戶密碼以及注冊時間。tbldetail記錄用戶的用戶名、用戶性別、用戶出生日期和用戶住址。tblonline記錄在線用戶情況,當用戶下線后即在該表中刪除該用戶。用戶使用該系統注冊時,用戶名、用戶密碼和注冊時間存入tbluser表中,同時,在tbldetail表中存儲用戶的詳細信息。由于用戶名惟一,所以兩張表的用戶名相對應。

2.2 服務器端設計

本系統的服務器端有兩個功能:一個是通過套接字實現服務器端和客戶端的通信;另一個是對數據庫進行操作。服務器端通過ServerSocket來監聽來自客戶端的信息,主程序具有創建ServerSocket、監聽請求、接收數據、返回數據的功能。客戶端的MIDlet程序建立客戶端Socket發送到服務器端,服務器端的監聽程序將其捕獲而做出相應的處理。服務器端通信的流程如圖3所示。

服務器端對數據庫的操作封裝在ServerConnection類中,其中有一個getDBStatement方法用來連接數據庫。此外,該類還封裝了根據客戶端傳來的不同代碼對其進行相應處理的方法。

2.3 客戶端設計

客戶端有一個入口類ChatMIDlet類,它繼承了MIDlet。要運行客戶端,必須先運行ChatMIDlet類。客戶端主要有四個界面:登錄界面、注冊界面、在線用戶大廳界面、聊天界面。另外還通過Alert實現查看系統幫助、系統的信息、用戶的基本資料和聊天記錄等功能。為了實現更人性化的設計,本系統中的Alert通過setTimeout(Alert.FOREVER)方法使得提示界面根據用戶喜好停留一定的時間,當用戶想返回時,則可以點擊提示頁面中的【完成】按鈕。

2.3.1 登錄設計

登錄界面主要通過LoginForm類實現。該類繼承Form類,并且實現了CommandListener,ItemCommandListener兩個接口。在登錄界面中,可以進行以下三個操作:

⑴ 輸入用戶名和用戶密碼登錄系統;

⑵ 通過菜單進入幫助界面和系統信息界面;

⑶ 選擇【注冊】選項進入注冊界面。

用戶在登錄界面輸入用戶名和用戶密碼后,選擇【登錄】進入聊天系統。當用戶輸入的用戶名不存在時,系統會提示無此用戶,如圖4所示。

登錄系統的整個流程如圖5所示。

2.3.2 注冊設計

注冊界面通過RegForm類實現。該類繼承Form并且實現CommandListener。主要功能就是根據用戶輸入的信息進行判斷,將輸入的信息通過MessageConnection類傳遞給服務器端,并根據服務器端返回的信息給出相應的提示。注冊流程如圖6所示。

2.3.3 在線用戶大廳設計

在線用戶大廳由HallList類實現, HallList繼承javax.microedition.lcdui.List類并且實現CommandListener接口,主要功能就是顯示當前在線用戶情況,以及根據用戶選擇的聊天對象通過MessageConnection類進行處理,之后進入聊天界面。

2.3.4 聊天界面設計

聊天界面通過ChatForm實現。該類繼承了Form類,并且實現了CommandListener,ItemCommandListener兩個接口。ChatForm中有個內部類Chat,該類繼承CustomItem并且實現Runnable接口,主要功能是將聊天的內容實時展現給用戶。

3 手機通信系統的實現

3.1 服務器端的實現

服務器端主要有兩個類,分別是MultipleUserServer類和ServerConnection類。MultipleUserServer類通過ServerSocket server=new ServerSocket(8043);創建一個ServerSocket對象,其中的端口號是8043,并且通過while(true){ ServerConnection serverConn=new ServerConnection(server.accept()); }不斷監聽客戶端的請求。當有客戶端請求時,就將請求通過ServerConnection類進行處理,并將處理后的信息通過套接字的輸出流返回給客戶端。ServerConnection類連接數據庫是通過下面方法實現的:

3.2 客戶端的實現

客戶端的功能主要包括用戶的登錄、用戶的注冊、在線用戶列表的顯示、聊天信息的發送以及聊天記錄的查看。

3.2.1 登錄與注冊的實現

登錄與注冊有些類似,都是通過MessageConnection類將客戶端所填信息通過套接字的輸出流傳遞給服務器端,然后服務器端訪問數據庫,并將處理結果反饋給客戶端,而客戶端根據服務器端返回的信息做出相應的處理。登錄界面和注冊界面如圖7所示。

3.2.2 在線用戶列表的實現

在線用戶列表是在用戶登錄成功后通過LoginForm調用HallList類來實現用戶列表的實時顯示。HallList類是通過訪問數據庫中的tblonline顯示所有在線用戶信息,包括在線的人數、在線人的用戶名及用戶頭像。在線用戶列表界面如圖8所示。

3.2.3 聊天界面的實現

聊天界面是通過ChatForm類實現的,該類有個內部類Chat通過實現Runnable 的run()方法每隔一定的時間就repaint聊天信息,實現聊天信息的實時更新。run()方法通過睡眠一定的時間來實時刷新聊天信息。run方法的關鍵代碼如下:

3.2.4 保存及查看聊天記錄的實現

保存和查看聊天記錄通過RecordManage類實現。該類封裝了打開及創建記錄,添加新紀錄到存儲記錄中的方法。打開記錄主要通過RecordStore類的靜態方法openRecordStore實現的。添加新記錄功能則主要通過RecordStore的addRecord方法實現。聊天記錄的查看只能在兩個用戶的聊天界面中查看。聊天記錄界面如圖9所示。

圖9 聊天記錄界面

3.2.5 提示界面的實現

本系統中多處用到Alert來實現提示界面的顯示。提示界面包括系統的幫助、系統的信息、用戶的詳細信息、用戶聊天記錄和登錄或注冊時的提示。提示界面主要通過ChatMIDlet.instance.display.setCurrent(alert)實現。通過Alert的setTimeout方法可以設置提示界面顯示的時間。部分提示界面如圖10所示。

4 結束語

藉著高覆蓋率的移動通訊網、高速無線網絡和各種不同類型的移動信息終端,移動技術的應用開辟了廣闊的移動交互空間。Java ME是一個具有很多優良特點的平臺,在手機等小型平臺上具有很重要的應用價值。本文簡要介紹了Java ME平臺的體系結構和關鍵技術,基于Java ME平臺設計和實現了手機通信系統,該系統通過套接字技術在特定的端口進行數據交換以實現不同客戶端之間的通信。該系統的實現為移動平臺的研究打下了良好的基礎。

參考文獻:

[1] 劉文軍,朱華生,付美桃.基于J2ME平臺的無線應用系統的開發[J].

南昌工程學院學報,2005.24(1):51-54

[2] 時婧婧.基于J2ME的移動聊天系統的研究與實現[J].赤峰學院學報,

2009.25(12):37-39

[3] 蘇長明.基于J2ME-J2EE的校園移動信息查詢系統設計與實現[J].

成都大學學報(自然科學版),2012.31(3):254-257

[4] 陸昌輝等.J2ME應用開發詳解[M].電子工業出版社,2009.

[5] 李瑩,王晰,毛迪林,高傳善.J2ME MIDP中RMS的設計實現與性能

優化[J].計算機工程,2006.31(16):52-69

主站蜘蛛池模板: 日本人妻丰满熟妇区| 国产成人一区免费观看| 91精品情国产情侣高潮对白蜜| 中文无码精品A∨在线观看不卡| 色妺妺在线视频喷水| 午夜毛片免费看| 少妇精品久久久一区二区三区| 无码AV高清毛片中国一级毛片| 久久香蕉国产线看观看亚洲片| 久久动漫精品| 欧美成人看片一区二区三区 | 国产日韩AV高潮在线| 丰满人妻一区二区三区视频| 九九九精品成人免费视频7| 亚洲精品欧美重口| 亚洲天堂免费在线视频| 色婷婷视频在线| 国产成年女人特黄特色大片免费| 香港一级毛片免费看| 高清码无在线看| 手机在线免费不卡一区二| 国国产a国产片免费麻豆| 蜜臀av性久久久久蜜臀aⅴ麻豆 | 欧美a√在线| 国产又爽又黄无遮挡免费观看| 国产午夜精品一区二区三| 强奷白丝美女在线观看| 亚洲精品动漫在线观看| 成人福利在线观看| 久久99蜜桃精品久久久久小说| 亚洲看片网| 蝌蚪国产精品视频第一页| 国产精品私拍在线爆乳| 热思思久久免费视频| 99精品久久精品| 99视频在线观看免费| 在线观看视频一区二区| 国产精品久久久久无码网站| 久久精品视频一| 午夜一级做a爰片久久毛片| 国产 在线视频无码| 亚洲欧美日韩成人在线| 久久精品人人做人人爽电影蜜月| 老司机午夜精品网站在线观看 | 免费观看国产小粉嫩喷水| 亚洲欧美日韩天堂| www.99在线观看| 亚洲Av综合日韩精品久久久| 国产成人久久综合777777麻豆| 国产精品久久久精品三级| 国产一级精品毛片基地| 一级爆乳无码av| 99r在线精品视频在线播放| yjizz国产在线视频网| 亚洲午夜天堂| 成人午夜精品一级毛片| 国产XXXX做受性欧美88| 热99re99首页精品亚洲五月天| 久久五月天综合| av尤物免费在线观看| 亚洲中文字幕日产无码2021| 狠狠亚洲五月天| 亚洲精品日产AⅤ| 日韩AV无码免费一二三区| 亚洲无码37.| 国产流白浆视频| 日本高清在线看免费观看| 精品欧美日韩国产日漫一区不卡| 亚洲制服丝袜第一页| 国产精品久线在线观看| 亚洲中文字幕av无码区| 久久亚洲美女精品国产精品| 日本五区在线不卡精品| 国产精品xxx| 日韩欧美高清视频| 在线看片中文字幕| 国产毛片基地| 色爽网免费视频| 国产剧情国内精品原创| 国产精品人人做人人爽人人添| 亚洲人成网站观看在线观看| 国产麻豆aⅴ精品无码|