趙海涵
摘要:2007年11月,Google推出了智能手機(jī)操作系統(tǒng)——Android,該操作系統(tǒng)在提出之初便受到了全世界的矚目。隨著移動(dòng)智能終端的不斷普及,軟件開發(fā)技術(shù)的不斷發(fā)展,Android應(yīng)用軟件的數(shù)目與日俱增,到目前為止,Android成為最熱門的移動(dòng)終端開發(fā)平臺(tái)之一。該文對(duì) Android平臺(tái)架構(gòu)和開發(fā)流程進(jìn)行分析,重點(diǎn)對(duì)基于 Android平臺(tái)的軟件開發(fā)技術(shù)進(jìn)行介紹,期望為基于 Android平臺(tái)的軟件開發(fā)提供一些意見。
關(guān)鍵詞:Android平臺(tái);軟件開發(fā)技術(shù)
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)36-8684-02
隨著時(shí)代的不斷進(jìn)步和科學(xué)技術(shù)的不斷發(fā)展,人們對(duì)獲取信息有著強(qiáng)烈的需求,由于移動(dòng)終端的便捷性、可攜帶性,使得移動(dòng)終端成為獲取信息的重要渠道之一。移動(dòng)智能終端的功能越來(lái)越強(qiáng)大,應(yīng)用軟件越來(lái)越多,移動(dòng)智能終端的應(yīng)用逐漸的改變著人們的生活方式,同時(shí),移動(dòng)智能終端的應(yīng)用對(duì)移動(dòng)互聯(lián)網(wǎng)產(chǎn)業(yè)的發(fā)展有重要的啟發(fā)作用。
Android平臺(tái)具有良好的開放性、便捷性,采用Android平臺(tái)進(jìn)行移動(dòng)智能終端的開發(fā)越來(lái)越受到人們的青睞,Android平臺(tái)對(duì)移動(dòng)智能終端的軟件開發(fā)越來(lái)越重要。Android平臺(tái)是Google在2007年11月推出的一款智能手機(jī)操作系統(tǒng),其主要特征為開放的源代碼,且基于Linux內(nèi)核,Android主要是面向移動(dòng)智能終端的軟件進(jìn)行開發(fā)的豐富平臺(tái),它具有吸引人的用戶界面元素、網(wǎng)絡(luò)應(yīng)用、數(shù)據(jù)管理、位置服務(wù)等功能,同時(shí)可以開發(fā)出具有特色的應(yīng)用程序。Android的系統(tǒng)架構(gòu)主要包括4部分,即應(yīng)用層、應(yīng)用架構(gòu)層、系統(tǒng)運(yùn)行庫(kù)層、Linux內(nèi)核層。應(yīng)用層主要是用JAVA語(yǔ)言編寫的可運(yùn)行的程序;應(yīng)用架構(gòu)層是Google核心應(yīng)用所使用的API架構(gòu),同樣適合開發(fā)人員開發(fā)自己的應(yīng)用軟件;當(dāng)使用Android平臺(tái)時(shí),Android系統(tǒng)會(huì)在系統(tǒng)運(yùn)行庫(kù)中支持用戶的各個(gè)組件,并為用戶提供服務(wù);Linux內(nèi)核層支持Android的核心系統(tǒng)服務(wù),如安全性、網(wǎng)絡(luò)協(xié)議、內(nèi)存管理等。
1 基于Android平臺(tái)的軟件開發(fā)流程
Android平臺(tái)為用戶提供了開放的源代碼,同時(shí)提供強(qiáng)大的開發(fā)工具,簡(jiǎn)化了用戶的開發(fā)過(guò)程,提高了軟件開發(fā)的效率?;贏ndroid平臺(tái)的軟件開發(fā)流程主要包括4個(gè)階段:安裝相應(yīng)的開發(fā)包和工具并對(duì)其進(jìn)行正確的配置、創(chuàng)建項(xiàng)目并對(duì)相關(guān)應(yīng)用軟件進(jìn)行編寫、在模擬機(jī)上對(duì)應(yīng)用軟件進(jìn)行調(diào)試和測(cè)試、發(fā)布應(yīng)用軟件。
2 基于Android平臺(tái)的軟件開發(fā)技術(shù)分析
2.1 數(shù)據(jù)存儲(chǔ)技術(shù)
數(shù)據(jù)存儲(chǔ)是應(yīng)用軟件開發(fā)開發(fā)過(guò)程中非常重要的一個(gè)環(huán)節(jié),數(shù)據(jù)存儲(chǔ)對(duì)軟件的順利實(shí)施有很大的影響。在Android平臺(tái)中,數(shù)據(jù)存儲(chǔ)包括兩類,即外部存儲(chǔ)和內(nèi)部存儲(chǔ),外部存儲(chǔ)主要包括網(wǎng)絡(luò)和內(nèi)容提供器(Content provider),內(nèi)部存儲(chǔ)主要包括SQLite數(shù)據(jù)庫(kù)存儲(chǔ)、系統(tǒng)配置、文件存儲(chǔ)。在基于Android平臺(tái)的軟件開發(fā)過(guò)程中,主要用到的是應(yīng)用程序的內(nèi)部存儲(chǔ)技術(shù)。
為了對(duì)應(yīng)用軟件的系統(tǒng)配置信息進(jìn)行保存,在Android平臺(tái)中主要有SharedPrefereneces類來(lái)實(shí)現(xiàn),SharedPrefereneces類是一種簡(jiǎn)單數(shù)據(jù)存儲(chǔ)方式,其可以通過(guò)鍵值對(duì)來(lái)存儲(chǔ)基本的數(shù)據(jù)信息。
對(duì)于文件存儲(chǔ)來(lái)說(shuō),Android平臺(tái)使用基于Linux的文件系統(tǒng),應(yīng)用程序可以創(chuàng)建私有文件,該私有文件僅供該應(yīng)用程序訪問(wèn),并進(jìn)行數(shù)據(jù)的存儲(chǔ)。文件既可以在內(nèi)部存儲(chǔ)器上進(jìn)行保存,也可以在外部存儲(chǔ)設(shè)備上進(jìn)行保存,如SD卡。對(duì)于文件的訪問(wèn)方式來(lái)說(shuō),Android平臺(tái)支持JAVA的各種輸入/輸出方法和相關(guān)的類,同時(shí)也提供能夠簡(jiǎn)化讀寫流文件的各類函數(shù)。另一方面,基于Android平臺(tái)的軟件開發(fā)中都使用不同的用戶ID,創(chuàng)建的文件都是私有的,僅自身可進(jìn)行訪問(wèn)。如果數(shù)據(jù)交換要在兩個(gè)程序或者多個(gè)程序中進(jìn)行,則需要外部存儲(chǔ)技術(shù),即內(nèi)容提供器(Content provider)來(lái)實(shí)現(xiàn)。
SQLite數(shù)據(jù)庫(kù)存儲(chǔ)主要是使用標(biāo)準(zhǔn)的SQL語(yǔ)句進(jìn)行操作,數(shù)據(jù)以ASCII碼的方式進(jìn)行存儲(chǔ),提供B-Tree存儲(chǔ)數(shù)據(jù)的模式,其主要特點(diǎn)是安全、可靠、穩(wěn)定、開放等?;贏ndroid平臺(tái)的數(shù)據(jù)庫(kù)存儲(chǔ)提供兩個(gè)類可以簡(jiǎn)化SQLite數(shù)據(jù)庫(kù)的各個(gè)操作。第一個(gè)類是SQLiteDatabase類,它可以對(duì)數(shù)據(jù)庫(kù)操作的接口信息進(jìn)行封裝,從而簡(jiǎn)化數(shù)據(jù)庫(kù)的查詢、添加、刪除等操作。第二個(gè)類是SQLiteOpenHelper類,它可以進(jìn)行創(chuàng)建數(shù)據(jù)庫(kù)、更新數(shù)據(jù)庫(kù)、打開數(shù)據(jù)庫(kù)、關(guān)閉數(shù)據(jù)庫(kù)等操作。對(duì)于創(chuàng)建數(shù)據(jù)庫(kù)來(lái)說(shuō),首先需要根據(jù)應(yīng)用軟件設(shè)計(jì)出相應(yīng)的數(shù)據(jù)表格,其次在應(yīng)用程序中創(chuàng)建、打開數(shù)據(jù)庫(kù),隨后對(duì)SQLiteDatabase類和數(shù)據(jù)庫(kù)接口進(jìn)行創(chuàng)建,并通過(guò)數(shù)據(jù)庫(kù)接口利用SQL語(yǔ)句來(lái)進(jìn)行操作,然后創(chuàng)建數(shù)據(jù)庫(kù)的查詢接口,對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢,最后關(guān)閉數(shù)據(jù)庫(kù)。
2.2 界面開發(fā)技術(shù)
界面開發(fā)技術(shù)是軟件開發(fā)中的一個(gè)基本的及時(shí),幾乎所有的程序?qū)?huì)用到,良好的界面會(huì)為用戶帶來(lái)舒適的感覺,從而提高用戶的體驗(yàn),提高軟件的應(yīng)用量。基于Android平臺(tái)的軟件開發(fā)過(guò)程中界面開發(fā)主要包括3中,即使用代碼動(dòng)態(tài)創(chuàng)建、使用XML文件進(jìn)行布局、自己進(jìn)行繪制。在軟件開發(fā)過(guò)程中,有時(shí)需要?jiǎng)討B(tài)的對(duì)一些布局和空間進(jìn)行創(chuàng)建,此時(shí)就需要使用LayoutInflater來(lái)完成動(dòng)態(tài)界面的創(chuàng)建。使用XML文件進(jìn)行界面開發(fā),并在Activity中進(jìn)行引用,這種軟件開發(fā)技術(shù)是最常見的一種,使用范圍也較廣泛。在使用XM文件進(jìn)行開發(fā)過(guò)程中,首先要對(duì)界面美化進(jìn)行了解,系統(tǒng)的控件在很多時(shí)候不能滿足軟件的需求,從而需要通過(guò)更換圖片、添加背景等操作來(lái)美化界面,其次要在Layout布局中構(gòu)造出軟件需要的界面,最后要根據(jù)軟件界面的需求對(duì)界面要使用的控件和特定參數(shù)進(jìn)行加載。對(duì)于自己繪制界面來(lái)說(shuō),主要是用于游戲軟件的開發(fā)過(guò)程中,通過(guò)繼承SurfaceView來(lái)進(jìn)行繪制,從而制作出游戲特定場(chǎng)景所需要的特定界面,提高游戲軟件開發(fā)的質(zhì)量。endprint
2.3 語(yǔ)音識(shí)別技術(shù)
基于Android平臺(tái)的移動(dòng)智能終端具有強(qiáng)大的語(yǔ)音識(shí)別技術(shù),用戶可以通過(guò)語(yǔ)言指令來(lái)發(fā)送短信、電子郵件、撥打電話,甚至用戶可以通過(guò)語(yǔ)言來(lái)操作導(dǎo)航信息。另外,在Android中的游戲也可以通過(guò)語(yǔ)言識(shí)別及時(shí)來(lái)進(jìn)行操作?;贏ndroid平臺(tái)的語(yǔ)音識(shí)別技術(shù)最大限度的改善了人機(jī)的交互行為,簡(jiǎn)化了用戶的操作。
Android平臺(tái)中主要通過(guò)RecognizerIntent來(lái)實(shí)現(xiàn)語(yǔ)音識(shí)別,用一些常量來(lái)表示語(yǔ)音的模式,如EXTRA_LANGUAGE、ACTION_RECOGNIZE_SPEECH等常量。 Android平臺(tái)中的語(yǔ)音識(shí)別方法包括以下3中:使用intent調(diào)用語(yǔ)音識(shí)別程序、應(yīng)用程序自己調(diào)用語(yǔ)音識(shí)別庫(kù)、調(diào)用語(yǔ)音Service識(shí)別。在使用intent調(diào)用語(yǔ)音識(shí)別程序時(shí),錄音并識(shí)別后將經(jīng)過(guò)識(shí)別的字符串返回到用戶程序中,從而完成語(yǔ)音識(shí)別的過(guò)程。應(yīng)用程序自己調(diào)用語(yǔ)音識(shí)別庫(kù)時(shí),程序?qū)?huì)以循環(huán)的方式等待錄音的結(jié)果,從而對(duì)字符串進(jìn)行識(shí)別。調(diào)用語(yǔ)音Service識(shí)別時(shí),將錄音結(jié)束后并經(jīng)過(guò)識(shí)別的字符串通過(guò)Listener返回到應(yīng)用程序中,以滿足應(yīng)用程序的需求。
2.4 二次開發(fā)技術(shù)
基于 Android平臺(tái)看軟件開發(fā)中的二次開發(fā)技術(shù)包括面向應(yīng)用層的開發(fā)技術(shù)和面向底層組件的開發(fā)技術(shù)。 Android平臺(tái)的應(yīng)用層開發(fā)技術(shù)周期短、技術(shù)成熟,在開發(fā)過(guò)程中應(yīng)用較廣泛。該技術(shù)主要以Framework開發(fā)框架為基礎(chǔ)進(jìn)行的,通過(guò)調(diào)用JAVA通用類庫(kù)和 Android平臺(tái)提供的類庫(kù)來(lái)完成應(yīng)用程序的二次開發(fā)。面向底層組件的開發(fā)技術(shù)主要以JNI機(jī)制為基礎(chǔ),利用JNI機(jī)制的功能,加上 Android平臺(tái)提供的NDK二次開發(fā)工具來(lái)實(shí)現(xiàn)底層組件的二次開發(fā)。
目前,多家公司推出了基于 Android平臺(tái)的二次開發(fā)平臺(tái),為 Android平臺(tái)下的軟件的二次開發(fā)提供平臺(tái)支持,簡(jiǎn)化二次開發(fā)的操作,縮短開發(fā)周期。
3 總結(jié)
移動(dòng)智能終端的發(fā)展為移動(dòng)互聯(lián)網(wǎng)的發(fā)展帶來(lái)了巨大的發(fā)展機(jī)遇,各種不要的便攜式設(shè)備、移動(dòng)終端的出現(xiàn)為人們的生活帶來(lái)了便利,面向移動(dòng)智能終端軟件的開發(fā)成為一個(gè)研究的熱點(diǎn)問(wèn)題?;?Android平臺(tái)的移動(dòng)智能終端軟件的開發(fā)受到了前所未有的重視,也必成為未來(lái)軟件開發(fā)的發(fā)展趨勢(shì)。在開發(fā)過(guò)程中要根據(jù)一定的流程,在基于 Android平臺(tái)的系統(tǒng)架構(gòu)上,應(yīng)用基于 Android平臺(tái)的軟件開發(fā)技術(shù)進(jìn)行開發(fā),同時(shí)需要滿足用戶的需求,提高人機(jī)交互能力,從而開發(fā)出具有較高應(yīng)用價(jià)值的軟件。
參考文獻(xiàn):
[1] 張偉.基于分布式存儲(chǔ)的移動(dòng)GIS技術(shù)與應(yīng)用研究[D].解放軍信息工程大學(xué),2010.
[2] 羅文彬.基于位置服務(wù)的移動(dòng)GIS關(guān)鍵技術(shù)研究[D].西南交通大學(xué),2011.
[3] 壽柏炎. 基于Android平臺(tái)軟件開發(fā)方法的研究與應(yīng)用[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2013(1):244-245.
[4] 王珂,馬宏斌,王一圣. 基于Android平臺(tái)的軟件開發(fā)若干關(guān)鍵技術(shù)研究[J].測(cè)繪與空間地理信息.2014,37(9):14-17.endprint