基于Android的傳感器技術(shù)應用開發(fā) 畢業(yè)設(shè)計_第1頁
基于Android的傳感器技術(shù)應用開發(fā) 畢業(yè)設(shè)計_第2頁
基于Android的傳感器技術(shù)應用開發(fā) 畢業(yè)設(shè)計_第3頁
基于Android的傳感器技術(shù)應用開發(fā) 畢業(yè)設(shè)計_第4頁
基于Android的傳感器技術(shù)應用開發(fā) 畢業(yè)設(shè)計_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、目錄目錄 摘摘要要 -i abstract-ii 引言引言-1 1緒論緒論-2 1.1研究背景與意義-2 1.2國內(nèi)外智能手機應用程序現(xiàn)狀研究-3 1.3研究目的及項目背景介紹-3 1.4論文的研究內(nèi)容和結(jié)構(gòu)安排-3 1.4.1論文內(nèi)容概述-3 1.4.2論文內(nèi)容結(jié)構(gòu)安排-4 1.5小結(jié)-4 2基于基于 android 的傳感器技術(shù)研究的傳感器技術(shù)研究 -5 2.1android 簡述 -5 2.1.1android平臺簡介-5 2.1.2android開發(fā)框架-5 2.1.3android應用程序組件-6 2.1.4android軟件開發(fā)的優(yōu)點及缺點-8 2.1.5basic4android

2、開發(fā)環(huán)境的搭建-9 2.1.6運用basic4android軟件的優(yōu)勢-10 2.2傳感器概念與分類 -11 2.2.1傳感器的概念-11 2.2.2傳感器的分類-11 2. 3傳感器在智能手機中的應用-11 2. 4android 平臺傳感器的種類-12 2.4.1加速傳感器(重力傳感器)accelerometer -13 2.4.2姿態(tài)傳感器orientation -14 2. 5傳感器的使用方法-15 2.5.1加速度傳感器的調(diào)用(phoneaccelerometer)-15 2.5.2方向傳感器的調(diào)用(phoneorientation) -15 2.6b4a-bridge 軟件的使用-

3、16 2.7小結(jié) -17 3游戲程序設(shè)計架構(gòu)詳解游戲程序設(shè)計架構(gòu)詳解-18 3.1程序開發(fā)背景與功能簡介 -18 3.1.1程序開發(fā)背景簡介-18 3.1.2游戲功能簡介-18 3.2游戲開發(fā)平臺及工作準備 -19 3.2.1游戲開發(fā)平臺-19 3.2.2游戲相關(guān)素材-19 3.3游戲整體詳細框架 -19 3.3.1游戲的功能模塊詳解-19 3.3.2游戲具體包含實體模塊-21 3.3.3mvc設(shè)計模式介紹-22 3.3.4游戲設(shè)計規(guī)劃過程-23 3.3.5游戲各個模塊設(shè)計詳解-23 3.4游戲設(shè)計中的狀態(tài)機 -25 3.5小結(jié) -25 4游戲源程序開發(fā)游戲源程序開發(fā)-26 4.1傳感器游戲開

4、發(fā)流程 -26 4.2游戲開發(fā)實現(xiàn)過程的主要技術(shù)實現(xiàn) -26 4.2.1android靜態(tài)圖片的訪問-26 4.2.2android動態(tài)圖片的訪問-27 4.2.3圖像色彩顯示-27 4.2.4碰撞檢測實現(xiàn)-28 4.3核心庫文件的詳細解讀 -29 4.3.1gameview-29 4.3.2phone -30 4.3.3audio-32 4.4游戲測試 -33 4.4.1游戲測試環(huán)境-33 4.4.2游戲測試結(jié)果-33 4.5本章總結(jié) -33 5總結(jié)與展望總結(jié)與展望 -34 5.1論文總結(jié) -34 5. 2未來展望-34 致謝致謝-35 參考文獻參考文獻 -36 摘要摘要 隨著科學技術(shù)的發(fā)展

5、,人們的溝通方式發(fā)生了翻天覆地的變化,對手機的需求 也不在局限于傳統(tǒng)的語音、短信功能,而是要求成為具有越來越完備和強大的應用 數(shù)據(jù)處理能力,如移動辦公、網(wǎng)上購物、互聯(lián)網(wǎng)游戲、地圖導航、隨身數(shù)字影院、 在線音樂等等兼?zhèn)涞闹悄艿氖殖纸K端。在現(xiàn)實生活中,智能手機硬件以及軟件開發(fā) 商也正是朝著這個目標進行技術(shù)和產(chǎn)品的創(chuàng)新。因此也就出現(xiàn)了幾大陣營的智能手 機操作系統(tǒng),目前使用最為廣泛的是 apple 公司的 ios,microsoft 的 windows phone,以及現(xiàn)在正在迅速崛起的 google 公司推出的基于 linux 內(nèi)核的開源智能手 機操作系統(tǒng)android。 根據(jù) google 公司的

6、統(tǒng)計數(shù)據(jù),android 設(shè)備每日實際激活量約達 65 萬臺,該系 統(tǒng)正在如火如荼的壯大。基于 android 系統(tǒng)的各種手機硬件及軟件研發(fā)已然成為一 種趨勢。作為近些年智能手機操作系統(tǒng)中的佼佼者之一,google 公司發(fā)布的 android 系統(tǒng)正在趨于成熟,并憑借其自身強大的開源優(yōu)勢成為廠商在手機硬件和應 用研發(fā)中的首選。android 系統(tǒng)平臺有功能強大的傳感器接口,這些接口為開發(fā)各類 手機傳感器應用(apps)提供了便利的途徑。 本文通過介紹基于 android 系統(tǒng)平臺的傳感器應用游戲的設(shè)計與開發(fā)過程,闡 述當前流行傳感器應用程序在 android 智能手機操作系統(tǒng)中的實現(xiàn)過程及涉及

