亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        手機(jī)應(yīng)用軟件設(shè)計(jì)和開(kāi)發(fā)的方法探討

        2007-01-01 00:00:00劉華章
        計(jì)算機(jī)時(shí)代 2007年5期

        摘要:分析了手機(jī)應(yīng)用運(yùn)行環(huán)境的特點(diǎn),并針對(duì)這些特點(diǎn)提出相應(yīng)的對(duì)策;同時(shí),針對(duì)手機(jī)中應(yīng)用程序顯示區(qū)域小,CPU處理速度和內(nèi)存容量限制,應(yīng)用程序的實(shí)時(shí)性要求和開(kāi)發(fā)環(huán)境的封閉性等特點(diǎn),提出了一些設(shè)計(jì)策略和解決方案。

        關(guān)鍵詞:手機(jī);應(yīng)用軟件;設(shè)計(jì);對(duì)策

        0 引言

        用戶(hù)在使用手機(jī)中無(wú)時(shí)無(wú)刻不在和手機(jī)上的應(yīng)用程序打交道,手機(jī)應(yīng)用程序設(shè)計(jì)得好壞直接影響用戶(hù)對(duì)該款手機(jī)的感受。手機(jī)的應(yīng)用程序的好壞決定了一款手機(jī)的內(nèi)在品質(zhì),從而在很大程序上決定了一款手機(jī)在市場(chǎng)上的命運(yùn)。本文結(jié)合筆者開(kāi)發(fā)手機(jī)應(yīng)用程序的經(jīng)驗(yàn),探討手機(jī)上應(yīng)用軟件的設(shè)計(jì)和開(kāi)發(fā)方法。

        1 手機(jī)應(yīng)用軟件的特點(diǎn)分析

        目前市場(chǎng)上的手機(jī)分兩類(lèi):功能手機(jī)(Feature Phone)和智能手機(jī)(Smart Phone)。雖然這兩類(lèi)手機(jī)還沒(méi)有一個(gè)明確的界線,但是手機(jī)上運(yùn)行的應(yīng)用程序都有如下特點(diǎn):

        顯示區(qū)域小為了方便攜帶和按鍵,大屏的像素點(diǎn)為128x160、160x24、240x320等。

        CPU處理速度和內(nèi)存容量比段小基于成本的考慮,手機(jī)上的處理器(MCU)的頻率較低,一般只有幾十M,智能手機(jī)稍高,一般200—400M。內(nèi)存(RAM和FLASH)一般為8M,16M,智能手機(jī)一般32M,64M。

        和移動(dòng)網(wǎng)絡(luò)的交互密切,實(shí)時(shí)性強(qiáng)能與移動(dòng)網(wǎng)絡(luò)隨時(shí)隨地通信,交換語(yǔ)音和數(shù)據(jù)信息。對(duì)于來(lái)自移動(dòng)網(wǎng)絡(luò)的來(lái)電,短消息,彩信,推消息(Push message)等,應(yīng)用程序必須能及時(shí)提示用戶(hù),并能讓用戶(hù)方便地處理這些信息。這一點(diǎn)也是手機(jī)產(chǎn)品和其他的PDA,PMP等產(chǎn)品的最大區(qū)別,同時(shí)對(duì)這些信息的處理也是手機(jī)軟件設(shè)計(jì)和開(kāi)發(fā)的關(guān)鍵點(diǎn)和難點(diǎn)。

        軟件的開(kāi)發(fā)環(huán)境千差萬(wàn)別,因而手機(jī)應(yīng)用程序的運(yùn)行環(huán)境相差甚遠(yuǎn)現(xiàn)在市場(chǎng)上的手機(jī)的開(kāi)發(fā)環(huán)境要么是手機(jī)的芯片開(kāi)發(fā)商提供,要么是獨(dú)立的軟件公司提供,還沒(méi)有一個(gè)統(tǒng)一的開(kāi)發(fā)標(biāo)準(zhǔn)。各個(gè)平臺(tái)的軟硬件環(huán)境差別很大,在一個(gè)平臺(tái)上的應(yīng)用程序根本不能在另外一個(gè)平臺(tái)上運(yùn)行。手機(jī)應(yīng)用軟件開(kāi)發(fā)和平臺(tái)緊緊地綁定在一起,軟件的可移植性極差。

        2 手機(jī)應(yīng)用軟件設(shè)計(jì)和開(kāi)發(fā)的對(duì)策

        針對(duì)上述手機(jī)應(yīng)用軟件的特點(diǎn),在進(jìn)行手機(jī)應(yīng)用軟件設(shè)計(jì)和開(kāi)發(fā)的時(shí)候必須有清醒的認(rèn)識(shí),并預(yù)先有相應(yīng)的解決方案,在項(xiàng)目進(jìn)行到中間或者最后才發(fā)現(xiàn)或者考慮這些問(wèn)題為時(shí)太晚。下面是筆者認(rèn)為在手機(jī)應(yīng)用軟件設(shè)計(jì)和開(kāi)發(fā)上總體需要把握好的關(guān)鍵點(diǎn)。

        2.1怎樣應(yīng)對(duì)應(yīng)用程序顯示區(qū)域小

        應(yīng)用程序的界面風(fēng)格應(yīng)一致。好的做法是設(shè)計(jì)一個(gè)共用的應(yīng)用程序的基類(lèi)(接口),所有的應(yīng)用程序都從這個(gè)基類(lèi)(接口)繼承;設(shè)計(jì)一組公共的顯示控件,這些控件的顯示風(fēng)格可以通過(guò)配置文件進(jìn)行設(shè)置。這樣可以很方便地達(dá)到“換膚”的功能,從而滿足用戶(hù)界面上個(gè)性化的需求。

        多用圖標(biāo)和簡(jiǎn)潔文字來(lái)表達(dá)界面的含義。由于顯示區(qū)域的限制,手機(jī)很難像PC那樣利用多重窗口,基本上是一個(gè)應(yīng)用程序占用整個(gè)窗口。采用統(tǒng)一的圖標(biāo)和簡(jiǎn)潔的文字能達(dá)到界面意義明確,表達(dá)意義形象的目的,這比冗長(zhǎng)的文字更能吸引人的注意,使人記憶深刻,從而給用戶(hù)良好的使用體驗(yàn)。如果能結(jié)合富有表現(xiàn)力的動(dòng)畫(huà)圖片更好。因此,必須設(shè)計(jì)的圖形控件有:應(yīng)用窗口類(lèi),圖片類(lèi),動(dòng)畫(huà)類(lèi),圖片標(biāo)簽類(lèi),進(jìn)度條類(lèi),單行列表類(lèi),多行列表類(lèi),單選列表類(lèi),多選列表。在手機(jī)應(yīng)用窗口中應(yīng)該充分利用這些類(lèi)來(lái)設(shè)計(jì)有特色的用戶(hù)界面。

        設(shè)計(jì)一個(gè)通用的合理的輸入法接口。輸入法的設(shè)計(jì)在手機(jī)應(yīng)用程序中有重要的地位。輸入法的設(shè)計(jì)在實(shí)現(xiàn)的時(shí)候要考慮的實(shí)際問(wèn)題有:

        (1)怎么方便地切換各種輸入。例如,可以考慮用#,*鍵來(lái)切換各類(lèi)文字的輸入。另外,標(biāo)點(diǎn)字符和數(shù)字等由于使用的頻率很高,可以考慮增加快捷菜單或者快捷鍵操作的輸入方法。

        (2)待選字符的安排是否合理,操作是否方便。例如圖1所示界面是筆者設(shè)計(jì)的中文編輯界面。

        圖1 中文編輯界面

        說(shuō)明:如果用戶(hù)輸入xyz所在的按鍵。則在區(qū)域1顯示所有的待選拼音/筆畫(huà)。在這個(gè)時(shí)候用戶(hù)可以按左右方向按鍵來(lái)選擇待選拼音/筆畫(huà)。用戶(hù)按OK鍵,在區(qū)域2,高亮(Highlight)顯示的是第一個(gè)待選漢字。這時(shí)按左右按鍵高亮光標(biāo)在待選漢字間移動(dòng)。如果漢字太多,可以按上下按鍵來(lái)在前一頁(yè)和后一頁(yè)漢字之間切換。按OK鍵,高亮選定的漢字將被輸入到編輯界面上。在區(qū)域3,是區(qū)域2高亮漢字的聯(lián)想詞組。用戶(hù)可以長(zhǎng)按1-9鍵將顯示的詞組直接輸入到編輯界面(不需要高光選擇)。短按一次取消鍵(C鍵)刪除編輯界面的一個(gè)漢字,快速短按兩次,刪除編輯界面的一行漢字,長(zhǎng)按取消鍵,全部刪除編輯界面的漢字。

        上面舉的例子只是中文的輸入,實(shí)際情況是還需要英文字母,英文單詞,標(biāo)點(diǎn)符號(hào)等字符的輸入。所以,輸入法的軟件設(shè)計(jì)的細(xì)節(jié)問(wèn)題很多,各個(gè)應(yīng)用的需求千差萬(wàn)別,需要我們?cè)陂_(kāi)始設(shè)計(jì)軟件時(shí)充分考慮輸入法接口的可擴(kuò)展性和靈活性。

        2.2怎樣應(yīng)對(duì)CPU處理速度和內(nèi)存容量的限制

        設(shè)計(jì)或者選定一個(gè)合理而高效的系統(tǒng)架構(gòu)。好的應(yīng)用程序需要一個(gè)好的系統(tǒng)框架。針對(duì)手機(jī)的CPU和內(nèi)存的特點(diǎn),手機(jī)的應(yīng)用程序的運(yùn)行環(huán)境和PC上的程序運(yùn)行環(huán)境有很大的不同,用表1總結(jié)如下:

        通過(guò)上面的對(duì)比,可以看出,手機(jī)的設(shè)計(jì)應(yīng)注意以下幾點(diǎn):

        (1)以當(dāng)前手機(jī)的硬件為基準(zhǔn),采取適度超前的原則來(lái)定義系統(tǒng)架構(gòu)。整個(gè)架構(gòu)不必大而且全,要小而精,并盡量做到架構(gòu)中的各個(gè)部件具有很好的可裁減性。這樣的系統(tǒng)架構(gòu)才能滿足各種不同的硬件需要。

        (2)精心設(shè)計(jì)架構(gòu)中的每一個(gè)部件,消除系統(tǒng)冗余的代碼;合理定義接口,系統(tǒng)的架構(gòu)才能清晰容易被人理解,并且系統(tǒng)的可靠性也高。只有這樣,整個(gè)系統(tǒng)架構(gòu)的代碼占用的內(nèi)存少,應(yīng)用程序在運(yùn)行的時(shí)候占用的內(nèi)存和CPU資源少。

        (3)應(yīng)用程序可以在PC上模擬運(yùn)行。一般手機(jī)上調(diào)試應(yīng)用程序的過(guò)程比較復(fù)雜,如果一個(gè)很小的改動(dòng)都要到手機(jī)上去調(diào)試很浪費(fèi)時(shí)間,同時(shí),在PC上調(diào)試程序也比在手機(jī)上調(diào)試程序方便得多。一個(gè)好的程序架構(gòu)的基本要求是絕大部分的應(yīng)用都可以在PC機(jī)上模擬開(kāi)發(fā)完成。

        精心設(shè)計(jì)應(yīng)用程序。應(yīng)用程序的執(zhí)行效率和應(yīng)用程序的設(shè)計(jì)密切相關(guān)。對(duì)于手機(jī)上的應(yīng)用程序,不同的設(shè)計(jì)策略有不同的結(jié)果。例如:對(duì)于一個(gè)電話本的應(yīng)用程序,讀取所有電話記錄至少有兩種方法:一種是在一開(kāi)機(jī)的時(shí)候就讀;另外一種是在電話本應(yīng)用打開(kāi)的時(shí)候才讀。實(shí)際情況是前一種情況較好,因?yàn)?,這樣用戶(hù)每次進(jìn)入電話本的時(shí)候手機(jī)可以很快地顯示所有的電話記錄,后者則慢得多,在有些系統(tǒng)中可能是難以忍受,必須提前準(zhǔn)備好數(shù)據(jù)。

        在設(shè)計(jì)應(yīng)用程序中著重考慮的問(wèn)題有:

        (1)程序的處理效率是否高;

        (2)程序的內(nèi)存占用和CPU是否太多;

        (3)用戶(hù)的操作是否方便,應(yīng)用的響應(yīng)速度是否足夠快;

        (4)界面的定義是否美觀,和系統(tǒng)的總體風(fēng)格相一致;

        2.3怎樣應(yīng)對(duì)應(yīng)用程序的實(shí)時(shí)性要求

        手機(jī)最重要的功能是通話和通信。這些一般和無(wú)線網(wǎng)絡(luò)都有密切的關(guān)系。對(duì)于來(lái)自無(wú)線網(wǎng)絡(luò)的來(lái)電,短消息,推消息等,必須有一個(gè)應(yīng)用來(lái)統(tǒng)一調(diào)度和處理這些消息和信息。筆者稱(chēng)之為待機(jī)管理應(yīng)用。待機(jī)管理應(yīng)用是底層軟件和其他應(yīng)用程序的調(diào)度員,同時(shí)它也負(fù)責(zé)待機(jī)界面下的界面顯示和其他應(yīng)用不方便處理的一些任務(wù)。如果用圖來(lái)表示,那么它在整個(gè)系統(tǒng)中的位置如圖2所示。

        待機(jī)管理應(yīng)用的特點(diǎn)是:(1)一開(kāi)機(jī)就首先運(yùn)行;(2)總是處于運(yùn)行或者待命狀態(tài),不會(huì)退出。

        因此,這個(gè)應(yīng)用的穩(wěn)定性要求就特別高。在軟件設(shè)計(jì)的時(shí)候要特別注意功能劃分,如果某項(xiàng)功能能在其它的應(yīng)用中處理,該功能應(yīng)盡量分到別的應(yīng)用中去,以免待機(jī)管理過(guò)于復(fù)雜,影響系統(tǒng)的穩(wěn)定性。

        待機(jī)管理應(yīng)用的功能一般如下:

        (1)處理與充電器和電池有關(guān)的消息。例如:插入充電器,如果是在開(kāi)機(jī),則在待機(jī)下顯示充電動(dòng)畫(huà);拔掉充電器,關(guān)閉充電動(dòng)畫(huà)的顯示等;

        (2)處理開(kāi)機(jī)動(dòng)畫(huà)或者問(wèn)候語(yǔ)的顯示;

        (3)如果底層協(xié)議報(bào)告SIM卡設(shè)置了PIN碼,啟動(dòng)SIM卡的PIN碼輸入界面;如果還設(shè)置了手機(jī)密碼,則啟動(dòng)手機(jī)的密碼輸入界面;

        (4)顯示待機(jī)下面的各種狀態(tài)圖標(biāo),網(wǎng)絡(luò)注冊(cè)的信息,時(shí)間和日期信息,各種應(yīng)用圖標(biāo)的排列;

        (5)顯示屏幕保護(hù)的界面;

        (6)處理用戶(hù)在待機(jī)狀態(tài)下的各種按鍵操作,例如:如果用戶(hù)短按了數(shù)字1所在的按鍵,則要啟動(dòng)號(hào)碼編輯應(yīng)用或者界面,如果用戶(hù)在應(yīng)用圖標(biāo)或者菜單中按或者點(diǎn)擊了某一個(gè)應(yīng)用,則要啟動(dòng)該應(yīng)用;

        (7)顯示各種系統(tǒng)狀態(tài),例如:未接來(lái)電和短消息的提示,電池電量不足的提示,鬧鐘的提示等;

        (8)轉(zhuǎn)發(fā)底層的各種消息給相應(yīng)的應(yīng)用程序,為其他的上層應(yīng)用提供統(tǒng)一、簡(jiǎn)潔的接口。這樣做的原因是通過(guò)對(duì)底層消息的封裝和轉(zhuǎn)換,能簡(jiǎn)化其他應(yīng)用處理。并且使待機(jī)管理應(yīng)用能及時(shí)了解系統(tǒng)當(dāng)前的狀態(tài),并及時(shí)通知給用戶(hù)。

        2.4怎樣應(yīng)對(duì)應(yīng)用程序的開(kāi)發(fā)環(huán)境的封閉性

        正如上面提到的,現(xiàn)在市場(chǎng)上主流的手機(jī)開(kāi)發(fā)平臺(tái)很多,并且還不斷有新的平臺(tái)涌現(xiàn),怎樣開(kāi)發(fā)能在各種不同的平臺(tái)上有很強(qiáng)移植性的應(yīng)用程序?qū)Τ绦蛟O(shè)計(jì)和開(kāi)發(fā)人員是一個(gè)艱巨的任務(wù)。筆者結(jié)合自己的經(jīng)歷認(rèn)為可行的思路如下:

        (1)應(yīng)用的用戶(hù)界面和實(shí)際的處理邏輯盡量分開(kāi),將一些可以共用的處理邏輯提煉成共用的函數(shù)接口。例如:日程應(yīng)用的陰陽(yáng)歷轉(zhuǎn)換算法,電話本中的首字母查找算法等都可以放在一個(gè)單獨(dú)文件或者庫(kù)文件中,這樣的代碼可以很方便地移植到其他的平臺(tái)上。

        (2)編寫(xiě)代碼的時(shí)候,數(shù)據(jù)結(jié)構(gòu)的定義和函數(shù)的處理要考慮不同硬件平臺(tái)的差別。一個(gè)好的做法是定義一個(gè)平臺(tái)上通用的數(shù)據(jù)類(lèi)型定義,而不是直接使用設(shè)計(jì)語(yǔ)言里面原始定義的數(shù)據(jù)類(lèi)型。例如:如果是在C/C++的開(kāi)發(fā)平臺(tái)上,我們可以定義一個(gè)文件types.h,它里面包含如下通用類(lèi)型的定義:

        typedef char BOOLEAN;

        typedef unsigned char BYTE;

        typedef char CHAR;

        typedef unsigned short WCHAR;

        typedef char INT8;

        typedef unsigned char UINT8;

        typedef shOrt INTl6;

        typedef unsigned short UINT16;

        typedef long INT32;

        typedef unsigned long UINT32;

        typedef long LONG;

        typedef unsigned long ULONG;

        在程序中,所有數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)項(xiàng),函數(shù)的參數(shù)和返回值,類(lèi)的成員數(shù)據(jù)都用上面的這些通用類(lèi)型,這樣編寫(xiě)的軟件的可移植性就可以大大提高。

        如果可能,多采用成熟的第三方軟件或者知名的開(kāi)源代碼庫(kù)。

        手機(jī)的應(yīng)用經(jīng)常碰到部分模塊是自己開(kāi)發(fā)還是采用第三方軟件的問(wèn)題。為了軟件的可移植性,加快軟件的開(kāi)發(fā)速度,這些模塊應(yīng)該多采用專(zhuān)業(yè)公司開(kāi)發(fā)的成熟軟件或者采用穩(wěn)定的開(kāi)源軟件。這比自己重新開(kāi)發(fā)好、快捷方便得多,開(kāi)發(fā)成本也比較少。例如:現(xiàn)在很多手機(jī)都支持MP4播放,這樣就涉及音視頻編解碼的問(wèn)題,如果可能,選擇一個(gè)經(jīng)過(guò)市場(chǎng)驗(yàn)證,可移植性強(qiáng)的第三方或者開(kāi)源的音視頻編解碼庫(kù)比自己進(jìn)行開(kāi)發(fā)要合算得多,這樣的應(yīng)用程序的可移植性比自己在特定平臺(tái)上全部由自己開(kāi)發(fā)的應(yīng)用程序要好。

        3 結(jié)束語(yǔ)

        手機(jī)上的應(yīng)用程序開(kāi)發(fā)環(huán)境現(xiàn)在還是一個(gè)比較封閉,與應(yīng)用程序耦合比較緊密的系統(tǒng);應(yīng)用程序的設(shè)計(jì)和開(kāi)發(fā)相對(duì)復(fù)雜,對(duì)應(yīng)用的穩(wěn)定性,安全性,實(shí)時(shí)性要求也比較高。無(wú)論是對(duì)手機(jī)系統(tǒng)平臺(tái)的設(shè)計(jì)人員還是開(kāi)發(fā)人員,只有在了解其特點(diǎn)的基礎(chǔ)上才能提出有針對(duì)性的方案。本文指出了這些特點(diǎn)并闡述了筆者的觀點(diǎn),希望能起到拋磚引玉的作用。

        注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文。

        欧美性白人极品1819hd| 日韩av无码成人无码免费| 国产99久久无码精品| 久久精品爱国产免费久久| 麻豆AV无码久久精品蜜桃久久| 亚洲中文字幕人妻诱惑| 国成成人av一区二区三区| 国产精品一区av在线| 免费国产自拍在线观看| 99精品国产一区二区三区| 亚洲av无码第一区二区三区| 三上悠亚免费一区二区在线| 亚洲ⅤA中文字幕无码| 日韩女优在线一区二区| 亚洲av综合色区一区二区| 亚洲午夜久久久精品影院| 国产h视频在线观看| 亚洲欧洲高潮| 蜜桃一区二区三区在线看| 日本中文字幕一区二区视频| 国产精品天堂在线观看| 国产视频激情在线观看| 丝袜美腿亚洲一区二区| 白又丰满大屁股bbbbb| 久久久久久99精品| 女同舌吻互慰一区二区| 久久久亚洲欧洲日产国码aⅴ| 看av免费毛片手机播放| 少妇熟女视频一区二区三区| 综合无码综合网站| 免费在线观看蜜桃视频| 粉色蜜桃视频完整版免费观看在线| 国产成人亚洲综合| 五级黄高潮片90分钟视频| 在线免费欧美| 粉嫩的18在线观看极品精品| 日本一二三区免费在线| 久久精品无码一区二区三区免费 | 精品久久av一区二区| 乱人伦中文无码视频| 色婷婷精品综合久久狠狠|