文|鄭曉霞
隨著3G、云計算等技術從概念轉(zhuǎn)為現(xiàn)實,移動互聯(lián)網(wǎng)迎來了高速、爆炸式的增長。移動互聯(lián)網(wǎng)應用的核心是手機。雖然移動互聯(lián)網(wǎng)應用需要服務器作為后臺的業(yè)務支撐,但手機上的終端服務和應用是吸引用戶的關鍵。由于智能手機提供了更為絢爛多彩的用戶界面、更多的應用程序,其增長速度遠遠超過了非智能手機。
目前智能手機移動平臺進入了全新的Android、iOS、Windows Phone三足鼎立的時代。Android因擁有良好的用戶界面和開放性受到各大手機廠商的追捧,成為市場占有率增長最快的智能移動平臺,也是目前市場占有率最大的移動平臺。根據(jù)美國市場研究公司Strategy Analytics的數(shù)據(jù)顯示,2012年第三季度,Android在中國智能手機市場的份額已經(jīng)達到了88%。另一方面,Android Market的應用軟件數(shù)量也在以驚人的速度增長。在過去一年中,Google對Android終端下載的數(shù)字內(nèi)容進行了整合,推出了官方統(tǒng)一的Play數(shù)字商城,已經(jīng)擁有70萬款軟件,Android應用已經(jīng)成為市場的主流。Android應用的豐富必然將帶動對Android終端的需求,推動Android終端的普及。
從開發(fā)者角度看,隨著Google公司Android新版本SDK的發(fā)布,Android熱潮正在全球范圍內(nèi)迅速蔓延,各大廠商更是紛紛投入以Android為平臺的產(chǎn)品研發(fā)。有別于其他封閉的移動設備系統(tǒng),Google一直以開放的角度歡迎廣大開發(fā)者加入Android行列,在程序語言方面也是選擇全球目前市場占有率最高的Java語言,這有別于Apple及Microsoft,除了降低軟件開發(fā)上的門檻,相比之下,也提升了軟件創(chuàng)意的想象空間。
Android不僅僅是一款手機操作系統(tǒng),而更像是一個對任意開發(fā)者開放的移動終端開發(fā)平臺。該平臺是由操作系統(tǒng)、中間件、用戶界面以及應用程序組成,并且對外開放源代碼,一經(jīng)推出便引起世界各地開源愛好者的關注。同時,Google與各大廠商的大力合作也大大的促進了Android新的手機業(yè)務不斷推出,同時也使得Android更加的標準化。Android系統(tǒng)架構(gòu)為四層結(jié)構(gòu),從上層到下層分別是應用程序?qū)?、應用程序框架層、系統(tǒng)運行庫層以及Linux內(nèi)核層,分別介紹如下:
Android平臺包含了許多應用程序,諸如SMS短信客戶端程序、電話撥號程序、圖片瀏覽器、Web瀏覽器等應用程序。這些應用程序都是用Java語言編寫的,并且這些應用程序都是可以被開發(fā)人員開發(fā)的其他應用程序所替換,這點不同于其他手機操作系統(tǒng)固化在系統(tǒng)內(nèi)部的系統(tǒng)軟件,更加靈活和個性化。
應用程序框架層是我們從事Android開發(fā)的基礎,很多核心應用程序也是通過這一層來實現(xiàn)其核心功能的,該層簡化了組件的重用,開發(fā)人員可以直接使用其提供的組件來進行快速的應用程序開發(fā),也可以通過繼承而實現(xiàn)個性化的拓展。
Android系統(tǒng)運行庫層可以分成兩部分,分別是系統(tǒng)庫和Android運行時。系統(tǒng)庫是應用程序框架的支撐,是連接應用程序框架層與Linux內(nèi)核層的重要紐帶。Android運行時分為核心庫和Dalvik虛擬機兩部分。核心庫提供了Java語言API中的大多數(shù)功能,同時也包含了Android的一些核心API,如Android.os、Android.net、Android.media等等。每個Android程序都有一個Dalivik虛擬機的實例,并在該實例中執(zhí)行。
Android是基于Linux2.6內(nèi)核,其核心系統(tǒng)服務如安全性、內(nèi)存管理、進程管理、網(wǎng)路協(xié)議以及驅(qū)動模型都依賴于Linux內(nèi)核。
從技術角度而言,Android和iPhone相似,采用WebKit瀏覽器引擎,具備觸摸屏、高級圖形顯示和上網(wǎng)功能,用戶能夠在手機上查收電子郵件、 搜索網(wǎng)址和觀看視頻節(jié)目等。Android手機比iPhone等其他手機更強調(diào)搜索功能,界面也更強大,可以說是一種融入了全部Web應用的平臺。 Android的版本很多,隨著版本的更新,從最初的觸屏到現(xiàn)在的多點觸摸,從普通的聯(lián)系人到現(xiàn)在的數(shù)據(jù)同步,從簡單的Google Map到現(xiàn)在的導航系統(tǒng),從基本的網(wǎng)頁瀏覽到現(xiàn)在的HTML 5,這都說明Android已經(jīng)逐漸穩(wěn)定,而且功能越來越強大。另外,Android不僅支持Java、C、C++等主流編程語言,還支持Ruby、 Rython等腳本語言,甚至Google專門為Android應用開發(fā)推出simple語言,這使得Android有著非常廣泛的開發(fā)群體。
基于Android平臺的開發(fā),我們選擇的是Eclipse集成開發(fā)環(huán)境,因為它具有非常豐富的功能組,同maven無縫隙整合,能夠快速而簡便的進行代碼重組。蘋果的開發(fā)環(huán)境目前是Xcode 4??偟膩碚f,Xcode 4依然落后于Java IDE。Xcode也提供一些開發(fā)包,但需要開發(fā)者支付100美元會員費。
和目前已經(jīng)存在的其他智能操作系統(tǒng)相比,Android具有什么樣的優(yōu)勢呢?
(1)開放性。Android完全開源,平臺從底層操作系統(tǒng)到上層的用戶界面和應用程序都不存在任何阻礙產(chǎn)業(yè)創(chuàng)新的專有權障礙。同時開源的最大好處是,使得Android平臺會擁有越來越壯大的開發(fā)者隊伍,并且隨著用戶與應用的日益豐富,必然會使得Android這個嶄新的平臺走向成熟與穩(wěn)定。
(2)不受限任何限制的開發(fā)商。由于Android的開放性,所以不同的廠商可以根據(jù)自身的情況對Android平臺進行定制與擴展。這樣的一個好處便是,對于用戶來說,選擇一款Android的手機將會有更大的抉擇空間,更能展現(xiàn)自身的個性化。
(3)應用程序間無界限。Android打破了應用程序間的界限,開發(fā)人員可以將在自己開發(fā)的程序與本地聯(lián)系人、日歷、位置信息等很好的聯(lián)系起來。
(4)Android與Google服務的無縫集成,緊密結(jié)合Google應用。全球最大的在線搜索服務商Google在過去的10年中,已經(jīng)逐漸的滲透進人們的日常生活中了。人們不再僅僅滿足于使用電腦終端來享受諸如Gmail、Google地圖、在線翻譯等在線服務,電腦終端到移動終端的延伸成了一種必然的趨勢。
圖1 新華社新聞Android版新聞分享頁面及排行頁面
新華社新聞客戶端是我們基于Android平臺自主研發(fā)的應用程序。該應用是新華社面向Android平臺的權威新聞發(fā)布窗口,依托新華社權威性、全球性報道優(yōu)勢, 以全媒體形式全天候發(fā)布新聞信息和深度報道。我們研發(fā)的應用程序可以和后臺的發(fā)布系統(tǒng)無縫對接,并設有新聞、圖片、視頻等欄目,全景式報道焦點、國內(nèi)、國際、財經(jīng)、體育、社會、生活等新聞,用戶可以充分享受由龐大新聞數(shù)據(jù)庫和遍布全中國、全世界采編力量支撐的新華社一流的新聞服務, 見證中國發(fā)展, 領略世界精彩, 共享文明成就。
在此基礎上,我們還致力于為用戶提供互動性的全新體驗。幾經(jīng)探索和嘗試,我們在基礎框架上成功研發(fā)了社交化媒體分享,文章排行,郵件互動,微博互動及動畫特效等功能,提高用戶體驗,滿足用戶溝通、交流、參與、反饋、貢獻的需求。
為了使用戶隨時隨地將感興趣的文章分享到微博,人人網(wǎng),開心網(wǎng)的等社會化媒體,我們實現(xiàn)了文字、圖片、視頻等多媒體新聞的社會化媒體分享功能。在功能實現(xiàn)上首先創(chuàng)建一個Options菜單,該菜單項為“分享”。當點擊菜單項時,創(chuàng)建一個Intent。該Intent設置為發(fā)送給支持 ACTION_SEND的Activity。我們用兩個putExtra給Intent設置了SUBJECT和CONTENT的數(shù)據(jù),再用 startActivity方法讓系統(tǒng)調(diào)用適當?shù)腁ctivity執(zhí)行。createChooser方法接受Intent做參數(shù),也同時接納了 Intent里要求的filter(ACTION_SEND),只有支持ACTION_SEND的Activity才會被列入可選分享列表。
由于客戶端每天發(fā)稿量很大,用戶往往傾向于優(yōu)先瀏覽關注度較高的熱點新聞,因此,我們?yōu)榭蛻舳嗽黾恿宋恼屡判泄δ?。用戶可以在關注的欄目中查看按點擊次數(shù)排序的新聞列表。我們調(diào)用程序請求后臺根據(jù)用戶點擊量生成的欄目排行JSON文件。JSON是一種輕量級的數(shù)據(jù)交換格式,具有良好的可讀和便于快速編寫的特性。和 XML 一樣,JSON 也是基于純文本的數(shù)據(jù)格式。我們在程序中自定義了ColumnResolver類用來解析欄目排行數(shù)據(jù),將解析出的名值對存入HashMap供前端展示調(diào)用。
因為要訪問外部網(wǎng)絡,所以要在AndroidManifest.xml文件里增加一行安全許可:
我們的主程序中以EditText作為郵件互動功能的內(nèi)容組件,當用戶輸入完成后,單擊發(fā)送按鈕發(fā)送郵件,程序調(diào)用Android系統(tǒng)的郵件API,再通過Intent過濾并向程序內(nèi)預設好的后臺接收人的郵件地址發(fā)送郵件,將用戶提交的建議發(fā)給后端系統(tǒng)。
為了提高互動性,我們在新華社新聞客戶端中內(nèi)置了新華視點微博,供用戶瀏覽查看。我們選取內(nèi)置WebKit引擎的WebView實現(xiàn)微博互動。我們首先調(diào)用WebView.loadURL來加載新華視點微博的網(wǎng)址,傳入?yún)?shù)值strURI字符串,然后交由WebView.setWebViewClient()處理,利用WebView.loadData將HTML TAG傳給WebView對象,最后在客戶端展示。
為了提高用戶體驗,在用戶瀏覽圖片時,我們添加了屏幕自動翻轉(zhuǎn)的動畫效果。我們先定義好動畫的XML文件,在配置文件通過
移動互聯(lián)網(wǎng)已經(jīng)進入了爆炸式增長的時期,3G 、三網(wǎng)合一、云計算技術也已經(jīng)從理論變?yōu)楝F(xiàn)實。通過手機獲得新聞資訊已經(jīng)成為用戶的首選。在新媒體影響力逐漸增大的時候,新聞客戶端在新媒體報道中發(fā)揮著更加重要的作用。這要求我們不斷勇于探索,自主創(chuàng)新,為用戶提供更多更好的互動體驗功能,充分發(fā)揮手機新媒體及時快捷、貼近性強、參與度高、互動性好的優(yōu)勢,不斷提升我社報道的表現(xiàn)力、吸引力及感染力?!?/p>