日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

手机MMI体系结构及其实现

發(fā)布時間:2023/12/2 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 手机MMI体系结构及其实现 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

摘自:http://blog.csdn.net/zc2007/article/details/2340436?

?

?? 1引言

??? MMI(ManMachineInter-face),即人機界面,它負(fù)責(zé)和用戶的交互,在必要的時候調(diào)用其它模塊的功能。MMI模塊在整個系統(tǒng)中處于最 高層,主要實現(xiàn)人機交互的功能,即解釋用戶的各種命令并發(fā)消息到相應(yīng)的處理模塊,同時將系統(tǒng)接收到的各種消息或系統(tǒng)所處的狀態(tài)以界面友好的方式反饋給用 戶。它由管理人機界面交互的任務(wù)實現(xiàn)。MMI軟件利用面向?qū)ο蟮某绦蛟O(shè)計方法,平臺采用消息循環(huán)驅(qū)動機制,實現(xiàn)對下層核心代碼的抽象、隔離和封裝,從而使 得MMI軟件同硬件平臺和下層軟件的相關(guān)性降低。在完成大型的應(yīng)用軟件開發(fā)過程中,便于分組分工合作。

??? 目前,各個手機廠商正在將越來越多的注意力集中到人機界面的設(shè)計上,力爭提供給用戶一個美觀易用、功能齊全的操作平臺。顯示屏由原先的黑白小屏幕顯示,發(fā)展為現(xiàn)在的真彩色大屏幕,存儲容量也快速增長,硬件設(shè)備的高速發(fā)展,為人機接口的各種改進提供了可靠性。

??? 為了更好地實現(xiàn)上述功能,手機MMI軟件應(yīng)該做到以下幾點。

??? ·軟件工作穩(wěn)定可靠,與低層軟件接口方便,以保證整機的性能。

??? ·選用代碼效率高,可移植性好的編程語言,以便提高產(chǎn)品的性能價格比,降低開發(fā)成本。

??? ·運用圖形、動畫、漢化界面及漢字功能,美化產(chǎn)品、方便使用。

??? ·精心組織程序結(jié)構(gòu),使軟件結(jié)構(gòu)清晰,各個模塊獨立性強、可擴充性高、可封裝性好,便于開發(fā)小組分工合作以及各階段開發(fā)成果的充分利用,縮短產(chǎn)品開發(fā)周期。

??? 本文圍繞MMI軟件架構(gòu)和消息驅(qū)動機制,結(jié)合短消息的發(fā)送,粗略地對手機軟件開發(fā)作介紹。

??? 2手機MMI應(yīng)用程序的分層結(jié)構(gòu)

??? 手機軟件的主體系統(tǒng)架構(gòu)由兩部分組成:底層的操作系統(tǒng)、協(xié)議棧、協(xié)議驅(qū)動與上層的手機平臺。


圖1

??? 手機性能的好壞直接取決于手機平臺的搭建。好的平臺能實現(xiàn)模塊化管理,各個模塊之間的獨立性高,便于修改,節(jié)約成本。這里就涉及到人機界面的設(shè)計,我們把MMI應(yīng)用程序自下而上分為三個層次,分別是抽象層、核心層和應(yīng)用層。如圖1所示。

??? 抽象層由操作系統(tǒng)抽象層(OSAL)、協(xié)議棧抽象層(PASL)和硬件抽象層(PSAL)組成。此模塊可以將目標(biāo)操作系統(tǒng)抽象出來,使核心層和應(yīng)用層與目標(biāo)操作系統(tǒng)無關(guān),實現(xiàn)良好的可移植性,縮短產(chǎn)品的開發(fā)周期,保證產(chǎn)品快速上市;也可以將目標(biāo)平臺的無線通信相關(guān)部分抽象出來,與協(xié)議棧通信,完成AT命令的交互,可以提供與電話功能和SIM卡功能相關(guān)的操作,包括語音通話、短消息、小區(qū)廣播、SIM卡數(shù)據(jù)訪問、STK、PLMN網(wǎng)絡(luò)注冊等;也可以完成設(shè)備抽象如液晶屏、鍵盤、音頻播放器等,綜合它們的共同點,與下層隔離。