7、的技 術(shù)要點。利用姿態(tài)傳感器設(shè)計一款游戲應用程序,從而全面的學習并實踐傳感器在 游戲開發(fā)過程中的使用。該程序中主要運用到的技術(shù)有傳感器應用技術(shù)、游戲應用 程序界面設(shè)計。 關(guān)鍵詞:智能手機;android;傳感器;游戲開發(fā) abstract with the development of science and technology, the way people communicate has undergone enormous changes. they are no longer just confined to the traditional voice and text messag

8、ing function level, but require the phone has become more and more complete and powerful application processing capabilities. such as mobile office, online shopping, internet games, map navigation, online music. smart phones and application software developers are towards this objective technical an

9、d product research and development. the most widely used is the u.s. apples iphone operating system and microsoft windows phone mobile operating system. the open source linux kernel android smartphone operating system is rapidly emerging. android smartphone operating system platform has a powerful s

10、ensor interface, such as orientation sensor, accelerometer sensor, light sensor, magnetic field sensor, ambient temperature sensor, gravity sensor, gyroscope sensor, pressure sensor, proximity sensor, temperature sensor and rotation vector sensor etc. these all types of mobile sensor provide a conve

11、nient way for the development of applications. this paper introduces a sensor application game design based on the android smartphone operating system. learning how the popular smartphone operating system sensor applications develop. keywords:smart phones;sensor;games;android 引言引言 正是科學技術(shù)的發(fā)展帶來了各種各樣便捷

12、的生活方式,同時人們對于生活質(zhì)量 的要求也越來越高,特別是對于移動互聯(lián)網(wǎng)時代的終端要求伴隨技術(shù)水平的提高而 水漲船高。傳統(tǒng)的軟、硬件模式已經(jīng)被人們所摒棄,新的創(chuàng)新型產(chǎn)品越來越深入到 生活的方方面面。 手機現(xiàn)在成為了每一個人出門必備的隨身物品,所以人們對其的要求也越來越 高。google 公司的 android 操作系統(tǒng)就是一個非常開放與優(yōu)秀的智能手機操作平臺, 其強大應用接口可以為程序的開發(fā)提供非常便利的條件。 本次的畢業(yè)設(shè)計基于 android 的傳感器技術(shù)應用開發(fā)就是以 basic4android 搭建開發(fā)環(huán)境,利用 android 平臺提供的硬件實現(xiàn)傳感器游戲的開發(fā),從而對于傳 感器進行

13、深入的研究與學習。 本文分為 5 個章節(jié)詳細的介紹了從開始想法的萌生到開發(fā)完成的所有步驟。第 1 章是緒論,主要介紹研究背景、意義等基本情況;第 2 章對應用程序項目涉及的 具體相關(guān)技術(shù)進行介紹;第 3 章是系統(tǒng)詳細分析設(shè)計,介紹項目程序的系統(tǒng)設(shè)計框 架、程序功能以及程序各個模塊;第 4 章是程序的詳細開發(fā)設(shè)計過程研究、源程序代 碼開發(fā)以及測試。在這一章中將會對游戲程序的詳細開發(fā)流程、各個模塊的具體實 現(xiàn)過程、遇到的技術(shù)難點等進行詳細的分析與介紹,其中包括程序中的姿態(tài)傳感器 模塊算法開發(fā)、應用程序測試等等;第 5 章是總結(jié)與展望,將會對論文研究的結(jié)果進 行總結(jié)并且對未來該方向的發(fā)展趨勢加以展望

14、。 1緒論緒論 在移動互聯(lián)網(wǎng)時代,一次次的科學技術(shù)的發(fā)展,必將帶來前所未有的挑戰(zhàn)與機 遇,新的科學技術(shù)成果將為人類的文明史劃下濃墨重彩的一筆。美國 google 公司推 出的 android 系統(tǒng)就扮演著這樣的角色,它已經(jīng)改變了人們的傳統(tǒng)的生活方式。本 章將簡要介紹該系統(tǒng)的演進史,再對研究的背景及意義簡要的介紹,并對于論文的 基本內(nèi)容做了簡要的安排。 1.1研究背景與意義研究背景與意義 隨著科學技術(shù)水平的不斷迭代更新,人們的工作、生活方式正在悄然發(fā)生變化。 在移動互聯(lián)網(wǎng)時代,高速的生活節(jié)奏、海量的數(shù)據(jù)信息每天伴隨在我們的身邊。尤 其在智能手機終端出現(xiàn)以后,這一現(xiàn)象隨處可見,地鐵、公交、餐廳等等

15、地方,人 們越來越多的時間花在了移動手持終端之上,這使得傳統(tǒng)的桌面式辦公方式、消費 模式、游戲娛樂體驗發(fā)生了顛覆性的改變?,F(xiàn)在的智能手機終端也越來越趨于智能 化、人性化,功能越來越完善和強大。全球的各大廠商正在努力的進行技術(shù)研發(fā)與 應用創(chuàng)新。在目前智能手機終端領(lǐng)域比較流行的操作系統(tǒng)主要有:微軟(microsoft)研 發(fā)的 windows phone 智能手機操作系統(tǒng)、美國蘋果(apple)公司的 iphone 智能手機操 作系統(tǒng)、谷歌(google)公司研發(fā)推出的基于 linux 內(nèi)核自由及開放源代碼的智能手機 操作系統(tǒng)android。由于自由及開放源代碼的優(yōu)勢使得 android 智能手機

16、操作系 統(tǒng)在過去的時間里迅猛的發(fā)展起來,倍受全球手機硬件廠商和軟件研發(fā)人員青睞。 本文將論述的 android 游戲開發(fā)就該種,基于 linux 內(nèi)核自由及開放源代碼的 以手持終端為載體的智能操作系統(tǒng)平臺下的應用程序開發(fā)。自谷歌(google)公司 2007 年 11 月 5 日正式向外界展示了這款名為 android 的操作系統(tǒng)后,從最初的阿童 木(android beta)、發(fā)條機器人(android 1.0)到紙杯蛋糕 cupcake (android 1.5)、甜甜 圈 donut (android 1.6)、松餅 eclair (android 2.0/2.1)、凍酸奶 froyo

