- Android應(yīng)用程序開發(fā)與典型案例
- 鄭萌 趙常松等編著
- 2574字
- 2018-12-27 18:22:09
上篇 Android應(yīng)用程序設(shè)計(jì)基礎(chǔ)
第1章 Android基本概念
本章介紹Android基本概念方面的內(nèi)容,包括Android平臺(tái)特性、Android系統(tǒng)架構(gòu)、Android開發(fā)框架以及OMS介紹。
1.1 Android簡(jiǎn)介
Android一詞的本義指“機(jī)器人”,它是由Google公司于2007年11月推出的基于Linux平臺(tái)的開源手機(jī)操作系統(tǒng),依靠Google的強(qiáng)大開發(fā)和媒體資源,Android成為眾多手機(jī)廠商競(jìng)相追逐的對(duì)象,逐漸發(fā)展成為目前最流行的手機(jī)開發(fā)平臺(tái)。圖1-1所示為Android系統(tǒng)的Logo。

圖1-1 Android系統(tǒng)的Logo
Android是一個(gè)包括操作系統(tǒng)、中間件、用戶界面和關(guān)鍵應(yīng)用軟件的移動(dòng)設(shè)備軟件堆。換句話說,Android是基于Java并運(yùn)行在Linux內(nèi)核上的輕量級(jí)操作系統(tǒng),功能全面,包括一系列Google公司在其內(nèi)置的應(yīng)用軟件,如電話、短信等基本應(yīng)用功能。圖1-2所示為Android的模擬器,從中可以大概了解Android的運(yùn)行界面。

圖1-2 Android模擬器
問:模擬器和真機(jī)有什么區(qū)別呢?
答:
? 模擬器不支持呼叫和接聽實(shí)際來電,但可以通過控制臺(tái)模擬電話呼叫(呼入和呼出)。
? 模擬器不支持USB連接。
? 模擬器不支持相機(jī)/視頻捕捉。
? 模擬器不支持音頻輸入(捕捉),但支持輸出(重放)。
? 模擬器不支持?jǐn)U展耳機(jī)。
? 模擬器不能確定連接狀態(tài)。
? 模擬器不能確定電池電量水平和充電狀態(tài)。
? 模擬器不能確定SD卡的插入/彈出。
? 模擬器不支持藍(lán)牙。
1.2 Android平臺(tái)特性
隨著科技的發(fā)展,移動(dòng)電話(Mobile Phone)正向著智能化的方向邁步,并逐步成為多種工具的功能載體,而Android就是這樣一個(gè)智能手機(jī)的平臺(tái),一個(gè)多種工具的功能載體。
1.通信工具
移動(dòng)電話的最基本功能即為通信,因此,使用運(yùn)營(yíng)商提供的通信網(wǎng)絡(luò)進(jìn)行語音通話也是Android平臺(tái)的最基本功能。除了傳統(tǒng)的語音通話功能外,Android平臺(tái)還具有短消息功能,以及通常移動(dòng)電話都具有的個(gè)人信息系統(tǒng)管理方面的功能(如電話本等)。
2.網(wǎng)絡(luò)工具
隨著數(shù)字業(yè)務(wù)使用的普遍化,移動(dòng)電話通常作為網(wǎng)絡(luò)工具使用,這樣移動(dòng)電話可以完成電腦的部分功能。由此,Android平臺(tái)在網(wǎng)絡(luò)方面的功能主要包括瀏覽器、IM(即時(shí)信息)、郵件等,基本包含了網(wǎng)絡(luò)方面的大部分功能。
3.媒體播放器
隨著多媒體技術(shù)的應(yīng)用,在移動(dòng)電話上進(jìn)行音頻和視頻播放已經(jīng)成為經(jīng)常使用的功能。由此,Android平臺(tái)具有支持更多的音頻/視頻格式,支持更高分辨率的視頻、更流暢地播放,以及和網(wǎng)絡(luò)結(jié)合的流媒體方面等功能。
4.媒體獲取設(shè)備
隨著移動(dòng)電話與媒體獲取設(shè)備的集成日益增強(qiáng),Android平臺(tái)提供了照相機(jī)、錄音機(jī)、攝像機(jī)等功能。
5.多類型的連接設(shè)備
Android平臺(tái)提供了多種連接方式,如USB、GPS、紅外、藍(lán)牙、無線局域網(wǎng)等。
6.具有友好和絢麗的用戶界面
Android平臺(tái)具有友好的用戶界面,使用戶容易學(xué)習(xí)和操作,同時(shí)具有絢麗的用戶界面,具有良好的視覺效果。
7.可以個(gè)性化定制的平臺(tái)
Android平臺(tái)對(duì)于用戶的個(gè)性化需求,提供了全面自定義手機(jī)的功能。
除了以上介紹Android平臺(tái)的功能以外,其在技術(shù)上還具有以下幾個(gè)方面的特性。
? 全開放智能移動(dòng)電話平臺(tái)。
? 支持多硬件平臺(tái)。
? 使用眾多的標(biāo)準(zhǔn)化技術(shù)。
? 核心技術(shù)完整、統(tǒng)一。
? 完善的SDK和文檔。
? 完善的輔助開發(fā)工具。
1.3 Android系統(tǒng)架構(gòu)
如圖1-3所示,Android系統(tǒng)從下至上分為四層:Linux內(nèi)核、Android核心庫及Android運(yùn)行時(shí)環(huán)境(Android Runtime)、應(yīng)用程序框架以及應(yīng)用程序等。