??? 核心層是MMI程序的靈魂,在軟件結(jié)構(gòu)中起承上啟下的作用。它主要由圖形用戶界面(GUI)、窗口管理、消息管理、應(yīng)用引擎組成。引擎與界面無關(guān),文件 I/O采用ANSIC標(biāo)準(zhǔn),方便在各種系統(tǒng)上的移植。如短消息的引擎專門負(fù)責(zé)短消息的接收、分發(fā)、發(fā)送、存儲和管理,它僅依賴于抽象層,向上層應(yīng)用程序提 供一整套短消息相關(guān)的API,從而達(dá)到簡化應(yīng)用程序編程的目的,使界面定制更加方便快捷。關(guān)于窗口管理和消息管理下文將作詳細(xì)的介紹。

??? 應(yīng)用層是手機多樣化的體現(xiàn),廠家可以針對不同的消費群體量身定制。一般手機都提供短消息、通話、設(shè)置等基礎(chǔ)應(yīng)用,還包括照相、MP3等高級應(yīng)用。

??? 3MMI軟件的核心結(jié)構(gòu)——消息循環(huán)機制及窗口管理


圖2

??? MMI軟件有一個主程序,主要作用是建立消息循環(huán),負(fù)責(zé)分發(fā)消息。由于MMI軟件采用面向?qū)ο蟮某绦蛟O(shè)計方法,平臺采用消息循環(huán)驅(qū)動機制,實現(xiàn)對下層核心 代碼的抽象、隔離和封裝,從而應(yīng)用程序的運行需要依靠外部發(fā)生的事件來驅(qū)動,即程序所做的一切都是響應(yīng)發(fā)送給窗口過程的消息。如圖2所示。

??? 一個簡單的消息環(huán)含有下列函數(shù)的調(diào)用:GetMessage、TranslateMessage和Dispatch-Message。

??? while(GetMessage(&msg,NULL, 0, 0)) 1引言

??? MMI(ManMachineInterface),即人機界面,它負(fù)責(zé)和用戶的交互,在必要的時候調(diào)用其它模塊的功能。MMI模塊在整個系統(tǒng)中處于最高 層,主要實現(xiàn)人機交互的功能,即解釋用戶的各種命令并發(fā)消息到相應(yīng)的處理模塊,同時將系統(tǒng)接收到的各種消息或系統(tǒng)所處的狀態(tài)以界面友好的方式反饋給用戶。 它由管理人機界面交互的任務(wù)實現(xiàn)。MMI軟件利用面向?qū)ο蟮某绦蛟O(shè)計方法,平臺采用消息循環(huán)驅(qū)動機制,實現(xiàn)對下層核心代碼的抽象、隔離和封裝,從而使得 MMI軟件同硬件平臺和下層軟件的相關(guān)性降低。在完成大型的應(yīng)用軟件開發(fā)過程中,便于分組分工合作。

??? 目前,各個手機廠商正在將越來越多的注意力集中到人機界面的設(shè)計上,力爭提供給用戶一個美觀易用、功能齊全的操作平臺。顯示屏由原先的黑白小屏幕顯示,發(fā)展為現(xiàn)在的真彩色大屏幕,存儲容量也快速增長,硬件設(shè)備的高速發(fā)展,為人機接口的各種改進提供了可靠性。

??? 為了更好地實現(xiàn)上述功能,手機MMI軟件應(yīng)該做到以下幾點。

??? ·軟件工作穩(wěn)定可靠,與低層軟件接口方便,以保證整機的性能。

??? ·選用代碼效率高,可移植性好的編程語言,以便提高產(chǎn)品的性能價格比,降低開發(fā)成本。

??? ·運用圖形、動畫、漢化界面及漢字功能,美化產(chǎn)品、方便使用。

??? ·精心組織程序結(jié)構(gòu),使軟件結(jié)構(gòu)清晰,各個模塊獨立性強、可擴充性高、可封裝性好,便于開發(fā)小組分工合作以及各階段開發(fā)成果的充分利用,縮短產(chǎn)品開發(fā)周期。

??? 本文圍繞MMI軟件架構(gòu)和消息驅(qū)動機制,結(jié)合短消息的發(fā)送,粗略地對手機軟件開發(fā)作介紹。

??? 2手機MMI應(yīng)用程序的分層結(jié)構(gòu)

??? 手機軟件的主體系統(tǒng)架構(gòu)由兩部分組成:底層的操作系統(tǒng)、協(xié)議棧、協(xié)議驅(qū)動與上層的手機平臺。

??? 手機性能的好壞直接取決于手機平臺的搭建。好的平臺能實現(xiàn)模塊化管理,各個模塊之間的獨立性高,便于修改,節(jié)約成本。這里就涉及到人機界面的設(shè)計,我們把MMI應(yīng)用程序自下而上分為三個層次,分別是抽象層、核心層和應(yīng)用層。如圖1所示。