17、(android 2.2)、 姜餅 gingerbread (android 2.3)、蜂巢 honeycomb (android 3.0)、冰激凌三明治 ice cream sandwich (android 4.0)、果凍豆 jelly bean (android4.1 和 android 4.2)以及在 不久的將來要發(fā)布的青檸派 key lime pie (android5.0),經(jīng)過各個版本的更迭改善使 得絕大部分組件功能都不需要經(jīng)過授權(quán)而可以直接為開發(fā)人員所利用。軟件研發(fā)者 開發(fā)的軟件可以被上傳到谷歌應用商店(google play)之上供人們下載使用,達到資 源共享的目的。正是這樣

18、的原因極大的促進了 android 智能手機操作系統(tǒng)以及其產(chǎn) 業(yè)鏈的蓬勃發(fā)展,手機硬件廠商、軟件研發(fā)機構(gòu)和個人大量的投入到這個產(chǎn)業(yè)當中。 基于 android 的手機硬件產(chǎn)品層出不窮,各個廠商打造屬于自己的基于 android 的 智能手機操作系統(tǒng),軟件開發(fā)人員運用開放與自由的平臺開發(fā)擁有個性化應用的軟 件程序,一股 android 之風正在席卷全球。 1.2國內(nèi)外智能手機應用程序現(xiàn)狀研究國內(nèi)外智能手機應用程序現(xiàn)狀研究 由于 android 系統(tǒng)本身所自帶的強大的應用程序接口(api)功能,這就為人們開 發(fā)各種類型的應用提供便利的技術(shù)應用基礎(chǔ)?,F(xiàn)在,市面上圍繞 android 的智能手 機操作

19、系統(tǒng)己經(jīng)開發(fā)出五花八門的應用程序,如移動辦公程序、互聯(lián)網(wǎng)游戲程序等 等。在傳統(tǒng) pc 桌面以及 web 應用程序開發(fā)日趨成熟的狀況下,基于智能手機的移 動互聯(lián)網(wǎng)應用程序開發(fā)是當前軟件研發(fā)的又一個春天,智能手機操作系統(tǒng)的發(fā)展更 為移動互聯(lián)網(wǎng)時代的快速發(fā)展帶來前所未有契機。 在對手機的應用程序功能需求上,人們的要求也越來越有品位與個性化。傳統(tǒng) 的手機軟件已經(jīng)不再能夠滿足人們?nèi)找嬖鲩L的互聯(lián)網(wǎng)服務需求。相應產(chǎn)生的是能夠 滿足更多需求的綜合性智能手機應用程序,比如說百度地圖(baidu map)能夠在提供 地圖服務的基礎(chǔ)上為人們提供便捷的本地生活服務提供周邊餐飲美食、休閑娛樂、 酒店購物等海量商戶信息,

20、包括商戶電話、地址地圖、客觀點評等免費下載優(yōu)惠券, 還可享受最新鮮的團購折扣信息;智能出行規(guī)劃擁有強大的路線查詢及規(guī)劃能力, 支持公交、駕車、步行、 地鐵四種出行方式,提供路線方案和打車費用; 隨時隨 地查看實時路況,提前規(guī)劃出行計劃等等。當然越來越高的技術(shù)難點就會出現(xiàn)在研 發(fā)人員的面前,比如 3d 效果顯示技術(shù),大數(shù)據(jù)的分析技術(shù)等等。本論文正是在這 樣的大背景之下,研究利用手機的傳感器設(shè)計出來一個小型游戲軟件,從而對于 android 程序的開發(fā)過程做一了解。 1.3研究目的及項目背景介紹研究目的及項目背景介紹 伴隨著移動互聯(lián)網(wǎng)技術(shù)的更迭和大數(shù)據(jù)時代的到來,相關(guān)的應用程序也在不斷 的演進,各

21、種領(lǐng)域的學者都在關(guān)注著該領(lǐng)域的每一步發(fā)展。從谷歌公司(google)開始 發(fā)布基于 linux 內(nèi)核的自由開放源代碼的 android 智能手機操作系統(tǒng)以來,各大個 人、高校以及研究機構(gòu)紛紛投入與其相關(guān)領(lǐng)域進行研究。本文中將會介紹基于 android 操作系統(tǒng)的傳感器應用程序開發(fā)游戲的全過程,通過開發(fā)中不斷出現(xiàn)問題、 解決問題的過程,從而對 android 平臺應用程序的開發(fā)有一個全面的了解,為以后 的進一步拓展學習打下堅實的基礎(chǔ)。更多的是學會去提出問題,解決問題的方法, 繼而從容面對以后工作中遇到的更多的難題。 1.4論文的研究內(nèi)容和結(jié)構(gòu)安排論文的研究內(nèi)容和結(jié)構(gòu)安排 1.4.1論文內(nèi)容概述論

22、文內(nèi)容概述 本論文主要對基于 android 的傳感器技術(shù)應用進行深入的研究,通過開發(fā)一款 比較簡單常見的傳感器小型游戲的整體設(shè)計與實現(xiàn)過程,學習傳感器技術(shù)在 android 智能手機操作系統(tǒng)中的綜合應用。游戲程序主要是利用姿態(tài)傳感器技術(shù)和主要的素 材模塊實現(xiàn),通過調(diào)整手機姿態(tài)來實時控制游戲主角的彈跳軌跡,從而到達更高平 臺,獲取更高的分數(shù),游戲具有很高的操作性與可玩性。 1.4.2論文內(nèi)容結(jié)構(gòu)安排論文內(nèi)容結(jié)構(gòu)安排 本文分為 5 個章節(jié),第 1 章是緒論,主要介紹論文研究背景、意義等情況;第 2 章對應用程序項目涉及的具體相關(guān)技術(shù)進行介紹;第 3 章是系統(tǒng)詳細分析設(shè)計, 介紹項目程序的系統(tǒng)設(shè)計

