發(fā)布時間:2022-06-08 08:43:41
序言:寫作是分享個人見解和探索未知領(lǐng)域的橋梁,我們?yōu)槟x了1篇的安卓開發(fā)論文樣本,期待這些樣本能夠?yàn)槟峁┴S富的參考和啟發(fā),請盡情閱讀。
Android開發(fā),像一曲舞不完的冰火曲。看著挺美,舞的人卻很辛苦。
市場舞臺寬廣
36萬人,這是國內(nèi)最大Android開發(fā)社區(qū)――優(yōu)億開發(fā)社區(qū)的注冊人數(shù)。優(yōu)億開發(fā)社區(qū)就像一個龐大的舞臺,供幾十萬人共同起舞,場面何其壯觀及熱烈!
起初我們可能還在懷疑:Android是否會很好的存活下去?別的不說,就以完美用戶體驗(yàn)為最終目標(biāo)的蘋果為例,在其強(qiáng)大的品牌攻勢下,Android開發(fā)者能否喘口氣都還是個難題。
雖然當(dāng)時Android的未來還生死未卜,但它畢竟承載了許多人的夢想,開發(fā)者們千萬般呵護(hù),終于發(fā)生了奇跡――“我們發(fā)現(xiàn)Android不但能夠存活下去,而且活得非常好。”優(yōu)億CEO靳巖在4月16日深圳舉辦的“優(yōu)億移動開放日”論壇上的講話中透露著欣喜,“如果你乘坐公交車或者地鐵,一定會發(fā)現(xiàn),人們手里拿著的智能手機(jī),有一半都是Android的系統(tǒng)。”
中文互聯(lián)網(wǎng)數(shù)據(jù)研究資訊中心comScore最新的2012年2月美國移動用戶市場份額報(bào)告稱,谷歌的Android移動操作系統(tǒng)在一年內(nèi)持續(xù)增長,達(dá)到了50.1%。而去年第四季度,Android的產(chǎn)品在中國整體的智能手機(jī)的銷量占到86.4%,這個數(shù)據(jù)還一直在增長,預(yù)計(jì)今年可以占到中國市場的90%以上。塞班系統(tǒng)從以前的80-90%到現(xiàn)在只剩下30%左右,而蘋果的系統(tǒng)一直是一個比較封閉的狀態(tài),依然在10%左右徘徊。
Android的壯大,中國電信功不可沒?!爸袊娦攀堑谝粋€提出互聯(lián)網(wǎng)手機(jī)的運(yùn)營商,也率先幫助中興、華為這樣的公司推出幾百塊錢的Android手機(jī),推廣到三四線城市,讓Android的市場占有率迅速壯大。”天翼空間肖毅表示,伴隨著中國電信在三四線城市的推廣,Android手機(jī)必定擁有廣闊的發(fā)展空間。
難抵開發(fā)屏障
臺上一分鐘,臺下十年功。
可移動互聯(lián)時代,等不得開發(fā)者們耗費(fèi)十年時間苦練內(nèi)功?!伴_發(fā)者們除了要勤奮和智慧,剩下的恐怕只能是見招拆招了。”靳巖冷靜地分析了Android面臨的問題,而這些待解決的問題,也的確讓人感覺到這個行業(yè)目前有點(diǎn)冷。
第一個問題便是Android設(shè)備的版本碎裂較嚴(yán)重?!氨热?,今天在場的人看一下周圍拿Android手機(jī)的朋友,手機(jī)型號肯定不一樣。再看的詳細(xì)一點(diǎn),其實(shí)很多地方都不一樣?!苯鶐r介紹說,“這是因?yàn)槭謾C(jī)廠商把一些東西給修改掉了。Android的開源性讓他們可以修改一些東西,但是修改的時候避免不了要破壞其兼容性,這讓Android設(shè)備的碎裂化問題非常嚴(yán)重?!?
與此同時,同質(zhì)化依然是Android系統(tǒng)需要面臨的一個難題。隨著用戶對質(zhì)量的要求越來越高,如何開發(fā)出質(zhì)量較高、留存率較高的應(yīng)用和更好玩的游戲,也將成為一個具大的挑戰(zhàn)。
而在推廣方面,靳巖拿Android與蘋果做了一個對比:“蘋果的推廣比較容易,它有一些方法在里面,包括潛規(guī)則等。但是Android的推廣有一個很大的問題,就是渠道比較分散。現(xiàn)在全國大大小小的推廣渠道達(dá)到了100個以上,怎么樣才能把這100個渠道全都覆蓋?我個人認(rèn)為,那些中小型開發(fā)者能夠覆蓋10個主流渠道就已經(jīng)很不錯了?!?
最后一個問題,自然就是回報(bào)問題。用戶對于免費(fèi)模式的習(xí)慣,或多或少給APP開發(fā)者們帶來了困惑,而這也直接影響了VC的投資熱情。
曲不終舞未散
一切還在進(jìn)行時。
移動互聯(lián)為大勢所趨,只要背景音樂不斷,舞者就不會終止拼搏。所謂的“冷”并沒有打擊開發(fā)者們的熱情――Android開發(fā)團(tuán)隊(duì)變得更加務(wù)實(shí),學(xué)會了針對市場情況進(jìn)行冷靜地分析,也不再單純地拼蒼白的用戶流量,而是開始比拼用戶質(zhì)量?!安蝗タ茨愕挠脩艋钴S還是不活躍,不去想怎么樣才能把你的用戶轉(zhuǎn)化成你的收入?!币晃淮磉@樣發(fā)表自己的看法。
在技術(shù)上,他們追求更精細(xì)化、更人性化。肖毅介紹了自己的API新業(yè)務(wù):“比如,通過這個API,可以把單機(jī)版的五子棋游戲變成聯(lián)網(wǎng)的點(diǎn)對點(diǎn)的游戲,或者,把用戶的電話號碼做一些社交化的分享內(nèi)容出來。再比如,大家以前做手機(jī)的門檻高,適配的難度也非常大,但通過這樣一個方式就能讓它變得很簡單?!?
至于推廣方面,開發(fā)者們不但想到了流量交換的低成本推廣方式,更注重將用戶體驗(yàn)分享到應(yīng)用體驗(yàn)中去,建立個性化品牌,從而樹立起良好的口碑效應(yīng)。
即使有諸多難題橫在面前,但開發(fā)者們還是在言談中流露出陽光燦爛的表情。舞者,最能打動人的就是表情。在冰與火的舞曲中演繹固然辛苦,但他們看到的,是Android市場未來的一片曙光。
他們最早的設(shè)想是用安卓“建立一個由連至PC的智能相機(jī)所組成的世界”,但由于智能手機(jī)市場開始迅猛發(fā)展,于是這款操作系統(tǒng)面向手機(jī)做了改動?!拔覀儺?dāng)初為相機(jī)開發(fā)的同一個平臺、同一個操作系統(tǒng),后來成為了手機(jī)版安卓系統(tǒng)?!卑沧縿?chuàng)始人之一Andy Rubin近日在東京經(jīng)濟(jì)峰會上表示。
2005年,谷歌收購安卓后,Rubin成為了這個搜索巨頭中的一名高管。他向投資者展示的2004年4月的商業(yè)計(jì)劃的幻燈片中,其中一張顯示著“相機(jī)以無線或有線方式連接至家用電腦,進(jìn)而連接至安卓數(shù)據(jù)中心”的內(nèi)容。然而當(dāng)手機(jī)拍照技術(shù)成為主流后,數(shù)碼相機(jī)市場的增長速度便開始趨緩。于是,5個月后,Rubin的公司調(diào)整了商業(yè)計(jì)劃:安卓成為一款“開源手機(jī)解決方案”的操作系統(tǒng)。
隨后,安卓公司招募了之前供職于T-Mobile和Orange的團(tuán)隊(duì)成員,并把目光瞄向移動版Windows等競爭對手。而蘋果在2007年時才進(jìn)入這個市場。Rubin說:“我當(dāng)時擔(dān)心的是微軟和Symbian,iPhone還不在考慮的范圍之內(nèi)?!?
Rubin表示,當(dāng)時恰逢大好機(jī)遇。硬件成本因商品化而急劇下降,而軟件開發(fā)商對操作系統(tǒng)收取一樣的費(fèi)用,因而在硬件制造商的預(yù)算中占據(jù)更大的份額。由于安卓公司認(rèn)為其系統(tǒng)是銷售其他服務(wù)和產(chǎn)品的一個平臺,因而認(rèn)定它的目標(biāo)為尋求增長,而不是尋求每臺設(shè)備的收入。
安卓公司最初的大膽預(yù)測是,到2010年?duì)幦≡诒泵篮蜌W洲奪得9%的市場份額;但在2012年,安卓的市場份額已高達(dá)72%。谷歌在今年3月份表示,全球投入使用的安卓設(shè)備數(shù)量已超過7.5億部。結(jié)果表明,手機(jī)在市場上的表現(xiàn)勝過相機(jī)。
Rubin說:“我們希望盡可能多的手機(jī)使用安卓系統(tǒng)。因此安卓不會向用戶收取‘99美元、69美元或59美元’之類不同級別的費(fèi)用,而是完全免費(fèi)提供,因?yàn)槲覀冎肋@個行業(yè)對價(jià)格十分敏感?!?
而日前,三星推出了一款運(yùn)行安卓系統(tǒng)的Galaxy相機(jī),尼康和寶麗來等廠商也推出了類似產(chǎn)品。于是,安卓操作系統(tǒng)又回歸到“原點(diǎn)”——相機(jī)操作系統(tǒng)。而這款操作系統(tǒng)還應(yīng)用于平板電腦、電視機(jī)、咖啡機(jī)和冰箱在內(nèi)的多種設(shè)備上。
3月14日,谷歌宣布Rubin將辭去安卓業(yè)務(wù)主管一職,目的是為了讓Rubin在這家公司“另寫新篇章”。
Rubin表示,他會繼續(xù)開發(fā)面向最終用戶的產(chǎn)品。“我可以向大家保證,無論我接下來做什么工作,目標(biāo)都是開發(fā)出讓消費(fèi)者高興的產(chǎn)品。”
摘 要:手機(jī)和移動設(shè)備的開發(fā)在現(xiàn)今正變得越來越重要,因此許多應(yīng)用系統(tǒng)都需要能夠把手機(jī)和移動設(shè)備整合到現(xiàn)有的系統(tǒng)之中作為新的客戶端,在RAD Studio XE2中提供了Mobile Connector的功能,允許開發(fā)人員開發(fā)安卓系統(tǒng)的Datasnap客戶端程序,讓主流的手機(jī)使用者可以藉由手機(jī)連接到此服務(wù)器以存取服務(wù)器提供的服務(wù)。本文主要闡述了如何藉由Datasnap移動設(shè)備連接組件的功能開發(fā)安卓系統(tǒng)的服務(wù)器程序和手機(jī)的客戶端程序。
關(guān)鍵詞:Datasnap 安卓 服務(wù)器 客戶端
1 Datasnap移動設(shè)備連接組件說明
RAD Studio XE2推出Datasnap移動設(shè)備連接組件技術(shù)的目的是為了讓手機(jī)客戶端能夠非常容易地連接到Windows平臺的Datasnap服務(wù)器取得服務(wù),這樣一來,就能夠讓原來Midas分散式系統(tǒng)或最新的Datasnap分散式系統(tǒng)和移動式客戶端整合在一起。目前由于不同的手機(jī)客戶端必須使用不同的程式語言和技術(shù)來開發(fā),因此開發(fā)人員如果要整合數(shù)個不同的手機(jī)客戶端和分布式系統(tǒng),那將是非常辛苦的工作,而Datasnap移動設(shè)備連接組件正好解決了這個問題,因?yàn)檫@是一個藉由可以自動產(chǎn)生不同手機(jī)客戶端的程序代碼的技術(shù),可以讓不同的手機(jī)客戶端連接到分布式系統(tǒng)。
2 開發(fā)安卓系統(tǒng)應(yīng)用程序的步驟
在開發(fā)安卓系統(tǒng)應(yīng)用程序的過程中,需要讓安卓系統(tǒng)的客戶端程序連接到Datasnap服務(wù)器程序,其開發(fā)步驟如下:(1)從Datasnap服務(wù)器獲取Mobile Connector的Java客戶端程序代碼,這個程序代碼不僅能夠讓安卓系統(tǒng)的Java程序代碼連接到Datasnap服務(wù)器,更為重要的是,其中包含了所有服務(wù)器中的服務(wù)方法,可以讓安卓系統(tǒng)的Java客戶端程序直接連接服務(wù)器。(2)把Mobile Connector的Java客戶端程序代碼加入到安卓開發(fā)軟件中,再使用Java調(diào)用Datasnap服務(wù)器的方法。
3 使用RAD Studio XE2開發(fā)Datasnap服務(wù)器和安卓客戶端
3.1 建立服務(wù)器程序
要讓安卓手機(jī)用戶能夠連接到Datasnap服務(wù)器,在建立服務(wù)器時就必須加入支持Mobile Connector的功能,因此,我們先建立一個新的Datasnap Rest應(yīng)用程序,服務(wù)器建立完成后,打開Web Module程序窗體,可以看到Datasnap Server的若干個組件,由于在之前勾選了Mobile Connectors選項(xiàng),因此在這個程序窗體中加入了DSProxyDispatcher組件,這個組件可以讓用戶藉由使用特定的URL來產(chǎn)生支持特定手機(jī)客戶端的Mobile Connector原始程序代碼?,F(xiàn)在編譯并執(zhí)行服務(wù)器程序,就可以使用瀏覽器藉由特定的URL來獲取支持特定手機(jī)客戶端的Mobile Connector程序代碼,然后就可以使用這些支持特定手機(jī)客戶端的Mobile Connector程序代碼來連接并存取服務(wù)器中的服務(wù)方法。在瀏覽器中使用了上述特定的URL后,服務(wù)器就會傳遞安卓客戶端的Mobile Connector程序代碼(以ZIP壓縮文件的方式)到瀏覽器中,讓瀏覽器下載,文件名為java_android.zip。解壓縮此文件,就可以看到其中包含了Java原始程序的代碼文件,可以在Eclipse for Android中使用這些代碼文件以連接到服務(wù)器。
3.2 開發(fā)安卓系統(tǒng)客戶端應(yīng)用程序
取得了安卓系統(tǒng)客戶端Mobile Connector的原始程序代碼以后,接下來就可以使用它來開發(fā)安卓系統(tǒng)的客戶端應(yīng)用程序了,步驟如以下幾點(diǎn)。
(1)啟動Eclipse for Android,并建立Android項(xiàng)目工程,單擊【下一步】按鈕。
(2)在下一步中選擇使用安卓2.1SDK,單擊【下一步】按鈕。
(3)在下一步單擊【Browse】按鈕,加入java_android.zip文件到工程項(xiàng)目文件中,并加入到工程的src目錄中,單擊【完成】按鈕。在加入完成后,打開工程項(xiàng)目中src節(jié)點(diǎn),可以看到com.embarcadero.javaandroid出現(xiàn)在src節(jié)點(diǎn)下面。
(4)為以讓安卓客戶端程序能夠連接Datasnap服務(wù)器,必須開啟Internet的存取權(quán)限。打開工程項(xiàng)目文件中的Manifest.xml文件,加入Internet的存取使用權(quán)限。
修改客戶端程序的使用者界面,使用鼠標(biāo)雙擊選中res/layout節(jié)點(diǎn)之下的main.xml文件,此時Eclipse會顯示可視化的使用者界面,在主窗體中加入1個Label組件,2個EditText組件和1個Button組件。
使用鼠標(biāo)右擊第一個EditText組件,設(shè)定它的ID為edtZipCode,使用鼠標(biāo)右擊第二個EditText組件,設(shè)定它的ID為edtZipArea,使用鼠標(biāo)右擊Button組件,設(shè)定它的ID為btnQuery,設(shè)定它的Text為查詢。
最后為這個工程項(xiàng)目建立一個運(yùn)行時期的狀態(tài)設(shè)定,Eclipse for Android會啟動Android Simulator并加載運(yùn)行的項(xiàng)目工程。在運(yùn)行的程序中輸入一個郵政編碼,并點(diǎn)擊【查詢】按鈕,會看到Android客戶端程序調(diào)用Datasnap服務(wù)器方法所返回的查詢結(jié)果。
4 結(jié)語
在計(jì)算機(jī)技術(shù)高速發(fā)展的今天,支持手機(jī)和移動設(shè)備應(yīng)用程序的開發(fā)正變得越來越重要,許多應(yīng)用系統(tǒng)都需要能夠把手機(jī)和移動設(shè)備整合到現(xiàn)有的系統(tǒng)之中作為新的客戶端,在RAD Studio XE2中提供了Mobile Connector的功能,允許開發(fā)人員開發(fā)安卓系統(tǒng)的客戶端程序,讓主流的手機(jī)使用者可以藉由手機(jī)連接到Datasnap服務(wù)器以存取服務(wù)器提供的服務(wù)。本文主要闡述了如何藉由移動設(shè)備連接組件的功能開發(fā)安卓系統(tǒng)的服務(wù)器程序和手機(jī)的客戶端程序。
【摘要】主要介紹基于安卓系統(tǒng)手機(jī)WiFi的家用智能遙控器客戶端的開發(fā)。通過在安卓手機(jī)上開發(fā)遙控器界面,并載入多個不同品牌不同型號設(shè)備的遙控器指令數(shù)據(jù)包,借助WiFi轉(zhuǎn)紅外模塊譯碼成與家電相匹配的紅外信號,使實(shí)物遙控設(shè)備數(shù)據(jù)化,實(shí)現(xiàn)“一個家庭只需一個遙控器”的目標(biāo),為人們提供一個智能舒適、環(huán)保節(jié)能的居家環(huán)境。
【關(guān)鍵詞】安卓系統(tǒng);WiFi;紅外遙控
一、引言
由于紅外遙控器價(jià)格低廉、技術(shù)成熟等優(yōu)點(diǎn),許多智能家電設(shè)備仍普遍采用紅外遙控器進(jìn)行控制,包括電視、空調(diào)、DVD機(jī)、電視機(jī)頂盒等等。然而,隨著家庭中智能家電設(shè)備的增多,紅外遙控器數(shù)量也在增加,一個家庭使用的遙控器數(shù)量少則數(shù)個,多則十幾個,這會帶來三大問題:
(1)數(shù)量眾多的遙控器給使用者帶來使用和管理上的不便;
(2)紅外遙控器使用的一次性堿性電池,廢棄后給環(huán)境帶來極大的危害;
(3)遙控器意外損壞后,很難找到匹配的遙控器。
基于安卓手機(jī)WiFi的家用智能遙控器,可同時控制多個不同品牌不同型號的家用電器,取代傳統(tǒng)的實(shí)物遙控器,實(shí)現(xiàn)“一個家庭只需一個遙控器即可控制所有紅外遙控的家電設(shè)備”的目標(biāo),極大減少遙控器數(shù)量和一次性電池的使用量,為人們創(chuàng)造便捷舒適、環(huán)保節(jié)能的居家環(huán)境。
二、系統(tǒng)的結(jié)構(gòu)
整個系統(tǒng)主要包括客戶端軟件、WiFi轉(zhuǎn)紅外模塊,如圖1所示??蛻舳塑浖ㄟ^WiFi,將已編碼的數(shù)據(jù)通過WiFi傳送至WiFi轉(zhuǎn)紅外模塊,然后WiFi轉(zhuǎn)紅外模塊根據(jù)編碼規(guī)則,傳遞指令至內(nèi)部紅外發(fā)射模塊,實(shí)現(xiàn)紅外數(shù)據(jù)的發(fā)送。
(一)家用智能遙控器客戶端的構(gòu)成
1.鍵碼數(shù)據(jù)包的采集與設(shè)計(jì)
(1)鍵碼數(shù)據(jù)包的采集
紅外遙控器的編碼格式通常有NEC。
NEC格式的特征:使用38kHz載波頻率,引導(dǎo)碼間隔是9ms+4.5ms,使用16位客戶代碼,使用8位數(shù)據(jù)代碼和8位取反的數(shù)據(jù)代碼。
隨著家庭電器種類、型號的不斷增多,相對應(yīng)的遙控器也隨之增加,為了便于管理、存取與更新家電遙控器的紅外代碼,需要為繁多冗雜的代碼建立一個數(shù)據(jù)包。
(2)遙控器按鍵數(shù)據(jù)包的設(shè)計(jì)
由于紅外協(xié)議各不相同,并且又相互不兼容,所以直接發(fā)送紅外數(shù)據(jù)會導(dǎo)致WiFI轉(zhuǎn)紅外模塊處理十分繁瑣。因此,收集多種紅外協(xié)議數(shù)據(jù),按照自定義編碼規(guī)則,將多種協(xié)議編碼化,并保存于后臺數(shù)據(jù)庫。
為了實(shí)現(xiàn)按鍵界面與遙控器數(shù)據(jù)包的匹配,定義數(shù)據(jù)包格式如下:
文件起始標(biāo)志位4位。
鍵碼屬性128位:設(shè)備的信息,訪問中文字庫編碼、ASCII碼。
載波頻率4位:35-42kHz;分辨率0.5kHz,以適應(yīng)不同載波的遙控器。
鍵碼編碼:對遙控器界面軟件的所有按鍵進(jìn)行編碼,鍵碼位數(shù)根據(jù)實(shí)際紅外協(xié)議確定。
2.遙控器界面軟件的設(shè)計(jì)
(1)數(shù)據(jù)庫設(shè)計(jì)
安卓操作系統(tǒng)采用標(biāo)準(zhǔn)SQLite數(shù)據(jù)庫,提供管理數(shù)據(jù)庫相關(guān)的API。利用SQLiteOpen Helper類中的onCreate()Call Back方法以及onUpdate()Call Back方法創(chuàng)建與打開各種遙控器紅外代碼表Table,存進(jìn)數(shù)據(jù)庫中,方便數(shù)據(jù)的及時更新。
(2)按鍵與數(shù)據(jù)包匹配
在手機(jī)界面中,每個按鍵都與其相對應(yīng)的紅外代碼相匹配,即按鍵功能與數(shù)據(jù)庫中各種遙控器數(shù)據(jù)相連接。通過調(diào)用getReadable Database()方法當(dāng)用戶按下按鍵時,軟件會查找數(shù)據(jù)包,將與該按鍵相連的數(shù)據(jù)包數(shù)據(jù),即相對應(yīng)的控制家電的紅外代碼以WiFi的形式發(fā)送至WiFi轉(zhuǎn)紅外模塊。
(二)WiFi轉(zhuǎn)紅外模塊
本模塊負(fù)責(zé)數(shù)據(jù)接收、紅外發(fā)射。包含WiFi數(shù)據(jù)接收與傳送、串口數(shù)據(jù)解析、紅外電平發(fā)射。采用WiFi芯片USR-WIFI232,提供WiFi信號及獲得客戶端所發(fā)送數(shù)據(jù),再將數(shù)據(jù)通過串口傳送至中控CPU。
本模塊內(nèi)部采用單片機(jī)作為中控CPU,處理編碼化數(shù)據(jù)與紅外協(xié)議的轉(zhuǎn)化。由于單片機(jī)價(jià)格低廉,資源足夠,功能滿足中控CPU的需求,因此,采用單片機(jī)作為中控CPU。在單片機(jī)程序中設(shè)置多個紅外協(xié)議入口點(diǎn),當(dāng)編碼化的數(shù)據(jù)傳送至單片機(jī)后,按照自定義的編碼規(guī)則,尋找對應(yīng)的紅外協(xié)議入口,從而發(fā)射對應(yīng)的紅外電平。
中控CPU功能硬件電路由單片機(jī)最小系統(tǒng)及紅外發(fā)射電路成。在中控CPU程序中,包含定時器功能、串口數(shù)據(jù)讀取功能、紅外電平控制功能。中控CPU的程序流程圖如圖3。定時器功能主要是用于產(chǎn)生載波,并與紅外信號疊加,從而提高紅外信號在空氣中傳播的抗干擾能力。串口數(shù)據(jù)讀取,將WiFi芯片傳遞的數(shù)據(jù)加以分析,按照自定義的編碼規(guī)則,進(jìn)入不同的紅外協(xié)議功能函數(shù)。紅外電平控制功能,實(shí)現(xiàn)具體的紅外協(xié)議函數(shù),通過串
口讀取功能提供的數(shù)據(jù),發(fā)射出匹配的紅外信號。
三、實(shí)驗(yàn)測試
本次試驗(yàn)采用專用的紅外測試儀器,可以監(jiān)測到紅外信號并將其波形顯示出來。采用安裝客戶端的安卓手機(jī)及WiFi轉(zhuǎn)紅外模塊,對比于實(shí)物遙控器。將實(shí)物遙控器、WiFi轉(zhuǎn)紅外模塊都對準(zhǔn)紅外測試儀器。按下實(shí)物遙控器的某個按鍵之后,觀察紅外測試儀器顯示的波形,如圖3所示;接著按下安卓手機(jī)上對應(yīng)的遙控器按鍵后,觀察紅外測試儀器上的波形,如圖4所示。
由圖3、圖4可以看得出,安裝客戶端的安卓手機(jī)及WiFi轉(zhuǎn)紅外模塊可以實(shí)現(xiàn)實(shí)物遙控器的功能。
四、結(jié)束語
本項(xiàng)目設(shè)計(jì)的運(yùn)行在安卓手機(jī)上的新型遙控器,實(shí)測數(shù)據(jù)證明,其實(shí)現(xiàn)的功能與原配的實(shí)物遙控器性能一致,完全可以取代現(xiàn)有的各種實(shí)物遙控器,實(shí)現(xiàn)實(shí)物遙控設(shè)備數(shù)據(jù)化,降低成本。由于它基于安卓手機(jī)平臺,具有成本低、擴(kuò)展好、“一機(jī)多控”、環(huán)保、智能等優(yōu)點(diǎn),作品成熟后,具有較高的市場應(yīng)有價(jià)值。
摘要:針對當(dāng)前移動平臺的健康減肥軟件種類少,形式單一,操作復(fù)雜的特點(diǎn),開發(fā)了一套基于安卓平臺健康減肥的軟件。本軟件主要實(shí)現(xiàn)了運(yùn)動減肥、色彩減肥、GPS定位等功能。利用了安卓加速傳感器計(jì)算每天行程,GPS定位和百度地圖完成了當(dāng)前位置定位及路徑痕跡。
關(guān)鍵詞:Android平臺;加速傳感器;GPS定位;BMI
現(xiàn)代手機(jī)成為人們不可或缺的一部分,而在手機(jī)中,安卓手機(jī)已經(jīng)成為年輕人群的主流手機(jī),而年輕人也對減肥瘦身如火如荼,健康減肥也是愈演愈烈。電腦平臺的減肥軟件應(yīng)有盡有,趨向成熟,但在移動客戶端上的健康減肥軟件種類少,并且形式單一,在市場上一款多功能的移動健康減肥軟件還很少,所以移動客戶端的健康減肥軟件有很大的市場空間,所以我就使用最廣并且最多的安卓平臺開發(fā)了健康減肥軟件。它有著靈活性、準(zhǔn)確性、生活化、直接性和潛在性等特點(diǎn)。針對這些特點(diǎn),采用安卓平臺的健康減肥軟件就體現(xiàn)出了很大的優(yōu)勢。這種采用移動平臺,讓人們隨時隨地進(jìn)行減肥,靈活準(zhǔn)確的記錄減肥成果,讓人們的減肥更加透明化。
1 基于安卓平臺健康減肥軟件開發(fā)與設(shè)計(jì)的需求分析
1.1 功能需求
健康減肥軟件主要以運(yùn)動量的測定和評估為主,加以平衡膳食的健康生活方式為輔助,健康指數(shù)查詢,給出了健康人的心率、血壓、血糖等的標(biāo)準(zhǔn)指數(shù),讓大家作為健康的參考;減肥日記,用來記錄每天的走路數(shù),讓人們清晰的知道自己消耗的卡路里;飲食搭配用來合理的搭配食物,知道自己將要增加多少卡路里,以免過多的攝入;色彩減肥,有兩組圖片,進(jìn)行強(qiáng)烈的對比,引起肥胖者的重視,讓想減肥的人節(jié)食;健康膳食,提供了大量早中晚的食物以及這些食物的熱量,攝入多少出現(xiàn)的問題等信息;運(yùn)動悅耳和我的提醒,是分別調(diào)用安卓自帶應(yīng)用music和desktop alarm,如果你的手機(jī)已經(jīng)深度優(yōu)化是不會正常顯示的。運(yùn)動循跡是利用GPS定位和百度地圖來,用來標(biāo)注你的位置和所走路線的。這樣讓使用者更能了解自己運(yùn)動的狀態(tài)和位置,綜合以上所述功能,展現(xiàn)了一套綜合的安卓健康減肥軟件。
1.2 界面需求
2 基于安卓平臺健康減肥軟件的設(shè)計(jì)和實(shí)現(xiàn)技術(shù)
安卓是一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要使用移動設(shè)備,是有Java技術(shù)開發(fā)的。本軟件就是在安卓操作系統(tǒng)上開發(fā)的,安卓的系統(tǒng)架構(gòu)和其操作系統(tǒng)一樣,采用了分層的結(jié)構(gòu)。從架構(gòu)圖看,安卓分為四個層,從高層到底層分別是應(yīng)用程序?qū)?、?yīng)用程序架構(gòu)層、系統(tǒng)運(yùn)行庫層和Linux內(nèi)核層。Android開發(fā)四大組件分別是:活動(Activity): 用于表現(xiàn)功能。服務(wù)(Service): 后臺運(yùn)行服務(wù),不提供界面呈現(xiàn)。廣播接收器(BroadcastReceiver):用于接收廣播。內(nèi)容提供商(Content Provider): 支持在多個應(yīng)用中存儲和讀取數(shù)據(jù),相當(dāng)于數(shù)據(jù)庫。本應(yīng)用利用java技術(shù),在安卓系統(tǒng)上進(jìn)行開發(fā)。
3 健康減肥軟件的總體設(shè)計(jì)
3.1 軟件總體設(shè)計(jì)
根據(jù)我們定義的需求分析,我們給出了安卓平臺健康減肥軟件總體設(shè)計(jì),如圖1所示。
3.2 主窗體的設(shè)計(jì)
主窗體利用GridView(九宮格)多控件布局,內(nèi)部添加了7個功能模塊。在主界面上部添加了利用加速傳感器感知的所走步數(shù)的計(jì)算。
3.3 健康指數(shù)功能的設(shè)計(jì)
功能主要是計(jì)算體重指數(shù)(BMI)、有氧運(yùn)動心率、健康標(biāo)準(zhǔn)查詢表:包括體溫、血糖、血壓、血脂、心率、脈搏、呼吸等。
技術(shù)上,在ToolMainListActivity.java和CalorieManager.java文件中實(shí)現(xiàn),根據(jù)BMI=體重/(身高*身高)公式,求得BMI,并且得知自己處于輕體重、正常、肥胖等層次。健康標(biāo)準(zhǔn)查詢表是通過在ImageButton上添加文字來實(shí)現(xiàn)的。
3.4 減肥日記功能的設(shè)計(jì)
功能是實(shí)現(xiàn)記錄用戶每天的走路步數(shù),并且通過公式計(jì)算每天消耗的卡路里。
技術(shù)上,在NoteListActivity.java文件中實(shí)現(xiàn),利用安卓自帶的加速傳感器(acceleration transducer),原理是慣性原理,也就是力的平衡,A(加速度)=F(慣性力)/M(質(zhì)量) ,能感受加速度并轉(zhuǎn)換成可用輸出信號的傳感器。在CalorieManager.java文件中mCalorieListener對象用于監(jiān)聽手機(jī)水平傳感器,Sensor sensor = mSensorMgr.getDefaultSensor(Sensor.TYPE_ACCELE ROMETER),傳感器初始化,進(jìn)行感應(yīng)每天所走步數(shù),mUpdateSQLiteThread對象用于更新數(shù)據(jù)庫的線程,保存每天記錄的數(shù)據(jù)。
3.5 色彩減肥功能的設(shè)計(jì)
功能是利用圖片對比法,讓用戶在視覺上產(chǎn)生沖擊。導(dǎo)致減少飲食和充分認(rèn)識到減肥的重要性。圖片對比方式:讓減肥的人充分認(rèn)識到減肥的重要性。圖片刺激方式:通過多組惡心的圖片以使人們產(chǎn)生厭食的現(xiàn)象。達(dá)到減肥的目的。
技術(shù)上,這個功能模塊技術(shù)上實(shí)現(xiàn)很簡單,在PictureListMainActivity.java中實(shí)現(xiàn)。利用ImageView類來定義多組圖片實(shí)現(xiàn)。
3.6 健康膳食功能的設(shè)計(jì)
3.7 運(yùn)動悅耳功能的設(shè)計(jì)
功能是讓用戶在鍛煉時間進(jìn)行聽音樂,達(dá)到身心放松。
技術(shù)上,我們遵循軟件的簡約化,直接調(diào)用安卓自帶軟件music(com.android.music)。但是如果安卓深度優(yōu)化,將自帶音樂播放器修改了,那這個功能將不能使用。
3.8 我的提醒功能的設(shè)計(jì)
功能是讓用戶可以定時進(jìn)行有規(guī)律的鍛煉。
技術(shù)上,與運(yùn)動悅耳功能方式相同,直接調(diào)用安卓自帶軟件桌面鬧鈴(com.android.deskAlarm)。同樣的,如果安卓系統(tǒng)被深度優(yōu)化,將自帶的桌面鬧鈴修改了將不能使用此功能。
3.9 基本設(shè)置功能的設(shè)計(jì)
功能是保存用戶的基本信息,如年齡、體重、身高等。
技術(shù)上,使用下拉菜單實(shí)現(xiàn)年齡體重身高等的記錄。在com.example.health.food包中,入口是OptionActivity.java文件中實(shí)現(xiàn)的。
3.10 運(yùn)動尋跡功能的設(shè)計(jì)
功能是實(shí)現(xiàn)了定位用戶當(dāng)前位置,并獲得了當(dāng)前經(jīng)緯度。包括計(jì)算距離,用戶的運(yùn)動軌跡等。
4.1 功能測試
采用測試方法:功能測試盒Alpha測試,由一個用戶在開發(fā)環(huán)境下進(jìn)行的測試,也可以是公司內(nèi)部的用戶在模擬實(shí)際操作環(huán)境下進(jìn)行的受控測試。測試后進(jìn)行迭代,使項(xiàng)目達(dá)到更小的錯誤率。表2是功能測試的結(jié)果。
4.2 測試結(jié)論
系統(tǒng)功能的測試結(jié)果顯示,基于安卓平臺的健康減肥軟件能夠正常使用。各功能都可支持。滿足了預(yù)期期望。
5 結(jié)束語
安卓版的健康減肥軟件開發(fā)與設(shè)計(jì)是由于手機(jī)軟件市場上健康減肥軟件種類少、功能單一等問題而開發(fā)的。目的是解決年輕人健康的減肥并且平衡的問題。軟件的設(shè)計(jì)應(yīng)當(dāng)符合操作簡單,靈活方便等要求。采用java技術(shù)在安卓平臺上開發(fā)設(shè)計(jì),在安卓手機(jī)上有運(yùn)行,方便快捷、靈活準(zhǔn)確。從而達(dá)到改善膳食,使減肥者真正達(dá)到想要的身材,實(shí)現(xiàn)出本軟件的真正價(jià)值。
[摘要]本文主要介紹基于安卓智能移動系統(tǒng)的大比例尺地圖數(shù)據(jù)采集系統(tǒng),對系統(tǒng)的功能、特點(diǎn)、結(jié)構(gòu)等進(jìn)行論述。
[關(guān)鍵詞]安卓 數(shù)據(jù)采集 數(shù)字化測圖
1引言
現(xiàn)代科學(xué)技術(shù)的飛速發(fā)展,尤其是計(jì)算機(jī)技術(shù)的廣泛采用,使測繪技術(shù)發(fā)生了革命性的變化,從模擬階段轉(zhuǎn)向數(shù)字階段,數(shù)字化測圖已成為當(dāng)今大比例尺地形圖測繪的主要方式。數(shù)字測圖野外測量自動記錄,自動解算處理,自動成圖,并能提供可處理的數(shù)字地形圖。目前,數(shù)字化測圖軟件、硬件已經(jīng)得到的長足的發(fā)展,但野外現(xiàn)在草圖的作業(yè)方式效率依然較為低下;雖然現(xiàn)在已有電子平板、掌上平板等野外數(shù)據(jù)采集軟硬件設(shè)備,但是由于成本過高,電池續(xù)航能力不足等因素,而未能大面積推廣。為了使得野外數(shù)據(jù)采集更加高效,借助現(xiàn)代科技,利用安裝了安卓智能移動系統(tǒng)的設(shè)備(手機(jī)、平板電腦)體積小、便于攜帶,觸控方便、成本低的的特點(diǎn),開發(fā)一套基于安卓系統(tǒng)的大比例尺地形圖測繪系統(tǒng),對提高生產(chǎn)效率將起到積極的作用。
Android是一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要使用于移動設(shè)備,如智能手機(jī)和平板電腦,由Google公司和開放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開發(fā)。安卓系統(tǒng)平臺具有以下特點(diǎn):①開放性:允許任何移動終端廠商加入到Android聯(lián)盟中來,可以使其擁有更多的開發(fā)者;②豐富的硬件選擇:這一點(diǎn)還是與Android平臺的開放性相關(guān),由于Android的開放性,它擁有千奇百怪,功能特色各具的多種產(chǎn)品。功能上的差異和特色,卻不會影響到數(shù)據(jù)同步、甚至軟件的兼容;③方便開發(fā):Android平臺提供給第三方開發(fā)商一個十分寬泛、自由的環(huán)境,不會受到各種條條框框的阻擾,因此會有新穎別致的軟件會誕生;④Google應(yīng)用:Android平臺能無縫結(jié)合優(yōu)秀的Google服務(wù),如地圖。本文針對用戶對大比例尺地形圖測繪簡易性和高效性的需求,介紹了基于安卓智能系統(tǒng)的大比例尺測圖系統(tǒng)的整體結(jié)構(gòu)和基本功能。
2系統(tǒng)設(shè)計(jì)
2.1系統(tǒng)優(yōu)點(diǎn)
基于安卓開發(fā)的地形圖測繪系統(tǒng)與便攜式計(jì)算機(jī)、平板電腦、工業(yè)級的PAD設(shè)備相比較具有以下優(yōu)點(diǎn):①體積小、重量輕、適合于野外工作的優(yōu)點(diǎn);②與便攜式計(jì)算機(jī)、工業(yè)級的PAD設(shè)備相比,價(jià)格便宜、成本低;③能耗較低,續(xù)航能力強(qiáng),擁有與之配套的便攜式電源;④可觸屏繪制圖形,反應(yīng)速度快,工作效率高。
基于安卓開發(fā)的地形圖測繪系統(tǒng)與測繪外業(yè)工作的適宜性特點(diǎn):①超大屏幕:7英寸(1024×600 像素)或10英寸的屏幕,完全可以滿足地形圖測繪外業(yè)工作的需求;②CPU:雙核或四核,完全可以勝任地形圖測繪的野外數(shù)據(jù)采集任務(wù);③攝像:可以現(xiàn)場錄制測繪現(xiàn)場的視頻,減少外業(yè)巡查,提高效率;④拍照:定點(diǎn)記錄現(xiàn)場觀測的信息,為內(nèi)業(yè)數(shù)據(jù)處理提供現(xiàn)場影像資料;⑤錄音:記錄外業(yè)調(diào)查的語音信息;⑥GPS:提供導(dǎo)航定位功能,記錄一定精度范圍內(nèi)定位信息,輔助踏勘工作;⑦WIFI:可以方便的接入網(wǎng)絡(luò)營運(yùn)商提供的互聯(lián)網(wǎng)服務(wù),傳輸非涉密數(shù)據(jù);在局域網(wǎng)內(nèi)快速的與網(wǎng)絡(luò)工作站交換數(shù)據(jù),上傳數(shù)據(jù)到局域網(wǎng)服務(wù)器;⑧藍(lán)牙:驅(qū)動控制測量儀器、與測量設(shè)備交換數(shù)據(jù)、備份或恢復(fù)數(shù)據(jù);⑨USB:驅(qū)動控制測量儀器、與測量設(shè)備交換數(shù)據(jù)、備份或恢復(fù)數(shù)據(jù);⑩SD 存儲卡:大容量SD卡可用作軟件安裝和數(shù)據(jù)存儲。
2.2系統(tǒng)的數(shù)據(jù)流程
根據(jù)測圖系統(tǒng)中數(shù)據(jù)采集的特點(diǎn),系統(tǒng)的數(shù)據(jù)流程,如圖1所示。
2.3系統(tǒng)結(jié)構(gòu)
本地形圖數(shù)據(jù)采集系統(tǒng)是以智能平板電腦(或智能手機(jī))為載體,在安卓平臺下使用Java 作為編程語言來開發(fā)的野外數(shù)據(jù)采集平臺,集數(shù)據(jù)、圖形、屬性采集、編輯于一體的外業(yè)數(shù)據(jù)采集系統(tǒng)。該數(shù)據(jù)采集系統(tǒng)具有可視化、可觸控、面向?qū)ο蟮牟僮鹘缑?、完整的地圖符號和先進(jìn)的編輯功能,可以同步采集數(shù)據(jù)、圖形和地物屬性,也可以在野外只采集數(shù)據(jù)或者圖形,再進(jìn)行圖形的編輯和屬性的匹配。用戶可根據(jù)自己的需要和習(xí)慣選擇方便自己的作圖方式,利用圖形編輯系統(tǒng)和屬性管理系統(tǒng),對于已作的圖形可以進(jìn)行再編輯和屬性的更改。使成圖效率成倍提高,系統(tǒng)結(jié)構(gòu)示意圖,如圖2所示。
3系統(tǒng)功能
系統(tǒng)主要包括圖根控制、碎部測量、圖形編輯、圖形(數(shù)據(jù))查看、距離量算、坐標(biāo)量測等基本功能模塊。
3.1圖根控制
(1)控制點(diǎn)管理:該功能主要實(shí)現(xiàn)對測區(qū)內(nèi)測量控制點(diǎn)的管理,包括把控制上傳到全站儀等采集設(shè)備、對控制點(diǎn)進(jìn)行添加、刪除、修改、查詢等,并實(shí)現(xiàn)在地形圖中自動繪制控制點(diǎn)符號。
(2)圖根導(dǎo)線測量及平差:包括圖根導(dǎo)線的基本設(shè)置,如方向、斜距、天頂距測回?cái)?shù)、限差等。測量結(jié)束后利用簡易平差原理,開發(fā)導(dǎo)線簡易平差功能進(jìn)行導(dǎo)線平差計(jì)算,可處理符合導(dǎo)線、閉合導(dǎo)線、支導(dǎo)線、無定向?qū)Ь€。平差結(jié)果及原始觀測數(shù)據(jù)自動生成報(bào)表輸出。對于導(dǎo)線中的一個粗差可以自動探測。
(3)自由設(shè)站:支持全站儀自由設(shè)站法的測量方式,包括已知點(diǎn)的觀測、錯誤檢查、坐標(biāo)計(jì)算及存儲等功能。
(4)尋點(diǎn)功能:利用設(shè)備的GPS定位功能,通過求解測區(qū)的坐標(biāo)轉(zhuǎn)換參數(shù),可以速度找到測區(qū)的控制點(diǎn)大致點(diǎn)位,設(shè)站定向更迅速。
3.2碎部測量
碎部測量是數(shù)據(jù)采集的一個主要功能,程序中提供了兩種基本的測量方式:極坐標(biāo)法測量、直角坐標(biāo)法測量。極坐標(biāo)測量中通過填寫圖塊代碼,連接點(diǎn),連接線型,可實(shí)現(xiàn)對應(yīng)的圖形連接和屬性編碼。也可通過觸摸屏幕進(jìn)行逐點(diǎn)連接,或按各點(diǎn)測量的順序依次自動連接。在碎部測量中,碎部點(diǎn)坐標(biāo)可以通過儀器設(shè)備采集得到,也可以根據(jù)現(xiàn)有的圖形關(guān)系計(jì)算得到。
3.3碎部點(diǎn)坐標(biāo)測算及連碼處理
碎部點(diǎn)坐標(biāo)測算是利用已有的基本碎部點(diǎn)通過一定的幾何關(guān)系計(jì)算出未知點(diǎn),并將點(diǎn)顯示在屏幕上。系統(tǒng)中提供的方法包括:直角折點(diǎn)、直線相交、邊長交會、矩形2點(diǎn)、矩形第4點(diǎn)、方向直線交會、垂線直線交會、內(nèi)插點(diǎn)、對稱點(diǎn)、垂足點(diǎn)、直線定點(diǎn)、方向線支距、直角偏距等。
系統(tǒng)開發(fā)提供一種更為簡單的連碼處理方式。它既提高了作業(yè)速度,又減輕了作業(yè)人員的勞動強(qiáng)度,它在生成測算點(diǎn)坐標(biāo)的同時,也生成了相應(yīng)的圖塊。主要可提供的方法包括:一點(diǎn)矩形、兩點(diǎn)矩形、3 點(diǎn)矩形、直角折線、方向伸縮、直角隔點(diǎn)、過點(diǎn)平行線、距離平行線等。
圖形編輯包括對圖形的瀏覽、對圖塊和點(diǎn)的編輯等功能:①圖形的瀏覽,包括圖形的移動、放大(開窗放大) 、縮小、全圖;②圖塊的編輯,包括對圖塊的刪除、復(fù)制、粘貼、圖塊屬性的修改。同時也可通過屬性代碼進(jìn)行圖塊的添加;③點(diǎn)的編輯,包括點(diǎn)的屬性修改、點(diǎn)的刪除、點(diǎn)的添加等;④圖層控制,系統(tǒng)的數(shù)據(jù)按地物特點(diǎn)分層放置,可以通過圖層控制功能來開關(guān)顯示相應(yīng)圖層,以提高圖形顯示速度,便于用戶的各種編輯處理。
3.5數(shù)據(jù)轉(zhuǎn)換
系統(tǒng)開發(fā)需提供數(shù)據(jù)轉(zhuǎn)換接口,實(shí)現(xiàn)將外業(yè)采集的圖形數(shù)據(jù)生成各種數(shù)字化成圖軟件或圖形處理軟件的交換數(shù)據(jù)文件格式,系統(tǒng)支持DWG(CAD),DXF,SVF(威遠(yuǎn)圖) ,CAS(南方) ,EBP/ EBF(瑞得)、SHP(ARCGIS)等數(shù)據(jù)文件格式。
4系統(tǒng)的特點(diǎn)
(1)根據(jù)測量人員的作業(yè)習(xí)慣和要求進(jìn)行開發(fā),提供了更友好、操作更方便的用戶界面。
(2)在數(shù)據(jù)存儲過程中,采用面向?qū)ο蟮母拍顏砉芾淼匚铮▓D塊) ,這樣就能很方便地對數(shù)據(jù)進(jìn)行增刪改,包括圖形及屬性數(shù)據(jù)。
(3)系統(tǒng)開發(fā)必須具有對所采集的數(shù)據(jù)均進(jìn)行了數(shù)據(jù)的完整性和圖形與屬性的一致性的檢查的功能,以便滿足各種專題地理信息系統(tǒng)對外業(yè)數(shù)據(jù)采集和數(shù)據(jù)建庫的需求。
(4)除支持全站儀等作為數(shù)據(jù)采集設(shè)備外,還支持通過GPS-RTK直接采集地形數(shù)據(jù)。
5結(jié)束語
目前,數(shù)字測圖技術(shù)已經(jīng)取代傳統(tǒng)的手工測圖方式,數(shù)字地圖產(chǎn)品也成為最主要的地圖產(chǎn)品。我國已有商品化的大比例尺地面數(shù)字測圖系統(tǒng),但尚存在某些問題,其中最主要而突出的問題是外業(yè)采集數(shù)據(jù)手工繪制草圖較為繁瑣,作業(yè)速度慢,內(nèi)業(yè)成圖時需對照草圖手工繪制圖形,工作效率低下;已有的掌上測圖系統(tǒng)多采用非智能平臺開發(fā),數(shù)據(jù)傳輸不便,成本高,設(shè)備功耗大,無法長時間使用,無法大范圍推廣使用。
基于安卓智能移動系統(tǒng)的外業(yè)數(shù)據(jù)采集系統(tǒng),充分利用了平板電腦體積小、重量輕,運(yùn)行速度快,便于攜帶,低能耗,工作時間長等優(yōu)點(diǎn),在最佳的測量條件下進(jìn)行最多的測量作業(yè),減少測量環(huán)境對測量數(shù)據(jù)精度的影響;同時可視化界面的操作系統(tǒng),具有良好的圖形顯示、圖形編輯和交互操作的特性,實(shí)現(xiàn)即測即顯,大大減輕內(nèi)業(yè)工作量,提高了工作效率。
摘要:自從安卓手機(jī)操作系統(tǒng)以來,它便以開放性、不受束縛、豐富的硬件、方便開發(fā)等優(yōu)勢風(fēng)靡全世界,我們利用安卓手機(jī)平臺,開發(fā)了一款旅游社交平臺軟件,該軟件采用安卓Sdk4.0進(jìn)行開發(fā),采用了C/S模式,可以節(jié)省網(wǎng)絡(luò)資源,簡單,易用,服務(wù)器端采用Java Web開發(fā),數(shù)據(jù)庫采用了免費(fèi)的Mysql。它可以給用戶提供你最想要的旅游欄目,讓你置身于朋友的海洋之中,從此出行旅游更加方便。
關(guān)鍵詞:Android平臺應(yīng)用開發(fā);旅游社交平臺
Android是一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要使用于移動設(shè)備,如智能手機(jī)和平板電腦,由Google公司和開放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開發(fā)。大學(xué)生從高中升入大學(xué),猶如一下子從“地獄”進(jìn)入了“天堂”,有著大量的課余時間,但是往往他們無法合理利用,大多蝸居在宿舍里打游戲,費(fèi)心勞神,因此開發(fā)一款基于安卓平臺的旅游社交軟件,幫助大學(xué)生走出教室,走出宿舍,到自然中,去鍛煉,去陶冶情操,最大程度的滿足他們旅游交友的需求。
1 基于安卓平臺旅游社交軟件的需求分析
這個平臺主要包括3個子系統(tǒng),它們分別是:1)發(fā)起活動子系統(tǒng);2)參加活動子系統(tǒng);3)后臺管理子系統(tǒng);4)活動分享子系統(tǒng)。如圖1所示。
在活動發(fā)起子系統(tǒng)中包括以下幾個功能:1)活動申請;2)活動信息管理;3)活動資料查詢;4)活動上報(bào)申請。
在參加活動子系統(tǒng)中包括以下幾個功能:1)活動參加;2)活動資料查詢;3)參加活動申請。
在后臺管理子系統(tǒng)中包括以下幾個功能:1)用戶管理;2)公告管理;3)權(quán)限管理;4)分類管理;5)系統(tǒng)維護(hù)。
在活動分享子系統(tǒng)中包括以下幾個功能:1)活動評價(jià)分享;2)活動圖片分享。
2 旅游社交平臺的總體設(shè)計(jì)
2.1 軟件總體設(shè)計(jì)
根據(jù)我們定義的需求分析,我們給出了旅游社交平臺軟件總體設(shè)計(jì),客戶端運(yùn)行在安卓手機(jī)上,服務(wù)器端運(yùn)行在Tomcat上,數(shù)據(jù)庫采用Mysql數(shù)據(jù)庫,開發(fā)語言采用了最流行的Java語言進(jìn)行開發(fā),以下是整個軟件的整體架構(gòu)圖,Android前臺界面負(fù)責(zé)數(shù)據(jù)的采集和展示,Android端HTTP組件負(fù)責(zé)將前臺界面采集到的數(shù)據(jù)封裝成HTTP協(xié)議發(fā)到Servlet上,Servlet負(fù)責(zé)接收HTTP協(xié)議的數(shù)據(jù),然后解析,調(diào)用相應(yīng)的業(yè)務(wù)方法,Server端業(yè)務(wù)層負(fù)責(zé)從數(shù)據(jù)庫中采取數(shù)據(jù)交給Servlet,Servlet把封裝的json數(shù)據(jù)再發(fā)到HTTP組件,HTTP組件解析數(shù)據(jù),再發(fā)往前端進(jìn)行展示,如圖2所示。
2.2數(shù)據(jù)庫設(shè)計(jì)
2.2.1 數(shù)據(jù)庫中所需的各種表
2.2.2 數(shù)據(jù)庫概念模型和物理模型的設(shè)計(jì)
設(shè)計(jì)數(shù)據(jù)庫時,我們可以采用sybase公司的powerDesigner來進(jìn)行數(shù)據(jù)庫設(shè)計(jì),使用powerDsigner工具設(shè)計(jì)時,首先設(shè)計(jì)數(shù)據(jù)庫概念模型圖,它的功能和數(shù)據(jù)庫E-R圖十分類似,好處在于,可以使用powerDesigner工具輕松的轉(zhuǎn)成數(shù)據(jù)庫物理模型,然后再借助powerDesigner工具可以很輕松的生成SQL語句,從而大大方便開發(fā)。
2.3 詳細(xì)設(shè)計(jì)
2.3.1 服務(wù)器端數(shù)據(jù)庫工具類設(shè)計(jì)
為了更好的和數(shù)據(jù)庫交互,減少開發(fā)工作量,我們對數(shù)據(jù)庫操作冗余的代碼做了一定的封裝。這樣就沒必要頻繁的寫JDBC代碼了,從而提高了程序內(nèi)聚度。
2.3.2 各個業(yè)務(wù)Service的接口設(shè)計(jì)
接口在項(xiàng)目中就是一個業(yè)務(wù)邏輯,面向接口編程就是先把客戶的業(yè)務(wù)提取出來,作為接口。業(yè)務(wù)具體實(shí)現(xiàn)通過該接口的實(shí)現(xiàn)類來完成。當(dāng)客戶需求變化時,只需編寫該業(yè)務(wù)邏輯的新的實(shí)現(xiàn)類,通過更改配置文件(例如Spring框架)中該接口的實(shí)現(xiàn)類就可以完成需求,不需要改寫現(xiàn)有代碼,減少對系統(tǒng)的影響。 采用基于接口編程的項(xiàng)目,業(yè)務(wù)邏輯清晰,代碼易懂,方便擴(kuò)展,可維護(hù)性強(qiáng)。即使更換一批人員,新來的人依然可以快速上手。對于團(tuán)隊(duì)來說,意義更大。
2.3.3 各個服務(wù)接口的實(shí)現(xiàn)
在設(shè)計(jì)好接口之后,我們就可以編寫程序來實(shí)現(xiàn)各個接口了。在這個過程中我們也體會到了協(xié)同工作的效率。我們幾個開發(fā)人員就可以并行的進(jìn)行開發(fā),然后再把代碼提交到Svn代碼管理工具上,從而很大程度上提高了工作效率。
2.3.4 各個服務(wù)所對應(yīng)的Servlet的編寫
Servlet的主要功能在于交互式地瀏覽和修改數(shù)據(jù),生成動態(tài)Web內(nèi)容。這個過程為:1)客戶端發(fā)送請求至服務(wù)器端;2)服務(wù)器將請求信息發(fā)送至Servlet;3)Servlet生成響應(yīng)內(nèi)容并將其傳給服務(wù)器。響應(yīng)內(nèi)容動態(tài)生成,通常取決于客戶端的請求;4)服務(wù)器將響應(yīng)返回給客戶端,如圖3所示。
一個servlet就是Java編程語言中的一個類,它被用來擴(kuò)展服務(wù)器的性能,服務(wù)器上駐留著可以通過“請求-響應(yīng)”編程模型來訪問的應(yīng)用程序。雖然servlet可以對任何類型的請求產(chǎn)生響應(yīng),但通常只用來擴(kuò)展Web服務(wù)器的應(yīng)用程序。
2.3.5 GoGoGo數(shù)據(jù)編碼問題的解決
我們把安卓數(shù)據(jù)客戶端所獲取的數(shù)據(jù)通過HTTP協(xié)議傳送到服務(wù)器端,由Servlet來獲取數(shù)據(jù),由于Tomcat默認(rèn)編碼是ISO8859-1,因此在后臺獲取中文數(shù)據(jù)時會遇到亂碼。解決辦法是:1)要重寫HttpServletRequestWrapper下面的getParameter()方法,在這個方法對獲取到的數(shù)據(jù),重新用UTF-8編碼。
2)在Filter中對每個請求過濾,調(diào)用HttpServletRequsetWrapper重寫的getParameter()方法,再把請求傳說出去,就完成了過濾請求,如圖4所示。
2.3.6 前臺和后臺數(shù)據(jù)交互的問題
Android前臺發(fā)送數(shù)據(jù)給服務(wù)器后臺應(yīng)用程序(Servlet),Servlet處理后,要給前臺返回?cái)?shù)據(jù),數(shù)據(jù)格式如何選擇將是一個非常重要的問題,因?yàn)镴SON(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式。易于閱讀和編寫,同時也易于機(jī)器解析和生成。所以我們采用了json作為前后臺數(shù)據(jù)交換的數(shù)據(jù)格式。
2.3.7 前臺向后臺如何傳送數(shù)據(jù)問題
我們編寫了一個HTTP數(shù)據(jù)傳送工具,負(fù)責(zé)Android前臺和Server后臺的數(shù)據(jù)傳送。因?yàn)槭荋TTP協(xié)議是基于TCP協(xié)議的,所在Android前臺和Server建立連接需要進(jìn)行3次握手,連接建立成功后,才進(jìn)行傳送數(shù)據(jù)。當(dāng)釋放連接時,需要進(jìn)行4次握手才能釋放連接,如圖5所示。
2.3.8 數(shù)據(jù)加密問題
一個優(yōu)秀的軟件,在確保功能實(shí)現(xiàn)的同時,另外一個不得不考慮的問題便是如何保障用戶數(shù)據(jù)的安全,對于用戶重要的數(shù)據(jù),我們非常有必要對其進(jìn)行加密后再保存,現(xiàn)在比較流行的信息摘要算法有MD5和SHA1,對于這兩種算法,主流的編程語言都有對其實(shí)現(xiàn),因此用起來方便又安全。
2.4 旅游社交平臺測試
軟件測試是軟件開發(fā)環(huán)節(jié)中非常重要的一環(huán),軟件測試是幫助識別開發(fā)完成的計(jì)算機(jī)軟件的正確度、完全度和質(zhì)量的軟件過程;是SQA的重要子域。它主要包括單元測試,集成測試,系統(tǒng)測試,還有驗(yàn)收測試幾個大項(xiàng)。
2.4.1 單元測試
在單元測試環(huán)節(jié)中,Android端采用了Android自帶的單元測試工具AndroidTestCase,服務(wù)器端我們采用了Junit4測試工具,對每一個業(yè)務(wù)方法進(jìn)行了測試,確保正確后才進(jìn)行下一步開發(fā)。
2.4.2 集成測試
在單元測試通過的基礎(chǔ)上,我們將所有模塊按照設(shè)計(jì)要求組成子系統(tǒng),進(jìn)行集成測試,從而發(fā)現(xiàn)在單元測試中沒有發(fā)現(xiàn)的Bug,盡早的修改,降低項(xiàng)目風(fēng)險(xiǎn),主要使用的測試工具是Selenium.
2.4.3 系統(tǒng)測試
在集成測試完成的基礎(chǔ)上,我們完整的對旅游社交平臺進(jìn)行了系統(tǒng)測試,測試我們的功能是否達(dá)到了當(dāng)初的設(shè)計(jì)要求,測試其容錯能力和恢復(fù)能力。
2.4.4 測試結(jié)論
系統(tǒng)功能的測試結(jié)果顯示,基于安卓平臺旅游社交平臺能夠正常使用。各功能都可支持,滿足了預(yù)期設(shè)計(jì)。
3 結(jié)束語
經(jīng)過我們的努力,我們終于完成了一個簡易社交平臺的設(shè)計(jì)和開發(fā),基本上滿足了當(dāng)初的設(shè)計(jì)要求,能夠方便大學(xué)生的郊游和交友的需求,總之項(xiàng)目還是比較成功的,但是也存在著一些不足,比如在軟件架構(gòu)設(shè)計(jì)上肯定達(dá)不到很高的水準(zhǔn),總之我們會繼續(xù)努力,爭取使其更加完美。
摘 要:安卓手機(jī)軟件的開發(fā)是根據(jù)用戶的需求建立起來的安卓軟件或者系統(tǒng)中的軟件的部分過程,安卓手機(jī)軟件的開發(fā)是一項(xiàng)主要包括需求上捕捉、需求的分析、以及設(shè)計(jì)、實(shí)現(xiàn)和測試的一個系統(tǒng)的工程。軟件一般是通過某種程序設(shè)計(jì)的語言來實(shí)現(xiàn)的,目前最常用的就是Java語言,通常采用軟件開發(fā)工具進(jìn)行開發(fā)。本文主要針對基于Java語言的安卓手機(jī)軟件開發(fā)進(jìn)行研究。
關(guān)鍵詞:Java語言;安卓手機(jī);軟件開發(fā)
1 安卓軟件應(yīng)用程序
總體來說,一般比較簡單的安卓應(yīng)用程序主要由Activity、Content Provider、Service、Intent等部分組成,其中Activity相對于其他的應(yīng)用程序?qū)υ捒蚧蛘咂渌木W(wǎng)絡(luò)應(yīng)用程序的頁面窗口來說,安卓手機(jī)提供多個使用的數(shù)據(jù)存儲,同時他也被設(shè)計(jì)成為獨(dú)立的可以保持自己在后臺運(yùn)行的服務(wù),Intent是在運(yùn)行的時候自動保存的機(jī)制,用來具體的描述一個程序想要作一件什么事情、從一個活動跳到另外一個活動,對于Intent來說,各個活動之間的切換是很方便的。
2 安卓手機(jī)軟件的架構(gòu)
2.1 應(yīng)用程序
安卓手機(jī)軟件會跟同一系列的核心的應(yīng)用程序一起,該應(yīng)用的程序還包括一些客戶端,短消息的程序,日歷、地圖、瀏覽器等等的管理程序,所有的應(yīng)用的程序都是利用Java語言來進(jìn)行編寫的。Java最大的特性就是提高了交互的可能性。
2.2 應(yīng)用程序的框架
開發(fā)的人員可以完全的訪問核心的應(yīng)用的程序所使用的主要的框架,該程序的框架的設(shè)計(jì)簡化了的一些重組的組件的使用的頻率,在任何的時候一個應(yīng)用程序可以同時的出它的功能并且在任何的時候都能夠?qū)⑵渌膽?yīng)用程序使用其主要的的功能性質(zhì)的模塊,不過得主要遵循框架的安全性的主要的限制。同時,還要將這些使用的機(jī)制也可以使用戶也可以方便的替換主要的應(yīng)用程序。
2.3 程序庫
安卓手機(jī)包括C語言的程序,這些程序能夠?qū)沧肯到y(tǒng)中的不同的組件的使用,他們還能夠通過安卓的應(yīng)用程序的框架為其主要的開發(fā)者提供服務(wù)。這個程序庫里面的主要的內(nèi)容就是Java語言的應(yīng)用。
2.4 運(yùn)行庫
安卓系統(tǒng)的主要的運(yùn)行庫包括了一個核心的庫,這個核心的庫提供了Java的一些編程的語言的核心的大多數(shù)的主要的功能。安卓的手機(jī)軟件的核心的服務(wù)的系統(tǒng)主要依賴Java的編程的語言,比如說安全性、內(nèi)存的管理、進(jìn)程上的管理等等的性質(zhì),主要的網(wǎng)絡(luò)上的協(xié)議和驅(qū)動的模塊,他都占有一個很大的比重。Java同時也作為硬件和軟件之間的抽象的核心層面來存在。
3 Java語言的特點(diǎn)
3.1 面向?qū)ο?
面向?qū)ο笃鋵?shí)是現(xiàn)實(shí)世界模型的自然延伸?,F(xiàn)實(shí)世界中任何實(shí)體都可以看作是對象。對象之間通過消息相互作用。另外,現(xiàn)實(shí)世界中任何實(shí)體都可歸屬于某類事物,任何對象都是某一類事物的實(shí)例。如果說傳統(tǒng)的過程式編程語言是以過程為中心以算法為驅(qū)動的話,面向?qū)ο蟮木幊陶Z言則是以對象為中心以消息為驅(qū)動。用公式表示,過程式編程語言為:程序=算法+數(shù)據(jù);面向?qū)ο缶幊陶Z言為:程序=對象+消息。
所有面向?qū)ο缶幊陶Z言都支持三個概念:封裝、多態(tài)性和繼承,Java也不例外?,F(xiàn)實(shí)世界中的對象均有屬性和行為,映射到計(jì)算機(jī)程序上,屬性則表示對象的數(shù)據(jù),行為表示對象的方法(其作用是處理數(shù)據(jù)或同外界交互)。所謂封裝,就是用一個自主式框架把對象的數(shù)據(jù)和方法聯(lián)在一起形成一個整體。可以說,對象是支持封裝的手段,是封裝的基本單位。Java語言的封裝性較強(qiáng),因?yàn)镴ava無全程變量,無主函數(shù),在Java中絕大部分成員是對象,只有簡單的數(shù)字類型、字符類型和布爾類型除外。而對于這些類型,Java也提供了相應(yīng)的對象類型以便與其他對象交互操作。
3.2 可靠性和安全性
Java最初設(shè)計(jì)目的是應(yīng)用于電子類消費(fèi)產(chǎn)品,因此要求較高的可靠性。Java雖然源于C++,但它消除了許多C++不可靠因素,可以防止許多編程錯誤。首先,Java是強(qiáng)類型的語言,要求顯式的方法聲明,這保證了編譯器可以發(fā)現(xiàn)方法調(diào)用錯誤,保證程序更加可靠;其次,Java不支持指針,這杜絕了內(nèi)存的非法訪問;第三,Java的自動單元收集防止了內(nèi)存丟失等動態(tài)內(nèi)存分配導(dǎo)致的問題;第四,Java解釋器運(yùn)行時實(shí)施檢查,可以發(fā)現(xiàn)數(shù)組和字符串訪問的越界,最后,Java提供了異常處理機(jī)制,程序員可以把一組錯誤代碼放在一個地方,這樣可以簡化錯誤處理任務(wù)便于恢復(fù)。
由于Java主要用于網(wǎng)絡(luò)應(yīng)用程序開發(fā),因此對安全性有較高的要求。如果沒有安全保證,用戶從網(wǎng)絡(luò)下載程序執(zhí)行就非常危險(xiǎn)。Java通過自己的安全機(jī)制防止了病毒程序的產(chǎn)生和下載程序?qū)Ρ镜叵到y(tǒng)的威脅破壞。當(dāng)Java字節(jié)碼進(jìn)入解釋器時,首先必須經(jīng)過字節(jié)碼校驗(yàn)器的檢查,然后,Java解釋器將決定程序中類的內(nèi)存布局,隨后,類裝載器負(fù)責(zé)把來自網(wǎng)絡(luò)的類裝載到單獨(dú)的內(nèi)存區(qū)域,避免應(yīng)用程序之間相互干擾破壞。最后,客戶端用戶還可以限制從網(wǎng)絡(luò)上裝載的類只能訪問某些文件系統(tǒng)。
上述幾種機(jī)制結(jié)合起來,使得Java成為安全的編程語言。
4 安卓手機(jī)軟件系統(tǒng)的開發(fā)優(yōu)勢
企業(yè)為什么要開發(fā)安卓手機(jī)軟件,不僅僅是因?yàn)樗袕?qiáng)大的谷歌作為后盾,并且還開放了軟件開發(fā)的組件,可以將第三方的開源的主要的社區(qū)方便快捷的開發(fā)眾多的實(shí)用性的安卓手機(jī)應(yīng)用程序,而且他還與手機(jī)產(chǎn)業(yè)鏈中最具有影響力的龍頭性的公司進(jìn)行聯(lián)合,建立非常標(biāo)準(zhǔn)的、開放化的通信的軟件的平臺,也就是說只要是采用安卓操作系統(tǒng)的主要的平臺,就是基本上不受硬件的限制,程序的主要的可移植性能比較好,能夠很好的解決當(dāng)前的由于眾多的手機(jī)操作系統(tǒng)的不同而造成的不同的智能手機(jī)之間的格式不一樣從而造成不同的手機(jī)之間不能進(jìn)行信息交流的問題。
安卓手機(jī)在中國的應(yīng)用前景十分的廣泛,首先是具有成熟的消費(fèi)者,在國內(nèi),安卓系統(tǒng)非常的好用,這些軟件的普及為了安卓系統(tǒng)的普及提供了主要的前提,國內(nèi)的一些主要的運(yùn)營商也加入了這個大家庭,比如說中國移動、中國聯(lián)通、中興通訊、華為通訊等等的一些比較大型的企業(yè),同時也不僅僅是手機(jī),我們國家也推出了安卓手機(jī)軟件的其他的一些產(chǎn)品,我們可以預(yù)見安卓系統(tǒng)被廣泛的應(yīng)用,同時也將進(jìn)一步擴(kuò)大安卓系統(tǒng)的應(yīng)用的主要的,同時根據(jù)目前的資料進(jìn)行分析,全國到目前為止已經(jīng)有23億部的移動的設(shè)備使用安卓軟件,其中手機(jī)占有百分之六十。
安卓系統(tǒng)在中國掀起的浪潮讓越來越多的企業(yè)認(rèn)識到移動設(shè)備對于中國產(chǎn)業(yè)的影響,企業(yè)安卓客戶端的開發(fā)也受到了企業(yè)的一些關(guān)注,目前來說我們國家手機(jī)軟件開發(fā)正處于高速增長的階段經(jīng)過一路的研究和探索和經(jīng)驗(yàn)的總結(jié),涌現(xiàn)了一大批的致力于開發(fā)的互聯(lián)網(wǎng)的在線的傳播的解決的方案的主要的運(yùn)營商,主要是將手機(jī)應(yīng)用軟件的開發(fā)和推廣,移動互聯(lián)應(yīng)用開發(fā)以及涉及安卓的手機(jī)平臺,智能手機(jī)的應(yīng)用開發(fā)的服務(wù)已經(jīng)涵蓋了很多的地方。安卓手機(jī)軟件能夠?qū)崿F(xiàn)互交形式的完成,并且以此來為企業(yè)提供互聯(lián)網(wǎng)的應(yīng)用的解決的方案。
5 結(jié)束語
隨著社會的發(fā)展,科技的創(chuàng)新腳步也越來越快,手機(jī)也慢慢的進(jìn)入我們的視野之中,成為了我們生活中的必不可少的一些物品,隨著Java語言在手機(jī)領(lǐng)域中的開發(fā),手機(jī)上的軟件大部分都是在他的基礎(chǔ)上進(jìn)行開發(fā)的,在其應(yīng)用開發(fā)中應(yīng)用也十分廣泛,也依然占有著不可或缺的地位。