手機本質(zhì)上是一個實時嵌入式系統(tǒng)。
嵌入式系統(tǒng)是以應(yīng)用為中心和以計算機技術(shù)為基礎(chǔ)的,并且軟硬件可裁剪的,能滿足應(yīng)用系統(tǒng)對功能、可靠性、成本、體積和功耗等指標(biāo)的嚴格要求的專業(yè)計算機系統(tǒng)。通常由嵌入式處理器、嵌入式外圍設(shè)備、嵌入式操作系統(tǒng)和嵌入式應(yīng)用軟件等幾大部分組成。
嵌入式應(yīng)用軟件開發(fā)要使用交叉開發(fā)環(huán)境。
交叉開發(fā)環(huán)境是指實現(xiàn)、編譯、鏈接和調(diào)試應(yīng)用程序代碼的環(huán)境。與運行應(yīng)用程序的環(huán)境不同,它分散在有通信連接的宿主機與目標(biāo)機環(huán)境中。
交叉開發(fā)硬件環(huán)境包括宿主機和目標(biāo)機。
宿主機(Host)是一臺通用計算機,可以是PC或工作站。它通過串口或網(wǎng)絡(luò)連接與目標(biāo)機通信。
目標(biāo)機(Target)可以是嵌入式軟件應(yīng)用軟件的實際運行環(huán)境,也可以是能替代實際環(huán)境的仿真系統(tǒng)。
實時系統(tǒng)(RealTime System)是一個能夠在指定或者確定的時間內(nèi)完成系統(tǒng)功能及對外部或內(nèi)部事件在同步或異步時間內(nèi)做出響應(yīng)的系統(tǒng)。
響應(yīng)時間(Response Time)是計算機從識別一個外部事件到做出響應(yīng)的時間,
實時系統(tǒng)根據(jù)響應(yīng)時間,可分為3種類型:
弱實時系統(tǒng)-響應(yīng)時間可以是數(shù)十秒或更長;
一般實時系統(tǒng)-響應(yīng)時間可以在秒的數(shù)量級上,如手機系統(tǒng);
強實時系統(tǒng)-響應(yīng)時間在毫秒或微妙的數(shù)量級上;
在RTOS中,任務(wù)(task)是擁有資源和獨立調(diào)度的基本單位。與操作系統(tǒng)中的線程相似,它是一個具有獨立功能的無限循環(huán)程序的一次運行過程,具有動態(tài)性、并行性和異步獨立性。
動態(tài)性指的是任務(wù)的狀態(tài)不停地在變化。并行性指的是系統(tǒng)中的多個任務(wù)在宏觀上是并行的。異步獨立性指任務(wù)是系統(tǒng)中獨立運行的基本單元,也是內(nèi)核分配和調(diào)度的基本單元,內(nèi)閣任務(wù)運行時各自相互獨立。任務(wù)是實時系統(tǒng)中獨立運行的基本單元,它是一段沒有返回的代碼,可以有自己的運行參數(shù),但返回類型總是void。
在實時操作系統(tǒng)中,任務(wù)的實體由系統(tǒng)給它分配的優(yōu)先級、任務(wù)堆棧和任務(wù)控制塊3部分組成。
大多數(shù)手機開發(fā)人員,最初接觸到的都是開發(fā)PC系統(tǒng)應(yīng)用,手機與PC相比,有許多不同之處:
1開發(fā)PC應(yīng)用軟件的系統(tǒng)環(huán)境和軟件的實際運行環(huán)境相差不大;但開發(fā)手機軟件,基本都是在宿主機-PC上開發(fā),然后通過下載線將軟件下載到目標(biāo)機-手機中,開發(fā)和運行是兩個不同的環(huán)境。
2手機CPU運行速度低;
3手機內(nèi)存和硬盤容量?。?/p>
4手機顯示器?。?/p>
5使用PC系統(tǒng)時,基本都是利用外接電源供電,電量屬于無限供給(未接充電器的筆記本除外);但使用手機時,主要利用自帶的電池供電,電量有限;
6 PC系統(tǒng)基本都使用全鍵盤,但手機的按鍵個數(shù)少,或純觸控操作,無鍵盤;
7手機的主要功能是接打電話和收發(fā)信息,所以這兩個任務(wù)的優(yōu)先級最高,也就是在任何時刻,都盡可能的讓用戶可以接聽電話和收到信息;
8手機系統(tǒng)有WatchDog重啟機制;
當(dāng)然還有許多其他不同之處,相對于PC開發(fā),手機開發(fā)可以說是一個全新的領(lǐng)域。
手機軟件開發(fā)除了要了解基本的軟件開發(fā)、編程知識外,還會涉及嵌入式系統(tǒng)開發(fā)、ARM開發(fā)、通信協(xié)議(GSM、GPRS、CDMA等)、網(wǎng)絡(luò)協(xié)議(HTTP、TCP/IP等)、WAP、MMS、J2ME、串口通信等各方面知識。
根據(jù)支持的通信協(xié)議分類:
手機通常有2G、2.5G、2.75G、3G和4G(G-Generation代)等的區(qū)分。
只支持GSM協(xié)議的手機稱為2G手機,支持IS-95CDMA協(xié)議的手機也屬于2G手機;
支持GPRS協(xié)議的手機是2.5G;
支持EDGE協(xié)議的手機屬于2.75G;
支持WCDMA、CDMA2000和TD-SCDMA協(xié)議的手機屬于3G手機;
支持TDD和FDD協(xié)議的手機屬于4G手機;
根據(jù)使用的操作系統(tǒng)分類:
智能手機(Smart Phone)—采用開放式操作系統(tǒng),如Symbian、Iphone、Windows Mobile、Andriod等,可以讓用戶安裝和卸載應(yīng)用軟件,類似使用電腦的操作體驗。
功能手機(Feature Phone)—采用實時嵌入式操作系統(tǒng),如Nucleus、Threadx等,只能安裝特定平臺支持的軟件,如J2ME、Brew和VRE平臺應(yīng)用軟件。
根據(jù)容納的SIM卡個數(shù)分類:
單卡手機—只容納一張卡。
雙卡手機—容納兩張卡,根據(jù)兩張卡的類型,分為普通的雙卡手機和雙模手機。
普通的雙卡雙待手機通常是內(nèi)置兩張SIM卡,都可以收發(fā)短信和打電話。只需一個射頻天線,因為手機和基站的間歇性的聯(lián)系,如A-B-C-D四個時間段,原來手機只是在A和C時間段與基站聯(lián)系,現(xiàn)改為BD時間段也和基站聯(lián)系,處理SIM2的射頻信號。
雙模雙待手機通常指手機支持兩種制式,如WCDMA+GSM或CDMA+GSM,內(nèi)置兩種不同種類的手機卡,如SIM和UIM。需要兩套射頻體系,有兩個天線。
相對于單卡手機,雙卡手機和基站通信的頻率加倍÷時間加倍,同時手機狀態(tài)欄有兩個信號區(qū)域,手機信號變動,就得刷新顯示,手機的刷屏次數(shù)也增加了;這兩個因素會導(dǎo)致手機的功耗也增加。
在許多國家要求手機要有合法的IMEI號碼,這樣雙卡手機得有兩個合法的IMEI號碼或MEID號碼。
根據(jù)結(jié)構(gòu)類型分類:
直板、滑蓋和翻蓋手機
不同的結(jié)構(gòu)類型,導(dǎo)致有不同的功能需求:
在將直板和滑蓋手機放入口袋中時,因為外物會直接接觸到鍵盤,所以這兩種類型的手機都配有鎖定鍵盤功能。翻蓋手機則不需要。
對于滑蓋手機,用戶收起滑蓋,往往意味將暫時不用手機,所以收起滑蓋,手機要返回到IDLE狀態(tài),同樣翻蓋手機合蓋時也要返回到IDLE狀態(tài)。直板手機無此需求。