摘 要:在移動(dòng)互聯(lián)網(wǎng)時(shí)代的進(jìn)程中,智能設(shè)備快速普及,手機(jī)的使用遍及人們生活的各個(gè)角落,影響著人們的學(xué)習(xí),工作和娛樂。如今,Android在手機(jī)市場份額中遙遙領(lǐng)先,所以Android應(yīng)用程序成為了市場的主流應(yīng)用。Android開發(fā)技術(shù)也隨著開發(fā)者們的探索不斷進(jìn)步,文章簡要分析了Android應(yīng)用程序開發(fā)的常用技術(shù)。
關(guān)鍵詞:Android;開發(fā);技術(shù)
1 Android平臺(tái)簡介
Android系統(tǒng)發(fā)布于2007年,是由Google公司開發(fā)的,基于Linux內(nèi)核的,開源的軟件平臺(tái)[1]。Android誕生至今的幾年時(shí)間里,手機(jī)廠商,開發(fā)者,用戶之間形成了一個(gè)完整的生態(tài)系統(tǒng)。如今,Android已經(jīng)發(fā)布了二十幾個(gè)版本了,深受大眾喜愛。商場研究公司Strategy Analytics公布的最新數(shù)據(jù)顯示,今年第三季度(6月下旬至9月下旬)Android手機(jī)的全球市場份額達(dá)到了創(chuàng)紀(jì)錄的87.5%。
Android采用層次化架構(gòu),由底層往上分為4個(gè)主要功能層:(1)Linux內(nèi)核層(Linux Kernel),為Android設(shè)備的硬件提供了底層驅(qū)動(dòng)。(2)系統(tǒng)運(yùn)行庫層(Libraries和Android Runtime),使用了一些C/C++庫,為Android系統(tǒng)提供了主要的特性支持。(3)應(yīng)用框架層(Applicathin Framework),主要提供了構(gòu)建應(yīng)用程序可能用到的各種API。(4)應(yīng)用層(Applicathin),包括系統(tǒng)自帶的程序,開發(fā)者構(gòu)建的程序,所有安裝在Android手機(jī)上的程序,都是屬于這一層的。
2 Android開發(fā)的常用技術(shù)概述
在Android應(yīng)用程序的開發(fā)中,由于應(yīng)用類型不同,使用場景各異,相應(yīng)的,所運(yùn)用到的技術(shù)會(huì)有不同。但是最為基礎(chǔ)也最常用到的有以下幾種:
2.1 數(shù)據(jù)存儲(chǔ)
我們?nèi)粘J褂玫奈⑿牛⒉┑葢?yīng)用程序都在不停的和數(shù)據(jù)打交道,沒有數(shù)據(jù)的應(yīng)用就相當(dāng)于空殼子,對用戶來說毫無意義,所以數(shù)據(jù)存儲(chǔ)是必須解決的問題。我們可以通過3種方式來對Android應(yīng)用程序開發(fā)中的數(shù)據(jù)進(jìn)行處理:
2.1.1 文件存儲(chǔ)。Android中最基本的數(shù)據(jù)存儲(chǔ)方式就是文件存儲(chǔ),使用文件存儲(chǔ)時(shí),內(nèi)容不會(huì)被格式化處理,所有數(shù)據(jù)直接保存在文件中,所以它適合用來處理一些簡單的文本數(shù)據(jù),或者二進(jìn)制數(shù)據(jù)。
2.1.2 SharedPreferences 存儲(chǔ)。 有時(shí)候需要保存應(yīng)用的一些常用配置,但無需了解它到底如何保存的,保存在了何處,這時(shí)候就可以使用SharedPreferences鍵值對存儲(chǔ)。SharedPreferences還有另外一個(gè)用途,即數(shù)據(jù)的共享,包括同一個(gè)應(yīng)用程序中的不同組件,或者不同應(yīng)用程序之間。比如兩個(gè)activity想要傳遞數(shù)據(jù),除了使用Intent之外,也可以通過SharedPreferences來共享數(shù)據(jù)。
2.1.3 SQLite數(shù)據(jù)庫存儲(chǔ)。Android平臺(tái)集成了SQLite,這時(shí)一款輕量級的關(guān)系型數(shù)據(jù)庫,運(yùn)算速度快,資源占用率低,通常占用的內(nèi)存不到1MB,因而特別適合用于移動(dòng)設(shè)備[2]。正因?yàn)閷?qiáng)大的SQLite數(shù)據(jù)庫嵌入到系統(tǒng)當(dāng)中,Android的數(shù)據(jù)存儲(chǔ)功能有了質(zhì)的飛躍。SQLite支持SQL標(biāo)準(zhǔn)語法,遵循ACID事務(wù),所以只要有其他關(guān)系型數(shù)據(jù)庫的使用經(jīng)驗(yàn),就可以很快上手SQLite,本文將不多做介紹。
2.2 多媒體播放
2.2.1 播放音頻。Android多媒體框架中提供了一個(gè)功能強(qiáng)大的類,MediaPlayer。該類用來處理多種音頻格式,并且提供了全面的控制方法。通過MediaPlayer,開發(fā)者可以輕松地獲取,解碼和播放音頻。還有一個(gè)類的CPU資源占用比MediaPlayer少,延遲更低,它就是SoundPool類。因?yàn)樗奶匦?,常用SoundPool來播放一些短促,密集的游戲音效。
2.2.2 播放視頻。當(dāng)需要播放視頻時(shí),Android也提供了一個(gè)集視頻顯示和控制于一身的類,VideoView。它的用法和MediaPlayer類似,借助它就可以進(jìn)行一些簡單的視頻播放操作。
2.3 網(wǎng)絡(luò)技術(shù)
在這個(gè)手表,眼鏡,汽車都可以連接互聯(lián)網(wǎng)的時(shí)代,相信幾乎沒有人愿意忍受不能上網(wǎng)的應(yīng)用了吧,人們?nèi)粘=佑|最多的QQ,微博,微信等應(yīng)用,都大量運(yùn)用了網(wǎng)絡(luò)技術(shù)。
Android最常用的就是,在客戶端使用HTTP協(xié)議與服務(wù)器端進(jìn)行網(wǎng)絡(luò)交互。其工作原理非常簡單,首先客戶端會(huì)響入伍前發(fā)出一條HTTP請求,接著服務(wù)器會(huì)返回?cái)?shù)據(jù),然后客戶端再進(jìn)行解析。是不是很簡單?當(dāng)然,僅靠三言兩語肯定無法道出HTTP的奧妙,開發(fā)者還需要繼續(xù)深入分析。
2.4 多線程編程
開發(fā)者對于多線程編程一定不會(huì)陌生,因?yàn)榫€程在應(yīng)用程序的開發(fā)中不可或缺[3]。那么Android應(yīng)用程序開發(fā)中,多線程起到什么作用呢?
當(dāng)我們需要執(zhí)行一些耗時(shí)操作,比如發(fā)起一條網(wǎng)絡(luò)請求,因?yàn)榫W(wǎng)速或其他原因,服務(wù)器未必立即響應(yīng),這時(shí)將這類操作放在子線程中,就可以避免主線程被阻塞,從而保證用戶正常使用應(yīng)用程序。
一個(gè)常見的例子就是,當(dāng)網(wǎng)絡(luò)游戲登陸時(shí),畫面上顯示動(dòng)畫或進(jìn)度條,后臺(tái)進(jìn)程鏈接服務(wù)器。可見線程可以應(yīng)用到Android游戲開發(fā)當(dāng)中,當(dāng)然,線程的作用不僅限于此。
2.5 LBS
LBS就是基于位置的服務(wù)。其實(shí)很多年前,人們就已經(jīng)開始利用無線電通訊網(wǎng)絡(luò)或者GPS進(jìn)行定位了,所以LBS本身并不是新潮的技術(shù),那它為什么在最近幾年大行其道呢?
因?yàn)?,相比之前僅僅對設(shè)備進(jìn)行定位,如今有了Android平臺(tái),我們可以利用定位出的位置進(jìn)行查詢路線,分享位置信息等操作,使得LBS技術(shù)迅速流行起來。
因?yàn)橐恍┨厥庠颍m然Android提供了相應(yīng)的API支持,但是國內(nèi)開發(fā)者通常不使用GPS定位和網(wǎng)絡(luò)定位這兩種方式,而更多借助第三方公司提供的SDK,比如高德地圖或百度地圖。
3 結(jié)束語
隨著通信技術(shù)的飛速發(fā)展,現(xiàn)狀的手機(jī)用戶量已經(jīng)遠(yuǎn)遠(yuǎn)超過PC用戶量,Android應(yīng)用產(chǎn)業(yè)在這樣的環(huán)境中迅速崛起,Android目前在手機(jī)市場中占據(jù)了巨大的份額,遠(yuǎn)超其他系統(tǒng),是最主流的智能手機(jī)平臺(tái)。毫無疑問,Android應(yīng)用程序開發(fā)的前景是非常廣闊的,本文僅簡要介紹了Android開發(fā)的幾種常用技術(shù),要想成為優(yōu)秀的Android開發(fā)者,還需要進(jìn)行更為深入的研究。
參考文獻(xiàn)
[1]陳曉男,張海越.Android系統(tǒng)的分析與研究[J].數(shù)字技術(shù)與應(yīng)用,2013(10):118+121.
[2]郭霖.第一行代碼-Android(第2版)[M].北京:人民郵電出版社,2016.
[3]解攀科.基于Android的移動(dòng)學(xué)習(xí)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].華中師范大學(xué),2011.
作者簡介:蒙華(1994-),男,仫佬族,廣西環(huán)江,桂林航天工業(yè)學(xué)院,軟件工程專業(yè),本科生在讀。