??? 抽象層由操作系統(tǒng)抽象層(OSAL)、協(xié)議棧抽象層(PASL)和硬件抽象層(PSAL)組成。此模塊可以將目標(biāo)操作系統(tǒng)抽象出來,使核心層和應(yīng)用層與目 標(biāo)操作系統(tǒng)無關(guān),實現(xiàn)良好的可移植性,縮短產(chǎn)品的開發(fā)周期,保證產(chǎn)品快速上市;也可以將目標(biāo)平臺的無線通信相關(guān)部分抽象出來,與協(xié)議棧通信,完成AT命令 的交互,可以提供與電話功能和SIM卡功能相關(guān)的操作,包括語音通話、短消息、小區(qū)廣播、SIM卡數(shù)據(jù)訪問、STK、PLMN網(wǎng)絡(luò)注冊等;也可以完成設(shè)備 抽象如液晶屏、鍵盤、音頻播放器等,綜合它們的共同點,與下層隔離。

??? 核心層是MMI程序的靈魂,在軟件結(jié)構(gòu)中起承上啟下的作用。它主要由圖形用戶界面(GUI)、窗口管理、消息管理、應(yīng)用引擎組成。引擎與界面無關(guān),文件 I/O采用ANSIC標(biāo)準(zhǔn),方便在各種系統(tǒng)上的移植。如短消息的引擎專門負(fù)責(zé)短消息的接收、分發(fā)、發(fā)送、存儲和管理,它僅依賴于抽象層,向上層應(yīng)用程序提 供一整套短消息相關(guān)的API,從而達(dá)到簡化應(yīng)用程序編程的目的,使界面定制更加方便快捷。關(guān)于窗口管理和消息管理下文將作詳細(xì)的介紹。

??? 應(yīng)用層是手機多樣化的體現(xiàn),廠家可以針對不同的消費群體量身定制。一般手機都提供短消息、通話、設(shè)置等基礎(chǔ)應(yīng)用,還包括照相、MP3等高級應(yīng)用。

??? 3MMI軟件的核心結(jié)構(gòu)——消息循環(huán)機制及窗口管理

??? MMI軟件有一個主程序,主要作用是建立消息循環(huán),負(fù)責(zé)分發(fā)消息。由于MMI軟件采用面向?qū)ο蟮某绦蛟O(shè)計方法,平臺采用消息循環(huán)驅(qū)動機制,實現(xiàn)對下層核心 代碼的抽象、隔離和封裝,從而應(yīng)用程序的運行需要依靠外部發(fā)生的事件來驅(qū)動,即程序所做的一切都是響應(yīng)發(fā)送給窗口過程的消息。如圖2所示。

??? 一個簡單的消息環(huán)含有下列函數(shù)的調(diào)用:GetMessage、TranslateMessage和DispatchMessage。

??? while(GetMessage(&msg,NULL, 0, 0))

??? {

??? TranslateMessage(&msg);

??? DispatchMessage(&msg);

??? }

??? 當(dāng)收到來自底層的開機消息時,MMI軟件進行初始化并創(chuàng)建基本窗口。基本窗口可以看作是MMI層所有窗口的“根”,其它窗口都是這個窗口的子窗口。到達(dá) MMI層的消息,其它窗口不處理時,都送到基本窗口中作缺省處理。在基本窗口中,根據(jù)不同的情況,進行狀態(tài)轉(zhuǎn)換,分別創(chuàng)建等待、充電、等待插入SIM卡、 等待輸入PIN(個人識別號)等子窗口,處理開機及關(guān)機過程中的各項工作。順利完成各項開機工作后,轉(zhuǎn)入待機狀態(tài),創(chuàng)建待機窗口。待機窗口可以完成撥號、 啟動快捷鍵等工作,也可以進一步創(chuàng)建電話本等子窗口。如果因接聽來電或撥打電話進入通話狀態(tài),取消待機窗口,創(chuàng)建通話窗口。

??? 菜單窗口可以派生出一系列子窗口,形成一顆菜單樹,這個菜單樹把手機的各種功能有機組織在一起。各個菜單窗口都是菜單窗口類的實例。菜單的選擇、顯示等功能都在菜單類中完成。

??? GUI(圖形用戶界面)系統(tǒng)為MMI應(yīng)用程序提供了以窗口為核心的用戶界面和消息事件驅(qū)動的實現(xiàn)機制。GUI窗口管理模塊為對話窗口、菜單、編輯及其他用 戶輸入輸出操作提供了一個基本框架,為消息處理提供了基本手段。窗口管理收集所有的輸入信息,然后把這些輸入信息以消息的形式送往合適的窗口,由該窗口的 處理函數(shù)處理。

