陸陽+喬鋼柱+譚瑛
摘 要:Android手機應用程序開發需要著眼于它的整個體系構架,文中介紹了Google新近推出的移動設備軟件平臺Android的基本構成和層次結構,同時給出以EXPLORERF-CC2530系統為基礎平臺的智能家居終端應用程序的開發方法。
關鍵詞:移動設備;Android;應用程序;EXPLORERF-CC2530
中圖分類號:TN929.5 文獻標志碼:B 文章編號:2095-1302(2014)03-0031-02
0 引 言
在家庭網絡中部署的信息終端越來越多,在解決他們之間的物理互聯問題之后家庭用戶還需要對各個設備進行一些復雜配置才能使用,這對于普通家庭用戶來說是難以接受的。加入到家庭網絡的設備如何能自動地相互發現并協同配合工作一直是數字家庭領域熱烈討論的問題。目前智能家居系統有了一定的發展并且市場上也開始出現相應的產品。但從總體的發展來看不容樂觀,特別是統一標準和權威產品的缺乏嚴重影響了家居智能化的發展。隨著科技的進步,經濟的發展,人們的物質生活水平不斷提高,對家居環境的要求也越來越高,作為家居智能化的核心部分——智能家居控制系統也越發顯得重要。家居智能化控制的開發和建設是未來國家、經濟發展的必然趨勢。智能家居控制器可以為系統提供智能控制方案使住戶的控制更便捷、更高效,更能為家庭的日常活動節約不必要的能耗。而且在現在這個注重綠色環保的世界里,智能地為住戶控制好空氣的濕度、溫度等檢查分析空氣成分,讓住戶安心入住。同時,智能家居控制器可以根據住戶的要求調整方案,加強緊急處理、危機救護等急救控制 [5]。伴隨著科學技術的迅速發展和 3G 通信網絡的逐步普及,通過便捷的手機終端進行遠程家居監控,成為更多忙于工作的職業人、領導以及智能手機用戶的迫切需要。Android是由開放手機聯盟于2007年11月5日發布的基于Linux內核的開源手機軟件設計平臺[1],由操作系統、中間件、用戶界面和應用軟件組成。Android給開發人員提供了為移動設備開發新穎的應用程序的機會[2],正因為 Android操作系統具有很強的擴展性和互聯性,以及不存在任何以往阻礙移動產業創新的專有權障礙,得到了手機廠家和運營商的普遍歡迎,憑借其系統的靈活性、開放性以及開放的互聯網理念,在操作系統平臺的競爭中占據了明顯的優勢。本文設計的是基于三星S4 智能手機完成的終端智能家居系統。
1 Android軟件平臺的構成[2]
Android平臺整體自底向上由以下4個層次組成:Linux內核層、Android運行時庫和其他庫層、應用框架層、應用程序層。
1.1 Linux內核層
Android是基于Linux Version 216123內核開發的,主要是添加了一個名為Goldfish的虛擬CPU以及Android運行所需的特定驅動代碼。該層用來提供系統的底層服務,包括安全機制、內存管理、進程管理、網絡堆棧及一系列的驅動模塊。作為虛擬的中間層,該層位于硬件與其他的軟件層之間。
1.2 Android運行時庫和其他庫層
Android運行時庫包含一組核心庫(提供了Java語言核心庫內的大部分功能)和Dalvik虛擬機。同時Android提供了豐富的庫類支持且大部分為開源代碼,如采用的數據庫為SQLite。Android選擇它作為移動終端的嵌入式數據庫有以下優點:它無需安裝和管理配置,它是一個存儲在單一磁盤文件中的完整的數據庫,體積只有250 KB但支持數據庫大小至2 TB,提供了對事務功能和并發處理的支持,而且比目前流行的大多數數據庫運行速度快。
1.3 應用框架層
在應用框架,Android開發人員可以跟那些核心應用一樣擁有訪問框架APIs的全部權限。應用的結構化設計簡化了各組件之間的重用,任何應用都可以分發自己的組件,任何應用也可以使用這些分發的組件(應用的使用方法需遵循框架的安全性約束)。
1.4 應用程序層
Android本身會附帶一些核心的應用程序,包括E -mail客戶端、短信程序、日歷、地圖、瀏覽器、通信錄等,目前所有的應用程序都是由Java語言開發的。
2 面向Web服務的智能家居控制系統軟件設計
面向Web服務的智能家居控制系統以EXPLORERF-CC2530系統為基礎,將對單一用戶的家居設備控制上升到對整個建筑甚至建筑群的集中控制和管理,將建筑物或建筑群的所有信息存儲在服務器的數據庫中,Android手機或者平板電腦通過網絡(3G/Internet/GPRS等)從服務器獲取實時數據,服務器通過以太網與EXPLORERF-CC2530系統的網關進行通信,房間控制器與室內的家居設備相對應的模塊通過無線的方式進行通信,從而實現了遠程控制家居設備的功能。系統省去了室內控制器等硬件設計的復雜度,不必破壞隔墻,不必購買新的電氣設備,系統可以簡單安裝,減少了用戶的使用成本;系統可以只與照明設備或常用的電氣設備連接,將來也可以與其他設備連接,以適應新的智能生活需要,具有良好的可擴展性。本章首先介紹了Android遠程數據庫的幾種方法并且選取了其中一種,然后實現了Android客戶端對遠程服務器的訪問,最后對客戶端界面做了個性化設計。
2.1 Android與遠程數據庫通信的方法
近年來,隨著智能移動設備的快速發展和3G網絡的逐漸普及,以及Android系統憑借其開放性、多樣性等優勢越來越受到開發人員的推崇,如騰訊、淘寶等知名網站都推出了Android客戶端版本,同時很多Window桌面的數據庫應用程序都延伸到移動設備上。由于移動設備的內存及性能很難比得上PC機或筆記本電腦,所以桌面的客戶端訪問數據庫的方法也不可能在Android設備上使用。MFC/Swing等C/S模式的程序設計可以通過IP地址直接訪問遠程數據庫,但是Android平臺并沒有提供直接調用遠程數據庫的接口,所以Android客戶端不能直接訪問遠程數據庫[7]。而是在Android客戶端與遠程數據庫中加入Web服務器來實現Android訪問遠程數據庫的功能,而且在訪問數據庫的過程中可以把頻繁仿問的數據內容緩存在Web服務器中,不同的客戶端不需要訪問遠程數據庫便可以獲取相同的數據,減少了訪問遠程數據的次數和數據庫的壓力,提高了訪問數據庫的效率[6]。本系統Android客戶端訪問遠程數據庫采用基于SOAP的Web服務實現遠程訪問數據庫Android中并沒有直接調用Web Service的庫,借助ksoap2-Android這個第三方工具來實現Web Service的訪問,這個軟件可以封裝KSOAP2請求,以SOAP的格式調用Web Service,并以將返回的SOAP格式的數據解析為SoapObject對象。
2.2 Web Service 技術
Web Service是計算機領域一種新興的分布式技術,是基于可編程的Web的應用程序,具有發布、定位、調用的功能,Web Service在被訪問時可以不考慮相關服務如何被實現便可以被任何系統、在任何地方被動態訪問。與傳統的模式相比,實現服務的訪問依賴于協議和數據格式,而不用像其他模式一樣依賴特定對象模型協議;而且Web Service可以整合不同平臺、不同語言、不同開發技術的應用[8],具有良好的封裝性、高度集成性、平臺獨立性等優點。Web Service的關鍵技術包括 HTTP、XML、SOAP、WDSL、UDDI,這些技術通過獨立于特定編程語言、操作系統、硬件平臺的方式進行通信[8]。
3 項目源程序開發
智能家居源程序主要功能模塊框架如圖1所示。
圖1 系統功能框架圖
3.1 登錄與注冊功能的界面設計
當用戶擁有智能家居遠程控制系統中的相關硬件,如環境模塊、房間控制器、設備模塊等,各模塊上標示有唯一的ID,用戶可以根據ID進行注冊,注冊成功后便可以登錄此系統對相關設備進行控制。若用戶已經注冊,則可以直接登錄認證,登錄系統認證的大致流程圖如圖2所示。
圖2 系統登錄功能詳細設計流程圖
若用戶登錄成功,則系統直接跳轉到系統主界面;系統的主界面如圖3所示。若用戶名或密碼錯誤,則彈出錯誤提示框,圖4所示是系統給出的錯誤提示框圖。
圖3 系統主界面圖 圖 4 登陸界面
3.2 代碼的運行
完成工程的創建和源代碼的編譯后就開始運行程序。在Eclipse平臺中選擇Run>Open Run Dialog選項,打開運行對話框。然后,在對話框左邊的type filter text下選擇Android Application>contactnote,再點擊對話框中的Run按鈕,應用程序就會被加載到仿真器上并開始運行。
4 結 語
Android手機應用程序開發需要著眼于它的整個體系構架,是一項復雜的工程。本文分析了Android體系的層次架構,并在此基礎上介紹了Android應用程序開發的相關技術和基本的開發流程。Android平臺具有極大的開放性和兼容性,相信廣大開發者可以借助Android SDK提供的強大技術支持,開發出豐富多彩、極具個性的移動應用。
參 考 文 獻
[1]陳昱,江蘭帆.基于Google Android平臺的應用程序開發和研究[J].福建電腦,2008(11):156-157.
[2]楊豐盛.Android應用開發揭秘[M].北京:機械工業出版社,2010.
[3]姚昱旻,劉衛國.Android的架構與應用開發研究[J].計算機系統應用,2008(11):110-111.
[4]姚昱旻,劉衛國.Android與J2ME平臺間即時通信的研究與實現[J].計算機系統應用,2008(12):118-120.
[5]公磊,周聰.基于Android 的移動終端應用程序開發與研究[J].計算機與現代化,2008(8):86-89.
[6]差沙,地獄男爵.用Android 開發手機應用[J].程序員,2008(1):25-27.
[7]葉達峰.Eclipse編程技術與實例[M].北京:人民郵電出版社, 2006.
[8]張超,王阿川,王智.基于J2ME和J2EE的手機軟件的研究[J].黑龍江科技信息,2007(3):21,201.
[9]劉向輝.基于Java的移動終端中間件的研究與設計[D].上海:華東師范大學碩士學位論文,2005.
2.2 Web Service 技術
Web Service是計算機領域一種新興的分布式技術,是基于可編程的Web的應用程序,具有發布、定位、調用的功能,Web Service在被訪問時可以不考慮相關服務如何被實現便可以被任何系統、在任何地方被動態訪問。與傳統的模式相比,實現服務的訪問依賴于協議和數據格式,而不用像其他模式一樣依賴特定對象模型協議;而且Web Service可以整合不同平臺、不同語言、不同開發技術的應用[8],具有良好的封裝性、高度集成性、平臺獨立性等優點。Web Service的關鍵技術包括 HTTP、XML、SOAP、WDSL、UDDI,這些技術通過獨立于特定編程語言、操作系統、硬件平臺的方式進行通信[8]。
3 項目源程序開發
智能家居源程序主要功能模塊框架如圖1所示。
圖1 系統功能框架圖
3.1 登錄與注冊功能的界面設計
當用戶擁有智能家居遠程控制系統中的相關硬件,如環境模塊、房間控制器、設備模塊等,各模塊上標示有唯一的ID,用戶可以根據ID進行注冊,注冊成功后便可以登錄此系統對相關設備進行控制。若用戶已經注冊,則可以直接登錄認證,登錄系統認證的大致流程圖如圖2所示。
圖2 系統登錄功能詳細設計流程圖
若用戶登錄成功,則系統直接跳轉到系統主界面;系統的主界面如圖3所示。若用戶名或密碼錯誤,則彈出錯誤提示框,圖4所示是系統給出的錯誤提示框圖。
圖3 系統主界面圖 圖 4 登陸界面
3.2 代碼的運行
完成工程的創建和源代碼的編譯后就開始運行程序。在Eclipse平臺中選擇Run>Open Run Dialog選項,打開運行對話框。然后,在對話框左邊的type filter text下選擇Android Application>contactnote,再點擊對話框中的Run按鈕,應用程序就會被加載到仿真器上并開始運行。
4 結 語
Android手機應用程序開發需要著眼于它的整個體系構架,是一項復雜的工程。本文分析了Android體系的層次架構,并在此基礎上介紹了Android應用程序開發的相關技術和基本的開發流程。Android平臺具有極大的開放性和兼容性,相信廣大開發者可以借助Android SDK提供的強大技術支持,開發出豐富多彩、極具個性的移動應用。
參 考 文 獻
[1]陳昱,江蘭帆.基于Google Android平臺的應用程序開發和研究[J].福建電腦,2008(11):156-157.
[2]楊豐盛.Android應用開發揭秘[M].北京:機械工業出版社,2010.
[3]姚昱旻,劉衛國.Android的架構與應用開發研究[J].計算機系統應用,2008(11):110-111.
[4]姚昱旻,劉衛國.Android與J2ME平臺間即時通信的研究與實現[J].計算機系統應用,2008(12):118-120.
[5]公磊,周聰.基于Android 的移動終端應用程序開發與研究[J].計算機與現代化,2008(8):86-89.
[6]差沙,地獄男爵.用Android 開發手機應用[J].程序員,2008(1):25-27.
[7]葉達峰.Eclipse編程技術與實例[M].北京:人民郵電出版社, 2006.
[8]張超,王阿川,王智.基于J2ME和J2EE的手機軟件的研究[J].黑龍江科技信息,2007(3):21,201.
[9]劉向輝.基于Java的移動終端中間件的研究與設計[D].上海:華東師范大學碩士學位論文,2005.
2.2 Web Service 技術
Web Service是計算機領域一種新興的分布式技術,是基于可編程的Web的應用程序,具有發布、定位、調用的功能,Web Service在被訪問時可以不考慮相關服務如何被實現便可以被任何系統、在任何地方被動態訪問。與傳統的模式相比,實現服務的訪問依賴于協議和數據格式,而不用像其他模式一樣依賴特定對象模型協議;而且Web Service可以整合不同平臺、不同語言、不同開發技術的應用[8],具有良好的封裝性、高度集成性、平臺獨立性等優點。Web Service的關鍵技術包括 HTTP、XML、SOAP、WDSL、UDDI,這些技術通過獨立于特定編程語言、操作系統、硬件平臺的方式進行通信[8]。
3 項目源程序開發
智能家居源程序主要功能模塊框架如圖1所示。
圖1 系統功能框架圖
3.1 登錄與注冊功能的界面設計
當用戶擁有智能家居遠程控制系統中的相關硬件,如環境模塊、房間控制器、設備模塊等,各模塊上標示有唯一的ID,用戶可以根據ID進行注冊,注冊成功后便可以登錄此系統對相關設備進行控制。若用戶已經注冊,則可以直接登錄認證,登錄系統認證的大致流程圖如圖2所示。
圖2 系統登錄功能詳細設計流程圖
若用戶登錄成功,則系統直接跳轉到系統主界面;系統的主界面如圖3所示。若用戶名或密碼錯誤,則彈出錯誤提示框,圖4所示是系統給出的錯誤提示框圖。
圖3 系統主界面圖 圖 4 登陸界面
3.2 代碼的運行
完成工程的創建和源代碼的編譯后就開始運行程序。在Eclipse平臺中選擇Run>Open Run Dialog選項,打開運行對話框。然后,在對話框左邊的type filter text下選擇Android Application>contactnote,再點擊對話框中的Run按鈕,應用程序就會被加載到仿真器上并開始運行。
4 結 語
Android手機應用程序開發需要著眼于它的整個體系構架,是一項復雜的工程。本文分析了Android體系的層次架構,并在此基礎上介紹了Android應用程序開發的相關技術和基本的開發流程。Android平臺具有極大的開放性和兼容性,相信廣大開發者可以借助Android SDK提供的強大技術支持,開發出豐富多彩、極具個性的移動應用。
參 考 文 獻
[1]陳昱,江蘭帆.基于Google Android平臺的應用程序開發和研究[J].福建電腦,2008(11):156-157.
[2]楊豐盛.Android應用開發揭秘[M].北京:機械工業出版社,2010.
[3]姚昱旻,劉衛國.Android的架構與應用開發研究[J].計算機系統應用,2008(11):110-111.
[4]姚昱旻,劉衛國.Android與J2ME平臺間即時通信的研究與實現[J].計算機系統應用,2008(12):118-120.
[5]公磊,周聰.基于Android 的移動終端應用程序開發與研究[J].計算機與現代化,2008(8):86-89.
[6]差沙,地獄男爵.用Android 開發手機應用[J].程序員,2008(1):25-27.
[7]葉達峰.Eclipse編程技術與實例[M].北京:人民郵電出版社, 2006.
[8]張超,王阿川,王智.基于J2ME和J2EE的手機軟件的研究[J].黑龍江科技信息,2007(3):21,201.
[9]劉向輝.基于Java的移動終端中間件的研究與設計[D].上海:華東師范大學碩士學位論文,2005.