23、框架、程序功能以及程序各個模塊;第 4 章是程序的詳細 開發(fā)設(shè)計過程研究、代碼開發(fā)以及測試,在這一章中將會對游戲程序的詳細開發(fā)流 程、各個模塊的具體實現(xiàn)過程、遇到的技術(shù)難點等知識點進行詳細的分析與介紹, 其中包括程序中的姿態(tài)傳感器模塊開發(fā)算法、應用程序測試等等;第 5 章是綜述,將 會對論文研究的結(jié)果進行總結(jié)并且對未來的發(fā)展趨勢加以展望。 1.5小結(jié)小結(jié) 本章是論文的緒論部分,主要介紹了論文的研究意義、國內(nèi)外研究現(xiàn)狀,對論 文的撰寫架構(gòu)做了簡要的說明。最后對論文中涉及的項目程序的開發(fā)技術(shù)背景知識 進行了介紹,這些在下一章當中進行詳細的介紹與分析。 2基于基于 android 的傳感器技術(shù)研究的

24、傳感器技術(shù)研究 緒論對于文章的研究背景做了介紹,這一章將針對 android 的平臺和程序設(shè)計 過程中用到的傳感器知識進行深入的探討,并將 basic4android 相關(guān)的要點進行重點 的闡述。 2.1android 簡述簡述 2.1.1android 平臺簡介平臺簡介 android 的本義是“機器人” ,是 google 公司 2007 年 11 月 5 日正式面世,基于 linux 平臺的開放源代碼的操作系統(tǒng),它很好的整合了操作系統(tǒng)、中間件、用戶界 面和應用軟件,可以為移動終端打造開放完整的移動程序軟件。 android 是一個嶄新的手機操作系統(tǒng)平臺,在以 google 為首的 40

25、多家開放手機 聯(lián)盟(oha)支持下,使用開放源碼策略,平臺全部以開源的項目來構(gòu)建,是完全開 放的智能終端操作系統(tǒng)平臺。android 系統(tǒng)的快速發(fā)展使得移動終端的發(fā)展趨向于多 元化,其強大的網(wǎng)絡功能及整合 google 網(wǎng)絡服務優(yōu)勢,使得 android 在移動技術(shù)發(fā) 展方面有著光明的前景趨勢。目前 android 已由剛開始的 android 1.0 版本經(jīng)過多個 版本的演進與升級,發(fā)展到現(xiàn)在的 android4.1、android4.2 版本,不久的將來會發(fā) 布的 android4.5 版本,其平臺應用方面更加趨于完備和成熟。 2.1.2android 開發(fā)框架開發(fā)框架 和其他的智能手機操

26、作系統(tǒng)一樣,android 操作系統(tǒng)也有自己的一套運行機制和 開發(fā)框架,如圖 1.1 所示: 應用層程序 應用程序架構(gòu) 應用庫 核心庫 da1vik 虛擬機 linux 內(nèi)核 圖 1-1android 框架 由于 android 系統(tǒng)的體系架構(gòu)采用類似于 osi 的開放式系統(tǒng)互聯(lián)參考模型的分 層架構(gòu),分層的好處是下層可以為上層提供統(tǒng)一的服務,這樣能夠屏蔽本層及以下 層的差異,當本層及以下層發(fā)生了變化不會影響到上一層;也就說高層各司其職, 各層提供各自獨有的服務。 a.應用程序 android 應用程序?qū)儆谡麄€框架的最頂層,也是開發(fā)人員進行設(shè)計開發(fā)應用以及 終端用戶體驗使用直接接口。該層包含大量

27、本身配置的一套應用程序子集,如短信 收發(fā)、日歷查詢、google map、web 瀏覽器、e-mail 客戶端等等常用工具組件,以 及基于 android 平臺的應用程序框架,該層是使用 java 語言開發(fā)的。 b.應用程序框架 android 應用程序框架主要包括系統(tǒng)中與用戶進行交互的一些管理組件,如 activity、窗體、電話、包和視圖管理等等,這些框架的使用可簡化和充當應用程序 的組件。在應用程序框架這一層,充分體現(xiàn)了各個組件的重用性能,也就是說任何 的應用組件不但可以獨立發(fā)布自己的應用,也可以發(fā)布其他具有組合功能的應用程 序。因此,通過該應用程序框架,用戶自定義的程序不但可以執(zhí)行用戶

28、程序之外的 預設(shè)功能,也可以執(zhí)行其他附加的能使得軟件的復用性更高。 c.系統(tǒng)開發(fā)庫 android 系統(tǒng)的庫運行在 linux 內(nèi)核之上,應用程序框架層之下。該層由負責 android 運行時的核心庫、dalvik 虛擬機以及其他的一些常用的應用庫組成。這些核 心庫主要是 c/c+函數(shù)庫,而應用庫則是一些常用的應用開發(fā)庫,例如用于音頻、 視頻播放的媒體庫;用于管理界面顯示效果的外觀管理器;用于 2d 和 3d 圖形顯示 的 sgl 和 opengl 的圖形庫;用于本地數(shù)據(jù)庫支持的 sqlite;用于集成 web 瀏覽 器和 internet 安全的 ssl 和 webkit 等等。 d. li