圖1-3 Android系統(tǒng)框架
1.3.1 Linux內(nèi)核(Linux Kernel)
Android的核心系統(tǒng)服務(wù)依賴于Linux 2.6,例如,安全、內(nèi)存管理、進(jìn)程管理、網(wǎng)絡(luò)堆棧、驅(qū)動(dòng)模型。Linux Kernel也作為硬件和軟件之間的抽象層,它隱藏具體硬件細(xì)節(jié)而為上層提供統(tǒng)一的服務(wù)。
除了標(biāo)準(zhǔn)的Linux內(nèi)核以外,Android系統(tǒng)還增加了內(nèi)核的驅(qū)動(dòng)程序,例如,顯示驅(qū)動(dòng)、藍(lán)牙驅(qū)動(dòng)、相機(jī)驅(qū)動(dòng)、閃存卡驅(qū)動(dòng)、Binder IPC驅(qū)動(dòng)、輸入設(shè)備驅(qū)動(dòng)、USB驅(qū)動(dòng)、WiFi驅(qū)動(dòng)、音頻系統(tǒng)驅(qū)動(dòng)、電源管理等,為Android系統(tǒng)的運(yùn)行提供基礎(chǔ)性支持。
這樣分層的好處就是使用下層提供的服務(wù)而為上層提供統(tǒng)一的服務(wù),屏蔽本層及以下層的差異,當(dāng)本層及以下層發(fā)生了變化時(shí),不會(huì)影響到上層。也就是說,各層各盡其職,各層提供固定的SAP(Service Access Point),即高內(nèi)聚、低耦合。
1.3.2 Android核心庫(Libraries)
Android包含一個(gè)C/C++庫的集合,以供Android系統(tǒng)的各個(gè)組件使用。這些功能通過Android的應(yīng)用程序框架(Application Framework)展現(xiàn)給開發(fā)者。下面列出一些核心庫:
? 系統(tǒng)C庫——由BSD繼承衍生的標(biāo)準(zhǔn)C系統(tǒng)函數(shù)庫(libc),調(diào)整為基于嵌入式Linux設(shè)備的庫。
? 媒體庫——基于PacketVideo的OpenCORE。這些庫支持播放和錄制多種流行的音頻和視頻格式,以及多種媒體格式的編碼/解碼格式,包括MPEG4、 H.264、 MP3、AAC、AMR、JPG、PNG。
? 界面管理——顯示子系統(tǒng)的管理器,管理訪問顯示子系統(tǒng)和無縫組合多個(gè)應(yīng)用程序的二維和三維圖形層。
? LibWebCore——新式的Web瀏覽器引擎,驅(qū)動(dòng)Android瀏覽器和可嵌入的Web視圖。
? SGL——Skia圖形庫,基本的2D圖形引擎。
? 3D libraries——基于OpenGL ES APIs的實(shí)現(xiàn)。該庫使用硬件3D加速或使用高度優(yōu)化的3D軟加速。
? FreeType ——位圖(Bitmap)和矢量(Vector)字體渲染。
? SQLite ——所有應(yīng)用程序都可以使用的強(qiáng)大而輕量級(jí)的關(guān)系數(shù)據(jù)庫引擎。
1.3.3 Android運(yùn)行時(shí)環(huán)境(Android Runtime)
在Linux內(nèi)核層上還有一個(gè)Android運(yùn)行時(shí)層,該層包括Dalvik虛擬機(jī)及Java核心庫,提供了Java編程語言核心庫的大多數(shù)功能。
Dalvik虛擬機(jī)是Android使用的Java虛擬機(jī)。每一個(gè)Android應(yīng)用程序是Dalvik虛擬機(jī)中的實(shí)例,運(yùn)行在它們自己的進(jìn)程中。Dalvik虛擬機(jī)設(shè)計(jì)成在一個(gè)設(shè)備上可以高效地運(yùn)行多個(gè)虛擬機(jī)。Dalvik虛擬機(jī)可執(zhí)行的文件格式是.dex,.dex格式是專為Dalvik設(shè)計(jì)的一種壓縮格式,適合內(nèi)存和處理器速度有限的系統(tǒng)。
大多數(shù)虛擬機(jī)(包括JVM)都是基于棧的,而Dalvik虛擬機(jī)則是基于寄存器的。兩種架構(gòu)各有優(yōu)劣,一般而言,基于棧的機(jī)器需要更多的指令,而基于寄存器的機(jī)器指令更大。DX是一套工具,可以將Java .class轉(zhuǎn)換成 .dex格式。一個(gè).dex文件通常會(huì)有多個(gè).class。由于.dex有時(shí)必須進(jìn)行最佳化,會(huì)使文件大小增加1~4倍,以O(shè)DEX結(jié)尾。
Dalvik虛擬機(jī)依賴于Linux內(nèi)核提供基本功能,如線程和底層內(nèi)存管理。
1.3.4 Android應(yīng)用程序框架(Application Framework)
位于Android程序庫和運(yùn)行時(shí)上面的是應(yīng)用程序框架層。通過提供開放的開發(fā)平臺(tái),Android使開發(fā)者能夠訪問核心應(yīng)用程序所使用的API框架,這樣使得組件的重用得以簡(jiǎn)化,任何應(yīng)用程序都能發(fā)布它的功能且任何其他應(yīng)用程序可以使用這些功能(需要服從框架執(zhí)行的安全限制)。從而使開發(fā)者可以編制極其豐富和新穎的應(yīng)用程序,自由地利用設(shè)備硬件優(yōu)勢(shì)、訪問位置信息、運(yùn)行后臺(tái)服務(wù)、設(shè)置鬧鐘、向狀態(tài)欄添加通知等。
每個(gè)應(yīng)用程序其實(shí)是一組服務(wù)和系統(tǒng),包括:
? 視圖(View)——豐富的、可擴(kuò)展的視圖集合,用來構(gòu)建應(yīng)用程序。包括列表(ListView)、網(wǎng)格(Grid)、文本框(EditText/TextView)、按鈕(Button)等,甚至是可嵌入的網(wǎng)頁瀏覽器(WebView)。
? 內(nèi)容提供器(Content Providers)——使應(yīng)用程序可以訪問其他應(yīng)用程序(如通訊錄)的數(shù)據(jù),或共享自己的數(shù)據(jù)。
? 資源管理器(Resource Manager)——提供對(duì)于非代碼資源的訪問,如本地化字符串、圖形和布局文件。
? 通知管理器(Notification Manager)——使應(yīng)用程序能夠在狀態(tài)欄顯示自定義的提示信息。
? 活動(dòng)管理器(Activity Manager)——管理應(yīng)用程序生命周期,并提供常用的導(dǎo)航回退功能。
1.3.5 Android應(yīng)用程序
Android裝配一個(gè)核心應(yīng)用程序集合,連同系統(tǒng)一起發(fā)布,這些應(yīng)用程序包括電子郵件客戶端、SMS程序、日歷、地圖、瀏覽器、聯(lián)系人和其他設(shè)置等。而所有應(yīng)用程序都是用Java語言編寫的,由用戶開發(fā)的Android應(yīng)用程序和Android核心應(yīng)用程序是同一層次的。
1.4 Android開發(fā)框架
Android系統(tǒng)作為一個(gè)開放的系統(tǒng),它體積龐大,對(duì)于不同的開發(fā)者來說,在開發(fā)過程中并不需要掌握整個(gè)Android系統(tǒng),只需要進(jìn)行其中某一部分的開發(fā)。由此,從功能上將Android開發(fā)分為移植開發(fā)移動(dòng)電話系統(tǒng)、Android應(yīng)用程序開發(fā),以及Android系統(tǒng)開發(fā)三種。
從商業(yè)模式的角度來講,移植開發(fā)移動(dòng)電話系統(tǒng)和Android應(yīng)用程序開發(fā)是Android開發(fā)的主流。移植開發(fā)移動(dòng)電話系統(tǒng)主要是由移動(dòng)電話的制造者來進(jìn)行開發(fā),其產(chǎn)品主要是Android手機(jī);而公司、個(gè)人和團(tuán)體一般進(jìn)行Android應(yīng)用程序的開發(fā),產(chǎn)生各種各樣的Android應(yīng)用程序。
對(duì)于Android移植開發(fā),其主要工作集中于Linux內(nèi)核中的相關(guān)設(shè)備驅(qū)動(dòng)程序及Android本地框架中的硬件抽象層接口的開發(fā);對(duì)于Android應(yīng)用程序開發(fā),其開發(fā)的應(yīng)用程序與Android系統(tǒng)的第四個(gè)層次的應(yīng)用程序是一個(gè)層次的內(nèi)容;對(duì)于Android系統(tǒng)的開發(fā),涉及Android系統(tǒng)的各個(gè)層次,一般情況下是從底層到上層的整體開發(fā)。
Android開發(fā)框架包括基本的應(yīng)用功能開發(fā)、數(shù)據(jù)存儲(chǔ)、網(wǎng)絡(luò)訪問三大塊。
1.4.1 應(yīng)用方面
一般而言,一個(gè)標(biāo)準(zhǔn)的Android程序包括Activity、Broadcast Intent Receiver、Service、Content Provider四部分。
1.Activity
Activity是在Android應(yīng)用開發(fā)中最頻繁、最基本的模塊。在Android中,Activity類主要與界面資源文件相關(guān)聯(lián)(res/layout目錄下的xml資源,也可以不含任何界面資源),包含控件的顯示設(shè)計(jì)、界面交互設(shè)計(jì)、事件的響應(yīng)設(shè)計(jì)以及數(shù)據(jù)處理設(shè)計(jì)、導(dǎo)航設(shè)計(jì)等Application設(shè)計(jì)的方方面面。
因此,對(duì)于一個(gè)Activity來說,它就是手機(jī)上的一個(gè)界面,相當(dāng)于一個(gè)網(wǎng)頁,所不同的是,每個(gè)Activity運(yùn)行結(jié)束時(shí)都返回一個(gè)返回值,類似一個(gè)函數(shù)。Android系統(tǒng)會(huì)自動(dòng)記錄從首頁到其他頁面的所有跳轉(zhuǎn)記錄并且自動(dòng)將以前的Activity壓入系統(tǒng)堆棧,用戶可以通過編程的方式刪除歷史堆棧中的Activity Instance。
2.Broadcast Intent Receiver
Intent為不同的Activity進(jìn)行跳轉(zhuǎn)提供了機(jī)制,譬如從A Activity跳轉(zhuǎn)到B Activity,使用Intent來實(shí)現(xiàn),語句如下。
Intent in = new Intent(A.this, B.class); startActivity(in);
Broadcast Intent Receiver為各種不同的Android應(yīng)用程序間進(jìn)行進(jìn)程間的通信提供了可能。如當(dāng)電話呼叫來臨時(shí),可以通過Broadcast Intent Receiver發(fā)布廣播消息。對(duì)用戶而言,用戶是無法看到Broadcast Intent Receiver事件的,它對(duì)用戶是不透明的,Broadcast Intent Receiver通過Notification Manager來通知用戶這些事件發(fā)生了,它既可以在資源AndroidManifest.xml中注冊(cè),也可以在代碼中通過Context.registerReceiver()進(jìn)行注冊(cè)在AndroidManifest.xml中注冊(cè)以后,當(dāng)事件來臨時(shí),即使程序沒有啟動(dòng),系統(tǒng)也會(huì)自動(dòng)啟動(dòng)此應(yīng)用程序。另外,各應(yīng)用程序可以很方便地通過Context.sendBroadcast()將自己的事件廣播給其他應(yīng)用程序。
3.Service
Android中的Service和Windows中的Service完全是一個(gè)概念,用戶可以通過StartService(Intent service)啟動(dòng)一個(gè)Service,也可通過Context.bindService來綁定一個(gè)Service。
4.Content Provider
Content Provider提供了應(yīng)用程序之間數(shù)據(jù)交換的機(jī)制,一個(gè)應(yīng)用程序通過實(shí)現(xiàn)一個(gè)Content Provider的抽象接口將自己的數(shù)據(jù)暴露出去,并且隱蔽了具體的數(shù)據(jù)存儲(chǔ)實(shí)現(xiàn),這樣實(shí)現(xiàn)了Android應(yīng)用程序內(nèi)部數(shù)據(jù)的保密性。標(biāo)準(zhǔn)的Content Provider提供了基本的CRUD(Create、Read、Update、Delete)接口,并且實(shí)現(xiàn)了權(quán)限機(jī)制,保護(hù)了數(shù)據(jù)交互的安全性。
一個(gè)標(biāo)準(zhǔn)的Android應(yīng)用程序的工程文件包含以下幾大部分。
? Java源代碼部分(包含Activity)——放置在src目錄中。
? R.java文件——由Eclipse自動(dòng)生成與維護(hù),開發(fā)者不需要修改,提供了對(duì)Android資源的全局索引。
? Android Library——應(yīng)用程序運(yùn)行的Android庫。
? assets目錄——主要用于放置多媒體等文件。
? res目錄——放置的是資源文件: drawable包含的是圖片文件,layout里面包含的是布局文件,values里面主要包含的是字符串(strings.xml)、顏色(colors.xml)以及數(shù)組(arrays.xml)資源。
? AndroidManifest.xml——應(yīng)用的配置文件,在這個(gè)文件中,需要聲明所有用到的Activity、Service、Receiver等。
1.4.2 數(shù)據(jù)存儲(chǔ)
Android中提供的存儲(chǔ)方式包括:SharedPreferences、文件存儲(chǔ)、SQLite數(shù)據(jù)庫存儲(chǔ)方式、內(nèi)容提供器方式Content Provider以及網(wǎng)絡(luò)方式5種,具體介紹如下。
1.SharedPreferences
作為Android提供的一種配置文件讀/寫方式,默認(rèn)保存在應(yīng)用的目錄data/<package name>/shared_prefs下,通過方法getSharedPreferences(xx, 0);來獲取SharedPreferences對(duì)象進(jìn)行讀/寫操作。
2.文件存儲(chǔ)
Android系統(tǒng)提供了進(jìn)行數(shù)據(jù)讀/寫訪問的API,例如,openFileInput、openFileOutput等,需要特別注意的是,Android中應(yīng)用程序的數(shù)據(jù)是私有的,也就是說,其他應(yīng)用程序無法訪問當(dāng)前應(yīng)用程序產(chǎn)生的文件。
3.SQLite數(shù)據(jù)庫存儲(chǔ)方式
通過繼承SQLiteOpenHelper類提供的CRUD接口來進(jìn)行數(shù)據(jù)庫操作,方便了應(yīng)用程序的數(shù)據(jù)存儲(chǔ)操作。
4.內(nèi)容提供器方式(Content Provider)
通過調(diào)用其他應(yīng)用程序的數(shù)據(jù)接口來實(shí)現(xiàn)數(shù)據(jù)的讀/寫訪問。
5.網(wǎng)絡(luò)方式
主要通過下面要提到的網(wǎng)絡(luò)訪問該網(wǎng)絡(luò)提供的網(wǎng)絡(luò)服務(wù)接口,實(shí)現(xiàn)數(shù)據(jù)的讀/寫服務(wù)(如WebService數(shù)據(jù)訪問接口)。
1.4.3 網(wǎng)絡(luò)訪問方面
Android主要通過java.net.*及Android.net.*來進(jìn)行HTTP訪問技術(shù)的封裝;利用其提供的HttpPost、DefaultHttpClient、HttpResponse等類提供的訪問接口來實(shí)現(xiàn)具體的Web服務(wù)訪問。
1.4.4 開發(fā)流程
軟件開發(fā)流程(Software Development Process)即軟件設(shè)計(jì)思路和方法的一般過程,包括設(shè)計(jì)軟件的功能及實(shí)現(xiàn)的算法和方法、軟件的總體結(jié)構(gòu)設(shè)計(jì)和模塊設(shè)計(jì)、編程和調(diào)試、程序聯(lián)調(diào)和測(cè)試以及編寫、提交程序。軟件開發(fā)的生命周期如圖1-4所示。