??? 窗口消息在窗口函數(shù)中處理。每個窗口類都必須有一個窗口函數(shù)。MMI應(yīng)用程序只要負(fù)責(zé)創(chuàng)建窗口、處理窗口產(chǎn)生的高級事件及窗口的異常情況。在這個環(huán)境中, 用戶可以對消息作處理,也可以作缺省處理。窗口管理把來自鍵盤和軟件中其它實體的消息送到具有當(dāng)前焦點的窗口。在軟件的整個運行過程中,總存在一個具有焦 點的窗口,它負(fù)責(zé)處理輸入消息,或者把消息沿著從子窗口到父窗口方向的鏈表送到一個可以處理該消息的窗口。

??? 應(yīng)用程序必須刪除和處理投遞到它的線程消息隊列中的消息,單一線程的應(yīng)用程序一般在它的入口函數(shù)中使用一個消息環(huán)來刪除消息,并把消息發(fā)送到相應(yīng)的窗口過程進行處理。具有多重線程的應(yīng)用程序在創(chuàng)建窗口的每一個線程中使用一個消息環(huán)。

??? 4MMI層消息的產(chǎn)生及處理

??? MMI消息主要包括按鍵事件消息、協(xié)議棧消息及自定義消息等。GUI從幾個源產(chǎn)生和獲取消息,由底層鍵盤的輸入消息;也可以由GUI系統(tǒng)產(chǎn)生(如通過 GUI提供的API函數(shù)調(diào)用或GUI系統(tǒng)為了響應(yīng)應(yīng)用程序給系統(tǒng)帶來的變化,如窗口大小的改變),大多數(shù)這類消息是發(fā)送而不是投遞的;也可由應(yīng)用程序的運 行來產(chǎn)生,一個應(yīng)用程序可以投遞消息到自己的隊列或其它應(yīng)用程序的隊列中去,也可以直接把消息發(fā)送到自己的窗口或其它應(yīng)用程序的窗口中去。

??? GUI系統(tǒng)有兩種方式向窗口過程發(fā)送消息:把消息投遞到一個先進先出的消息隊列,它是系統(tǒng)定義的內(nèi)存塊用于臨時存儲消息;或是把消息直接發(fā)送給窗口過程。GUI系統(tǒng)要用到消息隊列,它要管理一個系統(tǒng)消息隊列和任意數(shù)目線程消息隊列,每個隊列對應(yīng)一個線程。

??? 5短消息的發(fā)送實例


圖3

??? 下面以短消息發(fā)送為例簡要說明。用戶點擊“短消息”菜單,進入短消息列表窗體。按“OK”鍵進入短消息編輯窗體,從而編寫短消息的內(nèi)容。編寫完畢,點擊“確定”,進入聯(lián)系人窗體。最后,確認(rèn)聯(lián)系人號碼進入發(fā)送窗體。傳遞的機制如圖3所示。


圖4

??? 短消息發(fā)送程序涉及到很多模塊,如何建立良好的通信機制是關(guān)鍵。程序中運用了回調(diào)函數(shù)和事件傳送機制。如圖4所示。

??? 在回調(diào)函數(shù)的處理中,鍵盤事件的處理是最重要的。通常鍵盤事件被具有輸入焦點的窗體首先獲得,它如果處理這個鍵盤事件,在鍵盤回調(diào)函數(shù)中截獲該鍵盤事件, 否則將此鍵盤事件按照消息隊列,向上層窗口傳遞,直到有一個窗體將它截獲。由于編輯窗體使用的是編輯框窗口類,編輯框窗口類封裝良好,使得它本身可以處理 大部分鍵盤事件(如數(shù)字輸入、文字輸入等),但總有一些事件要進行特殊的處理以滿足窗體的不同需求,這時需要與窗體之間進行通信。

??? 6結(jié)束語

??? 本文介紹的這種軟件設(shè)計方法層次清晰、簡潔,結(jié)構(gòu)比較完善,有利于在較短的時間內(nèi)開發(fā)出符合要求的移動終端軟件。同時,進行MMI軟件開發(fā)的整個過程模塊可再用性好,便于開發(fā)小組分工合作。

轉(zhuǎn)載于:https://www.cnblogs.com/jianghulang/archive/2012/04/03/2431257.html

總結(jié)

以上是生活随笔為你收集整理的手机MMI体系结构及其实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。