29、nux 核心 android 的 linux 核心層位于其框架的最底層,該層雖說是基于 linux 核心,但 是發(fā)展到現(xiàn)在已經(jīng)和 linux 有了很大差別。該層用來提供系統(tǒng)的底層服務,包括安 全運行機制、內(nèi)存、進程、電源項的管理,網(wǎng)絡堆棧及所有驅(qū)動模塊。另外,內(nèi)核 還在硬件和軟件棧的部分提供了一個抽象層。android 系統(tǒng)框架發(fā)展到現(xiàn)在的狀況, 底層 linux 核心層已經(jīng)和標準的 linux 很大的區(qū)別,它的編程接口、系統(tǒng)庫等和標 準的 linux 系統(tǒng)已經(jīng)不同,它的文件系統(tǒng)并不是采用虛擬內(nèi)存文件系統(tǒng),而是采用 開源的、可移植性較好的 yaffs ( yet another flash f

30、ile system)文件系統(tǒng)。 2.1.3android 應用程序組件應用程序組件 進行 android 應用程序的開發(fā),我們必不可少的就是要了解其平臺的應用程序 框架。android 應用程序主要是由 activity、broadcast receiver、service 和 content provider 四大組件構(gòu)成。在 android 應用程序中,不一定要包括所有組件,開發(fā)人員 可根據(jù)實際需求進行選擇性的使用。但無論對哪個組件進行使用,都必須在 androidmanfest.xml 文件中進行注冊以后才能使用。 a.activity 組件 在 android 中最常見、也是最重要的

31、一個組件是 activity。它主要是負責終端屏 幕界面之間的跳轉(zhuǎn),為用戶提供一個可視化界面,也就是說我們用戶所看到的每一 個顯示界面就是一個 activity 組件。在進行程序開發(fā)的過程中所涉及到的全部功能 就是通過 activity 組件之間的相互銜接、跳轉(zhuǎn),再運用其自帶的強大控件功能和圖 層渲染等技術(shù)完成,從而最終形成優(yōu)美的顯示界面。任何一個 activity 類的使用都 是繼承自基類,并在 androidmanfest.xml 文件中進行注冊。activity 中包含有 3 個重 要的生命周期狀態(tài):運行狀態(tài)(running state)暫停狀態(tài)(pause state)和停止狀態(tài) (s

32、topped state)。對 activity 組件的調(diào)用基本上都是對這三個生命周期的使用。當 activity 在不同狀態(tài)進行切換時,就是通過重寫相應的回調(diào)的方法來執(zhí)行相應的動作, 圖 2-1 顯示的是 activity 生命周期的基本過程。 圖 2-1activity 生命周期 b.broadcast receiver 組件 broadcast receiver 組件主要負責接收外部的廣播消息并對消息做出適當反應。 在使用 android 系統(tǒng)的時候經(jīng)常會遇到許多各種類型的廣播,比如我們在玩游戲同 時,手機顯示有新的來電或者收到新的短信,由于優(yōu)先級的不同,這時這個系統(tǒng)就 必須對當前應用程

33、序進行中斷并響應新來電或短信,這些都需要系統(tǒng)響應。應用程 onrestart( ) oncreate( ) onstart( ) onresume() running stat e onpauese( ) paused state onstop( ) stopped stat e ondestroy( ) activity 創(chuàng)建 獲得焦點 失去焦點 失去焦點 銷毀退出 序需要對某些廣播事件進行響應,則需要注冊對應的 broadcast receiver 對象。 broadcast receiver 發(fā)布廣播和接收廣播是通過 intent 對象來完成,intent 可用于 activity 之間

34、的切換。broadcast receiver 組件的生命周期較為簡單,它只需 onreceiver 一個回調(diào)方法,在應用程序接收到廣播的時候調(diào)用即可。 c.service 組件 service 組件是與用戶沒有交互界面,運行于程序后臺的長生命周期組件,它繼 承自 service 類。service 組件運行于程序的后臺,因此任何不需要在前臺顯示的計 算或數(shù)據(jù)處理,都可以通過啟動 service 組件來實現(xiàn)。因此,我們可以認為 service 是一個默默在后臺支撐系統(tǒng)的各種程序,而自身卻始終沒有現(xiàn)身的幕后主角。一個 service 啟動之后會一直在后臺運行,直到自己的生命周期結(jié)束為止,即便在這期

35、間 啟動它的 activity 或是其他組件的生命周期己經(jīng)結(jié)束。與此同時,service 組件有兩 種啟動的方式,分別為 startservice 方式和 bindservice 方式。這兩種方式的區(qū)別是 bindservice 方式會將啟動 service 組件的組件,如 activity,進行綁定,當啟動 service 的組件消失時,它也會跟著一起停止運行。而 startservice 方式則不同,它會 一直在后臺運行到生命周期結(jié)束為止。 d.content provider 組件 該組件主要的功能是在不同的應用程序之間實現(xiàn)數(shù)據(jù)共享。android 系統(tǒng)應用程 序擁有各自獨立的存儲空間,

36、這樣如果一個程序要訪問其他程序的數(shù)據(jù)或者向外部 程序提供數(shù)據(jù),則需要 content provider 組件來完成。在 android 平臺中,應用程序 數(shù)據(jù)可以被存儲為 sqlite 數(shù)據(jù)庫文件、android 系統(tǒng)文件或者其他合法的文件類型。 content provider 為應用程序提供了一組標準的訪問方式,用于在程序需要時能夠訪 問這些數(shù)據(jù),實現(xiàn)數(shù)據(jù)共享。 2.1.4android 軟件開發(fā)的優(yōu)點及缺點軟件開發(fā)的優(yōu)點及缺點 a.android 應用開發(fā)的優(yōu)勢 android 平臺的開放性:開放性對其迅速的風靡全球有不可磨滅的功勞。谷歌公 司把 android 系統(tǒng)開放給廣大軟、硬件廠

37、商、軟件研發(fā)人員以及普通用戶,為 android 平臺積累了眾多的人氣和關(guān)注度。大家可以通過 google 的 google play 平臺 下載應用軟件并且上傳自己設(shè)計開發(fā)的程序,這樣的開放方式促進 android 平臺不 斷的發(fā)展和完善,也有利于促進軟件行業(yè)的競爭,同時為大家提供了非常豐富的軟 件資源。 良好的兼容性:android 平臺的兼容性,使 android 手機上的各種應用開發(fā)百花 齊放,各種各樣創(chuàng)新的設(shè)計以及產(chǎn)品應運而生,雖然這些基于 android 平臺上開發(fā) 的應用程序功能特色各異、用途各不相同,在不同手機廠商的硬件版本中,卻實現(xiàn) 數(shù)據(jù)同步,軟、硬件高度兼容的情況,這些是得