圖1-4 軟件開發(fā)的生命周期
需求分析:根據(jù)客戶的要求,清楚了解客戶需求中的產(chǎn)品功能、特性、性能、界面和具體規(guī)格等,然后進(jìn)行分析,確定軟件產(chǎn)品所能達(dá)到的目標(biāo)。
設(shè)計(jì):根據(jù)需求分析的結(jié)果,考慮如何在邏輯、程序上去實(shí)現(xiàn)所定義的產(chǎn)品功能、特性等,可以分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì),也可以分為數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)、軟件體系結(jié)構(gòu)設(shè)計(jì)、應(yīng)用接口設(shè)計(jì)、模塊設(shè)計(jì)、界面設(shè)計(jì)等。
編程(實(shí)現(xiàn)):開始具體的編寫程序工作,分別實(shí)現(xiàn)各模塊的功能,從而實(shí)現(xiàn)對(duì)目標(biāo)系統(tǒng)的功能、性能、接口、界面等方面的要求,將設(shè)計(jì)轉(zhuǎn)換成計(jì)算機(jī)可讀的形式。
測(cè)試:對(duì)設(shè)計(jì)、編程進(jìn)行驗(yàn)證,對(duì)用戶需求進(jìn)行確認(rèn)。
維護(hù):維持軟件運(yùn)行、修改軟件缺陷、增強(qiáng)已有功能、增加新功能、升級(jí)等。
對(duì)一個(gè)軟件產(chǎn)品或者一項(xiàng)軟件工程來說,參與角色通常包括以下幾種。
? 高級(jí)經(jīng)理:參與項(xiàng)目過程中各個(gè)關(guān)鍵環(huán)節(jié)的活動(dòng),關(guān)注產(chǎn)品開發(fā)的進(jìn)度,對(duì)風(fēng)險(xiǎn)控制、資源提供做出決策。
? 產(chǎn)品經(jīng)理或項(xiàng)目經(jīng)理:客戶方和公司內(nèi)部交流的紐帶,主要對(duì)項(xiàng)目過程進(jìn)行監(jiān)控,對(duì)項(xiàng)目的進(jìn)度、質(zhì)量負(fù)責(zé),制定計(jì)劃、協(xié)調(diào)資源、關(guān)注和控制計(jì)劃進(jìn)度、控制客戶期望值等。
? 開發(fā)經(jīng)理:負(fù)責(zé)界定需求,確定適當(dāng)?shù)募夹g(shù)構(gòu)架和體系,保證軟件產(chǎn)品按照設(shè)計(jì)的標(biāo)準(zhǔn)開發(fā)。
? 設(shè)計(jì)師:通常設(shè)計(jì)師可以分需求分析師、構(gòu)架設(shè)計(jì)師、業(yè)務(wù)設(shè)計(jì)師3種,能夠準(zhǔn)確把握客戶需求并提供可行的實(shí)現(xiàn)思路,進(jìn)行需求分析、進(jìn)行構(gòu)架設(shè)計(jì)和功能設(shè)計(jì),按照規(guī)范編寫相應(yīng)的文檔,將設(shè)計(jì)思路傳播給開發(fā)人員、測(cè)試人員。
? 測(cè)試經(jīng)理及測(cè)試人員:測(cè)試經(jīng)理主要負(fù)責(zé)計(jì)劃和組織測(cè)試人員對(duì)目標(biāo)產(chǎn)品進(jìn)行測(cè)試,發(fā)現(xiàn)bug、跟蹤bug,直到解決bug;測(cè)試人員則根據(jù)測(cè)試經(jīng)理的計(jì)劃和測(cè)試總體方案對(duì)目標(biāo)產(chǎn)品進(jìn)行測(cè)試,編寫測(cè)試用例和測(cè)試代碼,發(fā)現(xiàn)和跟蹤bug;編寫用戶手冊(cè);進(jìn)行用戶培訓(xùn)和教育。
? 開發(fā)人員:根據(jù)設(shè)計(jì)師的設(shè)計(jì)成果進(jìn)行具體編碼工作,對(duì)自己的代碼進(jìn)行基本的單元測(cè)試。
? 項(xiàng)目實(shí)施人員:負(fù)責(zé)軟件系統(tǒng)安裝配置、系統(tǒng)割接、運(yùn)行期間的維護(hù)工作。
1.5 OMS簡(jiǎn)介
OMS是Open Mobile System的簡(jiǎn)稱,是中國(guó)移動(dòng)和Google聯(lián)合開發(fā)的一款開放式手機(jī)操作系統(tǒng)。該系統(tǒng)基于Linux內(nèi)核,為Android平臺(tái)而構(gòu)建,并在原有的Android平臺(tái)基礎(chǔ)上針對(duì)中國(guó)市場(chǎng)進(jìn)行特殊優(yōu)化,內(nèi)置了中國(guó)移動(dòng)的服務(wù)菜單、音樂隨身聽、手機(jī)導(dǎo)航、號(hào)簿管家、139郵箱、飛信、快訊和移動(dòng)夢(mèng)網(wǎng)等特色業(yè)務(wù),以滿足中國(guó)市場(chǎng)的需求。
1.5.1 OPhone介紹
聯(lián)想的OPhone手機(jī)是首款使用OMS系統(tǒng)的手機(jī)。OPhone是基于Linux的面向移動(dòng)互聯(lián)網(wǎng)的終端基礎(chǔ)軟件及系統(tǒng)解決方案。為了突破TD終端“瓶頸”,以及促進(jìn)手機(jī)終端與中國(guó)移動(dòng)的網(wǎng)絡(luò)及應(yīng)用服務(wù)進(jìn)行無縫對(duì)接,中國(guó)移動(dòng)在Google Android操作系統(tǒng)的基礎(chǔ)上,基于Linux內(nèi)核,推出了 “深度定制”的移動(dòng)操作系統(tǒng)OPhone,其在業(yè)務(wù)層和用戶體驗(yàn)層與此前的谷歌手機(jī)不完全一樣。目前來講,OPhone與Android是兼容的。
下面介紹OPhone和Android的不同。
? 移動(dòng)業(yè)務(wù)層面:在終端手機(jī)上完整深度定制了多種中國(guó)移動(dòng)數(shù)據(jù)業(yè)務(wù),例如,飛信、快訊、無線音樂隨身聽、139郵箱、移動(dòng)夢(mèng)網(wǎng)、號(hào)簿管家、百寶箱等。使中國(guó)移動(dòng)的數(shù)據(jù)業(yè)務(wù)第一次和手機(jī)的自身用戶體驗(yàn)達(dá)到深度結(jié)合,例如,電話本中可以探測(cè)出好友飛信的在線狀態(tài),音樂播放器本地和網(wǎng)絡(luò)的用戶體驗(yàn)完全一致,短信中如果收到郵件地址可以用139郵箱直接回復(fù),移動(dòng)夢(mèng)網(wǎng)的瀏覽器和普通網(wǎng)頁的瀏覽器完全相同等。
? 手機(jī)基本功能:在手機(jī)基本通信功能上也結(jié)合了中國(guó)人的使用習(xí)慣并集成了很多品牌優(yōu)秀的地方。例如,手寫輸入和拼音T9鍵盤的集成,拼音和手寫的切換,撥號(hào)鍵盤可以用拼音直接調(diào)出聯(lián)系人,對(duì)話模式和文件夾模式可以隨意選擇短信息用戶界面,彩信和短信結(jié)合的信息操作邏輯,還有其可以隨意定制的主屏幕,絢麗的動(dòng)畫及奇妙的解鎖方式等都體現(xiàn)了OMS對(duì)手機(jī)基本功能的重視。
? 用戶體驗(yàn)層面:結(jié)合中國(guó)人自己的用戶行為和喜好方式,并吸取了iPhone、Android、Windows Mobile、Nokia、Black Berry等多種移動(dòng)終端的優(yōu)勢(shì),設(shè)計(jì)出了完全區(qū)別于Android的用戶界面。其主要特點(diǎn)是大屏幕全觸摸的操作風(fēng)格,面向移動(dòng)互聯(lián)網(wǎng)應(yīng)用的設(shè)計(jì)理念。
? OMS的開放:除了易用、美觀的界面,API的開發(fā)和兼容是OMS另一大核心競(jìng)爭(zhēng)力。開發(fā)者可以在OMS上開發(fā)多種平臺(tái)API的小工具,例如,OMS可以兼容iPhone、Android、S60、Windows Mobile等小工具的使用,OMS是一個(gè)百家爭(zhēng)鳴,百花齊放的平臺(tái),為移動(dòng)互聯(lián)網(wǎng)的發(fā)展推波助瀾。
1.5.2 Widget介紹
Widget是指小工具,比如,Windows Vista系統(tǒng)界面中的側(cè)邊欄、博客網(wǎng)頁中的側(cè)邊欄等。而手機(jī)平臺(tái)也有對(duì)應(yīng)的Widget,它是安裝在手機(jī)上的小容量客戶端應(yīng)用程序。例如,桌面時(shí)鐘、實(shí)時(shí)天氣等。以下主要介紹手機(jī)平臺(tái)上的Widget。
Widget不僅兼容多種網(wǎng)頁技術(shù)(XHTML、CSS、JavaScript、AJAX),而且還可以通過三星Widget API獲取各種手機(jī)功能。通常Widget主要用于應(yīng)付簡(jiǎn)單任務(wù),如提供網(wǎng)站搜尋界面。執(zhí)行簡(jiǎn)單計(jì)算、顯示新聞標(biāo)題、天氣預(yù)報(bào)、提供股票行情等。此外,Widget還可以充當(dāng)提供多重功能的復(fù)合應(yīng)用程序,Widget的開發(fā)和手機(jī)安裝是十分快捷便利的。
Widget在Widget系統(tǒng)托盤條中都有自己的托盤圖標(biāo),都可以通過Widget包格式來實(shí)現(xiàn)分發(fā),都擁有XHTML文件、CSS樣式表、JavaScript代碼及圖像文件。Widget可以分為在線Widget與離線Widget。在線Widget通過手機(jī)數(shù)據(jù)連接(WiFi/3G/EDGE/GPRS)來獲取內(nèi)容/數(shù)據(jù),而離線Widget只能使用用戶生成的數(shù)據(jù)或存儲(chǔ)在手機(jī)中或Widget中固定編程的數(shù)據(jù)。
1.6 本章小結(jié)
本章從介紹Android基本概念開始,讓讀者了解了Android平臺(tái)特性、Android系統(tǒng)架構(gòu)、Android開發(fā)框架,以及OMS等知識(shí),使讀者可以對(duì)Android的應(yīng)用前景有一個(gè)很好的認(rèn)識(shí)。
關(guān)鍵知識(shí)點(diǎn)測(cè)評(píng)
1.以下有關(guān)Android平臺(tái)的說法,不正確的一個(gè)是( )。
A.Android平臺(tái)具有傳統(tǒng)的語音通話功能
B.Android具有短消息功能,以及通常移動(dòng)電話都具有的個(gè)人信息系統(tǒng)管理方面的功能
C.Android平臺(tái)提供了USB、GPS、紅外、藍(lán)牙、無線局域網(wǎng)等多種連接方式
D.Android平臺(tái)不能自定義手機(jī)的功能
2.以下有關(guān)Android的敘述中,正確的一個(gè)是( )。
A.Android系統(tǒng)自上而下分為三層
B.Android系統(tǒng)在核心庫層增加了內(nèi)核的驅(qū)動(dòng)程序
C.Android包含一個(gè)C/C++庫的集合,以供Android系統(tǒng)的各個(gè)組件使用。這些功能通過Android的應(yīng)用程序框架(Application Framework)展現(xiàn)給開發(fā)者
D.Android的應(yīng)用程序框架包括Dalvik虛擬機(jī)及Java核心庫,提供了Java編程語言核心庫的大多數(shù)功能
3.以下有關(guān)Android程序庫層的敘述,不正確的一個(gè)是( )。
A.系統(tǒng)C庫是專門為基于嵌入式Linux的設(shè)備定制的庫
B.媒體庫支持播放和錄制多種流行的音頻和視頻格式以及多種媒體格式的編碼/解碼格式
C.SGL是Skia圖形庫,基本的3D圖形引擎
D.FreeType包含位圖(Bitmap)和矢量(Vector)字體渲染
4.以下有關(guān)Android開發(fā)框架的描述,正確的是( )。
A.一般而言,一個(gè)標(biāo)準(zhǔn)的Android程序包括Activity、Broadcast Intent Receiver、Service、Content Provider四部分
B.Android中的Service跟Windows當(dāng)中的Service不同
C.Broadcast Intent Receiver提供了應(yīng)用程序之間數(shù)據(jù)交換的機(jī)制
D.Content Provider為不同的Activity進(jìn)行跳轉(zhuǎn)提供了機(jī)制
5.下列有關(guān)OMS的描述,正確的一個(gè)是( )。
A.OPhone與Android的用戶界面相同
B.OMS是在原有的Android平臺(tái)基礎(chǔ)上針對(duì)中國(guó)市場(chǎng)進(jìn)行特殊優(yōu)化,以滿足中國(guó)市場(chǎng)的需求
C.OMS不能兼容IPhone、Android、S60、Windows Mobile等小工具的使用
D.OPhone在業(yè)務(wù)層和用戶體驗(yàn)層與此前的谷歌手機(jī)相同
- OpenDaylight Cookbook
- 小程序?qū)崙?zhàn)視頻課:微信小程序開發(fā)全案精講
- 編程的修煉
- 兩周自制腳本語言
- SQL for Data Analytics
- 機(jī)械工程師Python編程:入門、實(shí)戰(zhàn)與進(jìn)階
- Learning Apache Mahout Classification
- Java高并發(fā)核心編程(卷1):NIO、Netty、Redis、ZooKeeper
- Learning Hadoop 2
- Microsoft HoloLens By Example
- 軟件設(shè)計(jì)模式(Java版)
- 前端架構(gòu)設(shè)計(jì)
- Visual C#(學(xué)習(xí)筆記)
- 輕松學(xué)Scratch 3.0 少兒編程(全彩)
- jQuery基礎(chǔ)教程(第4版)