38、力于手機聯(lián)盟(oha)對 android 平 臺的大力支持。 高度融合 google 服務:android 系統(tǒng)另一個特點就是整合了 google 服務的特色 功能,如 google map、e-mail、搜索功能等,這些極大的方便廣大開發(fā)者以及手機 用戶。 b.android 應用開發(fā)存在的不足 android 版本更新過于頻繁。自從 2007 年 android1.0 版本正式面世以來,中間 經(jīng)歷了許多的版本的更迭,雖然這樣說明了 android 發(fā)展的勢頭,但同時版本更新 過于密集,也會讓開發(fā)人員和用戶感到不適,系統(tǒng)及軟件的升級維護有一定的麻煩, 無形中增加了一定的使用成本。 由于 an

39、droid 虛擬機 dalvik vm 對硬件配置資源的要求比較高,相應的開發(fā)所 需硬件配置成本比其他開發(fā)環(huán)境要求有所提高。 為了平臺的安全性考慮,google 公司在該平臺使用開發(fā)時設(shè)置了較多的權(quán)限控 制,導致了任務管理器、虛擬按鍵、屏幕截圖、短信防火墻等類似功能的實現(xiàn)步驟 相當繁瑣,比較難為實現(xiàn)。 2.1.5basic4android 開發(fā)環(huán)境的搭建開發(fā)環(huán)境的搭建 android 平臺 linux 核心庫提供了 java 語言核心庫的大多數(shù)功能,并通過 dalvik 虛擬機來執(zhí)行 android 應用程序。因此,android 平臺下應用程序的開發(fā)除了 用于 java 語言開發(fā)的 jdk,

40、還須安裝專門為 android 開發(fā)用的 android 標準開發(fā)包 android sdk,以及相關(guān)的開發(fā)編程工具 basic4android,具體開發(fā)環(huán)境的搭建和配置 流程這里不做詳細的介紹。只對于環(huán)境搭建過程中的注意事項做一簡單介紹。首先 安裝完成 basic4android,初次運行會提示選擇相應的 license 文件并且要求輸入郵箱 賬號,從而激活完整版軟件。第二步安裝 java jdk v7,這里要注意的是不管是 32 位或者 64 位的操作系統(tǒng),都必須安裝 windows x86 (32-bit),否則在下一步 android sdk 的安裝過程中將無法識別。第三步安裝 and

41、roid sdk 和開發(fā)平臺(platform), android sdk 的安裝路徑必須不能包含空格鍵,比如 program files,完成安裝之后 打開路徑下的 sdk manager.exe 其顯示如圖 2-2 所示 android sdk manager 界面: 圖 2-2android sdk manager 界面 勾選并下載相應的平臺版本,推薦安裝 api8 及以上版本,由于該游戲硬件加速 的開啟,必須選擇 android 4.0 以上的版本,這里我們選擇的是 android 4.1 的開發(fā) 平臺。完成安裝后進入 basic4android 點擊選擇 tools configur

42、e paths 配置相應的路 徑,如圖 2-3paths configuration 界面: 圖 2-3paths configuration 界面 到此為止,所需軟件安裝、開發(fā)環(huán)境平臺搭建完成。 2.1.6運用運用 basic4android 軟件的優(yōu)勢軟件的優(yōu)勢 basic4android 是簡單而強有力的工具;ide 和程序語言 100%專注于 android 開 發(fā);編譯為原生 bytecode,不需要運行庫生成的 apk 文件與 java / eclipse 生成的 文件完全一樣;與 java 寫的應用性能相同;使用與 visual basic 類似的事件驅(qū)動開 發(fā)語言,支持對象和代

43、碼模塊;不需要寫任何 xml 文件;通過支持定制 java 庫 提高擴展性;大量的、活躍的、有好的社區(qū)開發(fā)者,超過 20,000 注冊開發(fā)者; android 史上唯一的真正 wysiwyg 可視化編輯器??梢暬庉嬈髂軌蛑С侄嗥聊?和各種分辨率。支持 android 1.6 到 4.0 版本的所有的電話和平板終端;支持自動完 成、內(nèi)置文檔和內(nèi)部索引的現(xiàn)代 ide 和其他高級功能;集成了強大的單步調(diào)試器; 具有可定制在線和離線查詢功能的海量文檔;使用可視化設(shè)計器和抽象設(shè)計器支持 所有的屏幕大小和分辨率;增強的數(shù)據(jù)庫和 web 服務的支持,一步一步指導如何連 接到遠程的 mysql and mi

44、crosoft sql server 數(shù)據(jù)庫等等一系列所獨有的特征。 2.2傳感器概念與分類傳感器概念與分類 2.2.1傳感器的概念傳感器的概念 傳感器是一種物理裝置或生物器官,能夠探測、感受外界的信號、物理條件(如 光、熱、濕度)或化學組成(如煙霧),并將探知的信息傳遞給其他裝置或器官。 國家標準 gb/t 7665-200 對傳感器的定義是:“能感受規(guī)定的被測量并按照一定 的規(guī)律轉(zhuǎn)換成可用信號的器件或裝置,通常由敏感元件和轉(zhuǎn)換元件組成” 。傳感器是 一種檢測裝置,能感受被測量的信息,并能將檢測的感受到的信息,按一定規(guī)律變 換成為電信號或其他所需形式的信息輸出,以滿足信息的傳輸、處理、存儲、

45、顯示、 記錄和控制等要求,它是實現(xiàn)自動檢測和自動控制的首要環(huán)節(jié)。 2.2.2傳感器的分類傳感器的分類 傳感器技術(shù)己經(jīng)廣泛應用于人們的生活、工作、學習方方面面之中,它們的種 類豐富,特點各異,因此把它們分類的方法也有很多方式。最直接和最廣泛的分類 方式是把它們分為物理傳感器、化學傳感器和生物傳感器三種類型。另外,按照傳 感器的不同用途和性質(zhì)也可以分成種類多的傳感器,如溫度傳感器、光傳感器、壓 力傳感器、速度傳感器、磁敏傳感器、濕敏傳感器、震動傳感器、能耗傳感器以及 本文中將會重點介紹的姿態(tài)傳感器等等。按這些種類繁多的傳感器技術(shù)為人們的生 活、工作、學習、科研提供了非常多的便利,被廣泛應用于軍事、

46、航天航空、醫(yī)用、 汽車、家電等各個頂端和基礎(chǔ)行業(yè)領(lǐng)域。 2. 3傳感器在智能手機中的應用傳感器在智能手機中的應用 隨著智能操作系統(tǒng)手機以及移動互聯(lián)網(wǎng)迅速發(fā)展,手機的功能己遠遠超出其最 初的打電話、發(fā)短信的功能。智能手機在人們的日常生活工作中扮演著越來越重要 的角色,消費者在手機功能上的要求也越來越苛刻,一部智能化、人性化的智能手 機更能為人們所接受和喜愛。目前,智能手機的功能可謂是多種多樣,基本上滿足 了不同人群的各種需求。手機傳感器應用技術(shù)也正是在這樣的背景下得以迅速的發(fā) 展。目前應用于智能手機上的傳感器技術(shù)是非常多的:如光傳感器(light sensor)主 要用于手機屏幕亮度的智能調(diào)節(jié)。

47、手機的光傳感器技術(shù)可根據(jù)周圍環(huán)境光線的情況, 智能的調(diào)節(jié)手機屏幕的亮度,如果手機用戶處于黑暗的環(huán)境中時,傳感器便會智能 降低手機屏幕的亮度,起到保護用戶眼睛和節(jié)能的作用。相反,當手機處于較強烈 的光線之下時,傳感器則會自動增加手機屏幕的亮度,以達到較好的顯示效果。而 距離傳感器(proximity sensor)可以在用戶接電話時智能熄滅屏幕,則可以防止用戶 在聽電話時手機屏幕接觸到用戶臉部將電話意外掛斷或者消耗過多的電能。重力傳 感器(gravity sensor)在智能手機上的應用則更為廣泛常見,比如很有意思的是來電 時翻轉(zhuǎn)手機靜音。姿態(tài)傳感器(orientation sensor)主要是

48、用于檢測手機方向的變化, 而做出相關(guān)的應用,最典型的應用就是游戲的使用,比如本論文的傳感器小游戲就 是該傳感器的使用例子。應用的比較好,而且非常人性化的就是當下非常流行的美 國蘋果公司(apple)公司的語音軟件 siri,她能夠利用陀螺儀和距離傳感器檢測手機 軌跡狀態(tài),在手機從靜止平臺狀態(tài)下到拿起放到耳朵旁邊的過程中,觸發(fā)并打開語 音助手實現(xiàn)手機直接撥打電話等等功能。 2. 4android 平臺傳感器的平臺傳感器的種類種類 google 的 android 平臺為我們提供大量傳感器硬件接口。從 android l . 5 版本 開始,android 系統(tǒng)內(nèi)置了對多達八種傳感器的支持,它們分

49、別是:加速度傳感器 (accelerometer sensor)、陀螺儀(gyroscope sensor)、環(huán)境光照傳感器(light sensor)、 磁力傳感器(magnetic field sensor)、方向傳感器(orientation sensor)、壓力傳感器 (pressure sensor)、距離傳感器(proximity sensor)、溫度傳感器(temperature sensor)和 本論文重點應用的姿態(tài)傳感器(orientation sensor)。正是因為有了這些成熟的傳感器 技術(shù)的支撐,我們可以在 android 平臺上設(shè)計開發(fā)出各種人性化、高實用性的手機 應

50、用程序。在表 2-4 寫出來在 android 平臺下各種傳感器的返回值情況。 傳感器類型返回值數(shù)量返回值備注 orientation3 value0:pitch value1:roll value2:yaw 方向傳感器, 返回三個坐標 軸的角度,以 度為單位 presure1value0:pressure 壓力傳感器, 單位為 kp 千 帕斯卡 light1 value 0 :illumination 計算周圍環(huán)境 光的強度,以 lux 為單位 gyroscope3 value0:pitch value1:roll value2:yaw 計算三個坐標 軸的方向的角 度,單位為度。 magne

51、tic field3 value 0 : lateral value1:longitudina l value2:vertical 計算坐標軸三 個方向磁感應 情況,以微特 拉斯 ut 為單 位 accelerometer3 value 0 : lateral value1:longitudina l value2:vertical 加速度傳感器, 返回值單位為 m/s2 prpximity1value0:distance 距離傳感器, 返回值以米為 單位 temperature1 value 0 :temperature 溫度傳感器, 返回值單位為 攝氏度。 表 2-4android 平臺下

52、各種傳感器的返回值 在這里簡單介紹了 android 平臺所支持的部分傳感器的參數(shù),在下邊的論文中 會再詳細介紹跟應用程序相關(guān)的姿態(tài)傳感器的主要特征以及調(diào)用的具體操作實現(xiàn)。 2.4.1加速傳感器加速傳感器(重力傳感器重力傳感器)accelerometer 主要感應手機的運動狀態(tài),在注冊了傳感器監(jiān)聽器后,加速度傳感器主要捕獲 三個參數(shù) value0、value1、value2單位是 m/s2 value0:空間坐標系中 x 軸方向上的加速度減去重力加速度在 x 軸上的分量 value1:空間坐標系中 y 軸方向上的加速度減去重力加速度在 y 軸上的分量 value2:空間坐標系中 z 軸方向上的

53、加速度減去重力加速度在 z 軸上的分量 以下是加速度取值的一個典型的例子: 當手機平放到桌面上靜止時, 加速度為重力加速度 g,通過 0 減去-g(重力加速 度 g 方向為 z 軸反向,故為負值)得到 values2為 g。 如果把手機水平向右推,此時手機 x 方向上的加速度為正,即 value0為正。 如果把手機以 a m/s2的加速度豎直向上舉時,values2的返回值為(a+g) m/s2,通過加速度 a 減去負的重力加速度-g 得到。 2.4.2姿態(tài)傳感器姿態(tài)傳感器 orientation 姿態(tài)傳感器主要是感應手機方向的變化,也是本論文所討論小游戲項目中的主 要核心功能部分。其每次讀取

54、的都是靜態(tài)的狀態(tài)值,在注冊傳感器監(jiān)聽器之后方向 傳感器同樣是捕獲三個參數(shù) values0, values1,values2,分別代表手機沿 yaw 軸、pitch 軸以及 ro11 軸轉(zhuǎn)過的角度。 姿態(tài)傳感器是使用最多的傳感器之一,該傳感器主要感應手機方位的變化,捕 獲的同樣是三個數(shù),分別代表手機沿 yaw 軸、pitch 軸和 roll 軸轉(zhuǎn)過的角度。 yaw 軸、pitch 軸和 roll 軸與平時我們理解的空間坐標系有所不同,在特定的 狀態(tài)下其有別于傳統(tǒng)的三維空間坐標系。下面分別對這三個軸所表示的含義進行詳 細介紹: yaw 軸,該軸是三個軸中最簡單的一個,其表示的方向是不變的,一直是重

55、力 加速度 g 的反方向,即一直是豎直向上的,與手機的姿態(tài)無關(guān)。 pitch 軸,該軸的方向并不是固定不變的,而是會隨著手機沿 yaw 軸旋轉(zhuǎn)而改 變,唯一不變的關(guān)系是該軸永遠與 yaw 軸成 90 度角。實際上 yaw 軸與 pitch 軸相 當于銜接一起的一個 90 度固定的支架,無論手機怎么旋轉(zhuǎn),其與 yaw 軸的角度都 為 90 度。 roll 軸,該軸的方向是沿著手機屏幕向上的軸,無論手機是何種姿態(tài),roll 軸 都是沿著手機的屏幕向上指示的,其方向是與手機綁定的。該三維狀態(tài)的圖示效果 如圖 2-4 所示: r ro ol ll l y ya aw w p pi it tc ch h

56、 o o 圖 2-4姿態(tài)傳感器 orientation 2. 5傳感器的使用方法傳感器的使用方法 相對于傳統(tǒng)的 android 軟件開發(fā)工具,basic4android 提供了與 visual basic 類似 的事件驅(qū)動開發(fā)語言,支持對象和代碼模塊。下邊簡單介紹幾個常用的傳感器使用 方法。 2.5.1加速度傳感器的調(diào)用加速度傳感器的調(diào)用(phoneaccelerometer) 調(diào)用內(nèi)部的加速度傳感器具有一定的語法要求,并且這個變量必須被定義成為 一個全局的變量。 事件聲明: accelerometerchanged (x as float, y as float, z as float) 開

57、始監(jiān)聽:startlistening (eventname as string) 停止監(jiān)聽:stoplistening 具體的成員描述方法: startlistening (eventname as string) 開始監(jiān)聽加速度傳感器的變化事件。 stoplistening 停止監(jiān)聽加速度傳感器的變化事件。 2.5.2方向傳感器的調(diào)用方向傳感器的調(diào)用(phoneorientation) 類似于上一個加速度傳感器的調(diào)用類似,調(diào)用內(nèi)部的方向感傳感器也是具有一 定的語法要求,并且這個變量必須被定義成為一個全局的變量,才能在程序之中正 常調(diào)用。 事件聲明: orientationchanged (a

58、zimuth as float, pitch as float, roll as float) 開始監(jiān)聽:startlistening (eventname as string) 停止監(jiān)聽:stoplistening 具體的成員描述方法: startlistening (eventname as string) 開始監(jiān)聽方向傳感器的變化事件 stoplistening 停止監(jiān)聽方向傳感器的變化事件 以上的是兩個比較常用的傳感器的函數(shù)調(diào)用以及成員聲明的方法,在其他的傳 感器調(diào)用過程中也會用到相同的語法來定義與調(diào)用,在這里就不再贅述。 2.6b4a-bridge 軟件的使用軟件的使用 在利用 ba

59、sic4android 編程軟件進行傳感器的游戲開發(fā)編程調(diào)試時,由于要獲取 傳感器實時的數(shù)據(jù)值,所以如果創(chuàng)建傳統(tǒng)的 android virtual device 無法滿足實時調(diào) 試應用程序的需求,在這里就要通過安裝 b4a-bridge 輔助軟件,通過訪問無線局域 網(wǎng)或者通過藍牙連接運行 android 智能操作系統(tǒng)的手機進行實時的調(diào)試。這樣連接 之后只要實時的該變手機的姿態(tài)值,通過相應的傳輸介質(zhì)就能將該參數(shù)傳遞過去。 b4a-bridge 軟件界面如下圖 2-5 所示: 圖 2-5b4a-bridge 軟件界面 該軟件有無線局域網(wǎng)(wifi)、藍牙(bluetooth)兩種途徑可以將 and

60、roid 操作系統(tǒng) 的手機與 basic4android 開發(fā)環(huán)境連接,從而實現(xiàn)傳感器參數(shù)的實時傳遞來實現(xiàn)程序 的調(diào)試。 在軟件界面點擊相應的連接方式按鈕后,手機會開啟無線或者藍牙功能發(fā)送相 應的數(shù)據(jù)以備 basic4android 開發(fā)環(huán)境連接。然后,在 basic4android 開發(fā)軟件的工具 欄選擇 tolls b4a bridge connect-bluetooth/connect-wireless 如下圖 2.6 所示點擊 選擇相應的連接方式,輸入手機 b4a-bridge 軟件界面相應參數(shù)即可成功連接。 圖 2.6b4a bridge 連接方式選擇 在成功連接以后,在編譯環(huán)境中編

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論