版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、北京信息科技大學(xué) 畢畢 業(yè)業(yè) 設(shè)設(shè) 計(jì)(論計(jì)(論 文)文) 題題 目:目:基于 android 手機(jī)的備忘錄管理程序?qū)崿F(xiàn) 學(xué)學(xué) 院:院: 計(jì)算機(jī)學(xué)院 專專 業(yè):業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 學(xué)生姓名:學(xué)生姓名: 仲碩 班級(jí)班級(jí)/學(xué)號(hào)學(xué)號(hào) b 計(jì)科 0702 / 2007011591 指導(dǎo)老師指導(dǎo)老師/督導(dǎo)老師:督導(dǎo)老師: 楊大利 起止時(shí)間:起止時(shí)間: 2011 年 2 月 21 日 至 2011 年 6 月 17 日 摘摘 要要 android 是 google 開發(fā)的基于 linux 平臺(tái)的開源手機(jī)操作系統(tǒng)。隨著 android 平臺(tái)的日趨成 熟,android 的用戶呈現(xiàn)不斷上升之勢(shì)。本文正是致
2、力于 android 手機(jī)的備忘錄管理程序的實(shí)現(xiàn), 并就其實(shí)現(xiàn)過程中的相關(guān)知識(shí)與技術(shù)予以了闡述。利用 java 語言以及 eclipse 工具實(shí)現(xiàn)了對(duì)備忘 錄管理程序的編寫工作,該備忘錄管理程序功能包括增加、刪除、修改以及查看備忘事件,并可以 根據(jù)用戶定制按不同方式提醒備忘事件,操作界面簡(jiǎn)潔明了,較易上手。在文中給出了詳細(xì)的系統(tǒng) 設(shè)計(jì)過程、實(shí)現(xiàn)的各功能界面截圖并附上各功能的主要程序代碼并予以了相關(guān)解釋。 關(guān)鍵詞:關(guān)鍵詞:android;java;eclipse;備忘錄管理程序 abstract google developed android which based on the open-s
3、ource mobile operating system of linux platform. with the android platform became more and more mature, the users of android is in the rising trend. this paper is dedicated to achieve the memorandum management program of android mobile phones, and to elaborate its related knowledge and technology in
4、 the process of implementation. taking advantage of java language and eclipse to achieve the management procedures for the preparation of the memorandum. the memorandum management procedures which include add, delete, modify and check the memo events, and can remind of the memo events in different w
5、ays according to the customized. it has a concise interface to accept easily. this paper gives a detailed process of system design, implement the screenshots of the feature, which along with the relevant explanation about the above main program code. keywords: android;java;eclipse;memorandum 目目 錄錄 摘
6、要摘要 (中文)(中文).i (英文)(英文).ii 第一章第一章 androidandroid 備忘錄管理程序概述備忘錄管理程序概述.1 1.1 android 備忘錄程序的項(xiàng)目背景 .1 1.2 android 備忘錄程序的市場(chǎng)需求 .1 1.3 備忘錄管理程序的研究現(xiàn)狀 .1 1.4 本文論文組織.2 第二章第二章 androidandroid 開發(fā)基礎(chǔ)知識(shí)介紹開發(fā)基礎(chǔ)知識(shí)介紹.3 2.1 android 平臺(tái)基礎(chǔ)知識(shí).3 2.1.1 什么是 android ?.3 2.1.2 android 平臺(tái)的優(yōu)勢(shì).3 2.2 android 開發(fā)環(huán)境搭建流程 .4 2.2.1 安裝 eclips
7、e adt plugin 插件 .4 2.2.2 安裝 android sdk.5 2.2.3 更新 adroid sdk.5 2.2.4 配置 android 模擬器 .6 2.3 開發(fā)工具 eclipse 介紹 .8 第三章第三章 androidandroid 程序設(shè)計(jì)相關(guān)知識(shí)程序設(shè)計(jì)相關(guān)知識(shí).10 3.1 系統(tǒng)結(jié)構(gòu).10 3.1.1 應(yīng)用程序.10 3.1.2 應(yīng)用程序框架.11 3.1.3 庫和運(yùn)行環(huán)境.11 3.2 android 應(yīng)用程序組成 .11 3.2.1 avtivity 介紹.11 3.2.2 broadcast intent receiver 介紹 .12 3.2.3
8、service 介紹.12 3.2.4 content provider 介紹 .12 3.2.5 intent 介紹.13 3.3 android 應(yīng)用程序工程文件 .14 第四章第四章 androidandroid 備忘錄管理程序相關(guān)技術(shù)介紹備忘錄管理程序相關(guān)技術(shù)介紹.15 4.1 android 備忘錄程序的系統(tǒng)需求 .15 4.2 系統(tǒng)結(jié)構(gòu)圖.15 4.3 android 數(shù)據(jù)庫的相關(guān)介紹 .16 4.3.1 android 數(shù)據(jù)庫.16 4.3.2 如何在 android 中調(diào)用數(shù)據(jù)庫資源 .18 第五章第五章 androidandroid 備忘錄管理程序的備忘錄管理程序的實(shí)現(xiàn)與體會(huì)
9、實(shí)現(xiàn)與體會(huì).22 5.1 模擬器啟動(dòng).22 5.2 添加備忘錄.23 5.3 刪除備忘錄.26 5.4 查看記錄.27 5.5 倒序查找.28 5.6 備忘錄信息定時(shí)(按多種方式定時(shí)) .30 5.6.1 定時(shí)設(shè)置.30 5.6.2 查看定時(shí).32 結(jié)束語結(jié)束語 .34 參考文獻(xiàn)參考文獻(xiàn) .35 第一章第一章 android 備忘錄管理程序概述備忘錄管理程序概述 1.11.1 androidandroid 備忘錄程序的項(xiàng)目背景備忘錄程序的項(xiàng)目背景 當(dāng)今社會(huì)的生活節(jié)奏越來越快,人們對(duì)手機(jī)的要求也越來越高,由于手機(jī)市場(chǎng)發(fā)展迅 速,使得手機(jī)操作系統(tǒng)也出現(xiàn)了不同各類,現(xiàn)在的市場(chǎng)上主要有三個(gè)手機(jī)操作系統(tǒng)
10、, windows mobile,symbian,以及谷歌的 android 操作系統(tǒng),其中占有開放源代碼優(yōu)勢(shì)的 android 系統(tǒng)有最大的發(fā)展前景。2009 年 1 月 7 日,工業(yè)和信息化部為中國移動(dòng)、中國電 信和中國聯(lián)通發(fā)放 3 張第三代移動(dòng)通信牌照,此舉標(biāo)志著我國正式進(jìn)入 3g 時(shí)代。中國 3g 正式商用和規(guī)模建網(wǎng),決定了中國基于 android 的應(yīng)用程序開發(fā)將會(huì)處于一個(gè)蓬勃發(fā)展時(shí) 期。那么能否在手機(jī)上擁有自己編寫的個(gè)性備忘錄管理程序呢?能的,谷歌 android 系統(tǒng) 就能做到。本文的備忘錄管理程序就是基于谷歌 android 手機(jī)平臺(tái)的。 android:是谷歌于 2007 年
11、公布的開放式源代碼手機(jī)系統(tǒng),它的開放性就優(yōu)于其它 封閉式的手機(jī)系統(tǒng),因此,任何人都可能根據(jù)自己的喜好將手機(jī)系統(tǒng)中的所有功能重新編 寫。這使得越來越多的人關(guān)注這個(gè)操作系統(tǒng)。本次作品備忘錄管理程序就是基于 android 平臺(tái)的。 隨著計(jì)算機(jī)的廣泛運(yùn)用,手機(jī)市場(chǎng)的迅速發(fā)展,各種手機(jī)備忘錄軟件也在網(wǎng)上廣為流 傳,這些資源看似平常,但已經(jīng)漸漸成為人們生活中必不可少的一部分了。在研究了市場(chǎng) 上一些手機(jī)備忘錄軟件之后,分析程序本身存在的缺陷和優(yōu)點(diǎn)以及特點(diǎn),編寫出除具備一 般備忘錄軟件的功能,如增、刪、改、查之外,功能實(shí)用,使用方便快捷的基于 android 手機(jī)的備忘錄管理程序軟件。 1.21.2 and
12、roidandroid 備忘錄程序的市場(chǎng)需求備忘錄程序的市場(chǎng)需求 需要使用手機(jī)備忘錄軟件的人士,此類用戶受當(dāng)今社會(huì)手機(jī)發(fā)展潮流的影響會(huì)應(yīng)用到 一些手機(jī)軟件,由于自身平日事務(wù)繁多,手機(jī)備忘錄軟件以其便捷性、智能性特點(diǎn)完成用 戶日常生活中的提醒工作,用戶對(duì)此類軟件需要在基本提醒功能之外實(shí)現(xiàn)一些擴(kuò)展功能且 要求軟件界面友好,操作便捷。 理想的功能:界面清爽又友好,操作便捷,并能提供不同日期時(shí)間的方式查看用戶待 提醒時(shí)間,用戶可以自主定制多種提醒模式(例如響鈴,靜音等) ,并能按照用戶定制自動(dòng) 完成一些基本操作(例如定時(shí)完成手機(jī)的靜音與恢復(fù)響鈴等) 。 1.31.3 備忘錄管理程序的研究現(xiàn)狀備忘錄管理
13、程序的研究現(xiàn)狀 能夠完成基本的提醒功能,但提醒方式以及軟件功能過于單一。例如手機(jī)備忘錄軟件 的使用者為一名教師,現(xiàn)在的軟件可設(shè)置在工作日每天早上 7:50 提醒用戶上課關(guān)機(jī),中午 12:00 下課后提醒開機(jī),如此過于繁瑣,而只需要用戶按不同工作日定制 7:50 手機(jī)自動(dòng) 靜音,12:00 手機(jī)自動(dòng)恢復(fù)響鈴即可。同時(shí)現(xiàn)在的軟件對(duì)待提醒事件查看方式也過于單一。 1.41.4 本文論文組織本文論文組織 本文主要在介紹 android 手機(jī)備忘錄應(yīng)用程序開發(fā)的要點(diǎn),以及本人這段時(shí)間學(xué)習(xí) android 開發(fā)的體會(huì)。本文在第二章介紹 android 開發(fā)的基礎(chǔ)知識(shí),在第三章介紹 andoid 程序設(shè)計(jì)相
14、關(guān)技術(shù),第四章介紹 android 備忘錄程序的設(shè)計(jì)與實(shí)現(xiàn),最后一章介紹在軟件 設(shè)計(jì)過程中遇到的難題和相應(yīng)解決方案。 第二章第二章 androidandroid 開發(fā)基礎(chǔ)知識(shí)介紹開發(fā)基礎(chǔ)知識(shí)介紹 2.12.1 androidandroid 平臺(tái)基礎(chǔ)知識(shí)平臺(tái)基礎(chǔ)知識(shí) .1 什么是什么是 androidandroid ? android 是基于 linux 平臺(tái)的開源手機(jī)操作系統(tǒng)的名稱,該平臺(tái)由操作系統(tǒng)、中間 件、用戶界面和應(yīng)用軟件組成,而且不存在任何以往阻礙移動(dòng)產(chǎn)業(yè)創(chuàng)新的專有權(quán)障礙,號(hào) 稱是首個(gè)為移動(dòng)終端打造的真正開放和完整的移動(dòng)軟件。android 在中國的前景十分廣闊, 國內(nèi)
15、廠商和運(yùn)營商也紛紛加入了 android 陣營,包括魅族,中國移動(dòng),中國聯(lián)通,華為通 訊,聯(lián)想等大企業(yè)。 android 是基于 linux 內(nèi)核的操作系統(tǒng),是 google 公司在 2007 年 11 月 5 日公布的手 機(jī)操作系統(tǒng)。早期由原名為android的公司開發(fā),谷歌在 2005 年收購android.inc后,繼 續(xù)對(duì)進(jìn)行 android 系統(tǒng)開發(fā)及運(yùn)營,它采用了軟件堆層(software stack,又名軟件疊層) 的架構(gòu),主要分為三部分。底層 linux 內(nèi)核只提供基本功能,其他的應(yīng)用軟件則由各公司 自行開發(fā),部分程序以 java 語言來編寫。 android 是運(yùn)行于 lin
16、ux kernel 之上,但并不是 gnu/linux。因?yàn)樵谝话?gnu/linux 里支持的功能,android 大都沒有支持,包括 cairo、x11、alsa、ffmpeg、gtk、pango 及 glibc 等都被移除掉了。android 又以 bionic 取代 glibc、以 skia 取代 cairo、再以 opencore 取代 ffmpeg 等等。android 為了達(dá)到商業(yè)應(yīng)用,必須移除被 gnu gpl 授權(quán)證 所約束的部份,例如 android 將驅(qū)動(dòng)程序移到 userspace,使得 linux driver 與 linux kernel 徹底分開。bionic/l
17、ibc/kernel/ 并非標(biāo)準(zhǔn)的 kernel header files。android 的 kernel header 是利用工具由 linux kernel header 所產(chǎn)生的,這樣做是為了保留常數(shù)、數(shù)據(jù)結(jié)構(gòu)與 宏。 2.1.2 android 平臺(tái)的優(yōu)勢(shì)平臺(tái)的優(yōu)勢(shì) 一、開放性 在優(yōu)勢(shì)方面,android平臺(tái)首先就是其開發(fā)性,開發(fā)的平臺(tái)允許任何移動(dòng)終端廠商加入 到android聯(lián)盟中來。顯著的開放性可以使其擁有更多的開發(fā)者,隨著用戶和應(yīng)用的日益豐 富,一個(gè)嶄新的平臺(tái)也將很快走向成熟。 開發(fā)性對(duì)于android的發(fā)展而言,有利于積累人氣,這里的人氣包括消費(fèi)者和廠商,而 對(duì)于消費(fèi)者來講,
18、隨大的受益正是豐富的軟件資源。開放的平臺(tái)也會(huì)帶來更大競(jìng)爭(zhēng),如此 一來,消費(fèi)者將可以用更低的價(jià)位購得心儀的手機(jī)。 二、掙脫運(yùn)營商的束縛 在過去很長的一段時(shí)間,特別是在歐美地區(qū),手機(jī)應(yīng)用往往受到運(yùn)營商制約,使用什 么功能接入什么網(wǎng)絡(luò),幾乎都受到運(yùn)營商的控制。自從iphone上市,用戶可以更加方便地 連接網(wǎng)絡(luò),運(yùn)營商的制約減少。隨著edge、hsdpa這些2g至3g移動(dòng)網(wǎng)絡(luò)的逐步過渡和提升, 手機(jī)隨意接入網(wǎng)絡(luò)已不是運(yùn)營商口中的笑談,當(dāng)你可以通過手機(jī)im軟件方便地進(jìn)行即時(shí)聊 天時(shí),再回想不久前天價(jià)的彩信、圖片、鈴聲等的下載業(yè)務(wù),是不是像噩夢(mèng)一樣?互聯(lián)網(wǎng) 巨頭google推動(dòng)的android終端天生就有
19、網(wǎng)絡(luò)特色,將讓用戶離互聯(lián)網(wǎng)更近。 三、豐富的硬件選擇 這一點(diǎn)還是與android平臺(tái)的開放性相關(guān),由于android的開放性,眾多的廠商會(huì)推 出千奇百怪,功能特色各具的多種產(chǎn)品。功能上的差異和特色,卻不會(huì)影響到數(shù)據(jù)同步、 甚至軟件的兼容,好比你從諾基亞symbian風(fēng)格手機(jī)一下改用蘋果iphone,同時(shí)還可將 symbian中優(yōu)秀的軟件帶到iphone上使用、聯(lián)系人等資料更是可以方便地轉(zhuǎn)移,是不是非常 方便呢? 四、不受任何限制的開發(fā)商 android平臺(tái)提供給第三方開發(fā)商一個(gè)十分寬泛、自由的環(huán)境,不會(huì)受到各種條條框 框的阻擾,可想而知,會(huì)有多少新穎別致的軟件會(huì)誕生。但也有其兩面性,血腥、暴力
20、、 情色方面的程序和游戲如可控制正是留給android難題之一。 五、無縫結(jié)合的google應(yīng)用 如今叱咤互聯(lián)網(wǎng)的 google 已經(jīng)走過多年度歷史,從搜索巨人到全面的互聯(lián)網(wǎng)滲透, google 服務(wù)如地圖、郵件、搜索等已經(jīng)成為連接用戶和互聯(lián)網(wǎng)的重要紐帶,而 android 平 臺(tái)手機(jī)將無縫結(jié)合這些優(yōu)秀的 google 服務(wù)。 2.22.2 androidandroid 開發(fā)環(huán)境搭建流程開發(fā)環(huán)境搭建流程 android 開發(fā)首先需要搭建完整的開發(fā)環(huán)境,由于軟件均是基于 dalvik java virtual machine 運(yùn)行的所以 google 官方推薦使用主流的 java 開發(fā) ide
21、eclipse。我們需 要下載必要的開發(fā)組件。 1)java 運(yùn)行時(shí)庫(jre),由于 eclipse 使用 java 開發(fā),所以需要它才可以正常運(yùn)行 ide。 2)eclipse 集成開發(fā)環(huán)境,官方提供的 android 開發(fā)插件 adt plugin 是基于 eclipse 編寫的,當(dāng)然用戶可以使用 netbean、jbuilder 當(dāng)作代碼編輯器使用,但目前沒有完整的 調(diào)試集成。 3)eclipse adt plugin 插件是 android develop tool kit 的插件,用戶需要安裝它 才能在 eclipse 中建立和調(diào)試 android 程序。 4)android sd
22、k,它包含了完整的 android 模擬器 、android 開發(fā)文檔和調(diào)試工具, google 官方也會(huì)定時(shí)更新 .1 安裝安裝 eclipseeclipse adtadt pluginplugin 插件插件 首先我們將下載的 jre 安裝。運(yùn)行 eclipse 開發(fā)環(huán)境。安裝 eclipse adt plugin,選 擇【help】 【soft updates】 【find and install】 選擇“available software”標(biāo)簽頁,點(diǎn)擊【add site】按鍵。添加 update 站點(diǎn): 圖2.1 安裝 eclipse adt plugin 過程截圖 這
23、時(shí)窗口中新增了“https:/dl- 點(diǎn)擊【install】按鍵即可下載。 .2 安裝安裝 androidandroid sdksdk 將安裝的 android sdk 包解壓,運(yùn)行 eclipse。選擇【window】 【preferences】 , 選擇 android,如下圖 圖 2.2 安裝 android sdk 過程截圖 點(diǎn) browse 按鈕選擇 sdk 解壓后的路徑。 為了在 dos 控制臺(tái)中直接使用 sdk 的工具,可以將 sdk 的目錄添加到 windows 的 path 環(huán)境變量中:在桌面上右擊“我的電腦” ,依次點(diǎn)擊【屬性】【高級(jí)】【環(huán)境變量】 。雙 擊
24、【系統(tǒng)變量】里面的 path 項(xiàng),將 android sdk 中 tools 目錄的完整路徑添加到這里。 .3 更新更新 adroidadroid sdksdk android sdk 的升級(jí)如此之快讓人有點(diǎn)招架不住,為了使用 sdk 的新特性,有必要將其 升級(jí) 第一步: 打開 eclipse 工具,在工具欄里找到 這個(gè)按鈕,如果你沒有找到也不要著急,你 在菜單欄【window】 【android sdk and avd manager】里也能找到這個(gè)按鈕,點(diǎn)擊之彈 出如下對(duì)話框: 圖 2.3 更新 adroid sdk 過程截圖 第二步: 選擇 availabe packag
25、e 這一標(biāo)簽,然后將出現(xiàn)如下對(duì)話框(記得要勾選那個(gè)復(fù)選框): 圖 2.4 更新 adroid sdk 過程截圖 然后選擇 installed packages,點(diǎn)擊 update all 按鈕即可升級(jí)。 .4 配置配置 androidandroid 模擬器模擬器 (1) 首先打開android sdk and avd manager,如圖所示。 圖 2.5 配置 android 模擬器過程截圖 (2) 點(diǎn)擊左邊的virtual devices選項(xiàng),在點(diǎn)擊右邊的new.按鈕,來新建一個(gè) avd。 (3) 在name標(biāo)簽處填寫 avd 的名字,target標(biāo)簽處選擇 api 等級(jí),
26、在size標(biāo)簽處 填寫要?jiǎng)?chuàng)建的 sd 卡的大小,在skin標(biāo)簽中設(shè)置模擬器的風(fēng)格, (4) 到這里,還需要配置模擬器運(yùn)行的 avd,操作步驟:點(diǎn)擊run,選擇open run dialog菜單命令,打開對(duì)話框,如圖 2-33 所示。 圖 2.6 配置 android 模擬器過程截圖 (5) 雙擊run 對(duì)話框左邊的導(dǎo)航器中的android application菜單命令,創(chuàng)建一個(gè) android 項(xiàng)目運(yùn)行配置。在右邊的name文本框中輸入 android 項(xiàng)目運(yùn)行配置的名字,在 android選項(xiàng)卡中的project文本框中輸入要運(yùn)行的 android 項(xiàng)目,同樣可以點(diǎn)擊右邊 的browse.
27、按鈕來選擇 android 項(xiàng)目。 2.32.3 開發(fā)工具開發(fā)工具 eclipseeclipse 介紹介紹 eclipse 是一種可擴(kuò)展的開放源代碼 ide。2001 年 11 月,ibm 公司捐出價(jià)值 4,000 萬 美元的源代碼組建了 eclipse 聯(lián)盟,并由該聯(lián)盟負(fù)責(zé)這種工具的后續(xù)開發(fā)。集成開發(fā)環(huán)境 (ide)經(jīng)常將其應(yīng)用范圍限定在“開發(fā)、構(gòu)建和調(diào)試”的周期之中。為了幫助集成開發(fā)環(huán)境 (ide)克服目前的局限性,業(yè)界廠商合作創(chuàng)建了 eclipse 平臺(tái)。eclipse 允許在同一 ide 中 集成來自不同供應(yīng)商的工具,并實(shí)現(xiàn)了工具之間的互操作性,從而顯著改變了項(xiàng)目工作流 程,使開發(fā)者可
28、以專注在實(shí)際的嵌入式目標(biāo)上。 eclipse 框架的這種靈活性來源于其擴(kuò)展點(diǎn)。它們是在 xml 中定義的已知接口,并充 當(dāng)插件的耦合點(diǎn)。擴(kuò)展點(diǎn)的范圍包括從用在常規(guī)表述過濾器中的簡(jiǎn)單字符串,到一個(gè) java 類的描述。任何 eclipse 插件定義的擴(kuò)展點(diǎn)都能夠被其它插件使用,反之,任何 eclipse 插件也可以遵從其它插件定義的擴(kuò)展點(diǎn)。除了解由擴(kuò)展點(diǎn)定義的接口外,插件不知道它們 通過擴(kuò)展點(diǎn)提供的服務(wù)將如何被使用。 利用 eclipse,我們可以將高級(jí)設(shè)計(jì)(也許是采用 uml)與低級(jí)開發(fā)工具(如應(yīng)用調(diào)試器 等)結(jié)合在一起。如果這些互相補(bǔ)充的獨(dú)立工具采用 eclipse 擴(kuò)展點(diǎn)彼此連接,那么當(dāng)我
29、們 用調(diào)試器逐一檢查應(yīng)用時(shí),uml 對(duì)話框可以突出顯示我們正在關(guān)注的器件。事實(shí)上,由于 eclipse 并不了解開發(fā)語言,所以無論 java 語言調(diào)試器、c/c+調(diào)試器還是匯編調(diào)試器 都是有效的,并可以在相同的框架內(nèi)同時(shí)瞄準(zhǔn)不同的進(jìn)程或節(jié)點(diǎn)。 eclipse 的最大特點(diǎn)是它能接受由 java 開發(fā)者自己編寫的開放源代碼插件,這類似于 微軟公司的 visual studio 和 sun 微系統(tǒng)公司的 netbeans 平臺(tái)。eclipse 為工具開發(fā)商提 供了更好的靈活性,使他們能更好地控制自己的軟件技術(shù)。eclipse 是一款非常受歡迎的 java 開發(fā)工具,使國內(nèi)的用戶越來越多,實(shí)際上使用它
30、的 java 開發(fā)人員是最多的。缺點(diǎn) 就是較復(fù)雜,對(duì)初學(xué)者來說,理解起來比較困難。 第三章第三章 androidandroid 程序設(shè)計(jì)相關(guān)知識(shí)程序設(shè)計(jì)相關(guān)知識(shí) 3.1 系統(tǒng)結(jié)構(gòu)系統(tǒng)結(jié)構(gòu) android 作為一個(gè)移動(dòng)設(shè)備開發(fā)平臺(tái),其軟件層次結(jié)構(gòu)包括了一個(gè)操作系統(tǒng),中間件 和應(yīng)用程序。其框架如下圖所示 圖 3.1 android 系統(tǒng)結(jié)構(gòu)示意圖 其軟件層析結(jié)構(gòu)自上而下可以分為以下幾個(gè)層次: 1應(yīng)用程序(application) ; 2應(yīng)用程序框架(application framework) ; 3各種庫(libraries)和 android 運(yùn)行環(huán)境(runttime) ; 4操作系統(tǒng)層(o
31、s) 。 3.1.1 應(yīng)用程序應(yīng)用程序 android 的應(yīng)用程序通常涉及用戶界面和用戶交互,這類程序是用戶實(shí)實(shí)在在感受到 的。android 的應(yīng)用程序目前以 java 語言編寫。android 本身提供桌面,聯(lián)系人,電話和 瀏覽器等核心應(yīng)用。同時(shí)應(yīng)用程序開發(fā)者可以根據(jù)應(yīng)用程序框架層的 api 實(shí)現(xiàn)自己的程序, 這也是 android 開源的巨大潛力體現(xiàn)。android 這種開放而強(qiáng)大的平臺(tái)給每一個(gè)程序開發(fā) 者提供了公平的機(jī)會(huì),每一個(gè)開發(fā)者都可以加入移動(dòng)互聯(lián)的世界,共同推動(dòng)移動(dòng)互聯(lián)的發(fā) 展。 .2 應(yīng)用程序框架應(yīng)用程序框架 普通的開發(fā)者可以使用 android 核心應(yīng)用程序的
32、系統(tǒng) api。android 的應(yīng)用開發(fā)框架涉 及的非常巧妙,通過這套應(yīng)用框架,各種組件可以被用戶的應(yīng)用重復(fù)利用,各種服務(wù)也可 以被各種應(yīng)用重復(fù)應(yīng)用。開發(fā)人員應(yīng)該很好地理解這套框架的工作機(jī)制,這樣才能開發(fā)出 更好的應(yīng)用程序。 下面列舉應(yīng)用框架的主要部分: 1一組 views。這些 ui 組件包括列表、文本框、按鈕等。通過這些 ui 組件,可以構(gòu) 建應(yīng)用程序的試圖部分,這部分也就是用戶能看到的部分。 2contentproviders。主要是提供一種機(jī)制,通過這種機(jī)制,各個(gè)應(yīng)用程序之間可以 實(shí)現(xiàn)數(shù)據(jù)的互訪和共享。 3resource manager。它負(fù)責(zé)管理非代碼的訪問。如本地圖片資源,設(shè)計(jì)布
33、局的 xml 文件等的訪問。 4notification manager。它能讓程序的將自己的警示信息顯示在狀態(tài)欄上。例如, 當(dāng)有短信的時(shí)候,可以在狀態(tài)欄上顯示新短信的信息。 5activity manager。它管理應(yīng)用的生命周期,并且提供應(yīng)用頁面退出的機(jī)制。在 android 應(yīng)用中,一個(gè)應(yīng)用一般都是多個(gè)頁面組成,而每個(gè)頁面的單位就是 activity。 .3 庫和運(yùn)行環(huán)境庫和運(yùn)行環(huán)境 android 包括一些 c/c+庫,這些庫能被 android 系統(tǒng)的不同組件使用。他們通過 android 應(yīng)用程序框架為開發(fā)者提供服務(wù)。 3.23.2 androidandroid 應(yīng)
34、用程序組成應(yīng)用程序組成 要進(jìn)行應(yīng)用開發(fā),還需要對(duì) android 應(yīng)用構(gòu)造進(jìn)行深入的分析。android 應(yīng)用程序由 以下 4 個(gè)模塊構(gòu)造而成: activity broadcast intent receiver service content provider 當(dāng)然,也不是每個(gè) android 應(yīng)用程序都必須由這 4 部分組成,它可以根據(jù)開發(fā)者需求 來進(jìn)行組合 。 在這里還需要介紹 intent 的概念和使用方法,他在應(yīng)用程序的運(yùn)行中連接兩個(gè)不同 的組件,通過 intent 你的程序可以向 android 表達(dá)某種請(qǐng)求或者意愿,android 會(huì)根據(jù)意 愿的內(nèi)容選擇適當(dāng)?shù)慕M件來請(qǐng)求。 3.
35、 avtivityavtivity 介紹介紹 activity 是最基本的模塊。我們稱之為活動(dòng),在應(yīng)用程序中,一個(gè)活動(dòng) (activity)通常就是一個(gè)單獨(dú)的屏幕。每一個(gè)活動(dòng)都被實(shí)現(xiàn)為一個(gè)獨(dú)立的類,并且從活 動(dòng)基類中繼承而來,活動(dòng)類將會(huì)顯示由視圖控件組成的用戶接口,并對(duì)事件作出響應(yīng)。大 多數(shù)的應(yīng)用都是由多個(gè) activity 顯示組成,例如,對(duì)一個(gè)文本信息應(yīng)用而言,第一個(gè)屏幕 用來顯示發(fā)送消息的聯(lián)系人列表,第二個(gè)屏幕用來寫文本消息和選擇收件人,第三個(gè)屏幕 查看消息歷史或者消息設(shè)置操作等。 這里的每一個(gè)屏幕就是一個(gè)活動(dòng),很容易實(shí)現(xiàn)從一個(gè)屏幕到一個(gè)新的屏幕,并且完成 新的活動(dòng)。當(dāng)一
36、個(gè)新的屏幕打開后,前一個(gè)屏幕將會(huì)暫停,并保存在歷史棧中。用戶可以 返回到歷史棧中的前一個(gè)屏幕,當(dāng)屏幕不再使用時(shí),還可以從歷史棧中刪除。 簡(jiǎn)單理解,activity 代表一個(gè)用戶所能看到的屏幕,主要用于處理應(yīng)用程序的整體 性工作,例如,監(jiān)聽系統(tǒng)事件(按鍵事件、觸摸屏事件等) ,為用戶顯示指定的 view,啟 動(dòng)其他 activity 等。所有應(yīng)用的 activity 都繼承于 android.app.activity 類,該類是 android 提供的基層類,其他的 activity 繼承該父類后,通過父類的方法來實(shí)現(xiàn)各種功能, 這種設(shè)計(jì)在其他領(lǐng)域也較為常見。 .2 broadc
37、astbroadcast intentintent receiverreceiver 介紹介紹 可以使用 broadcastreceiver 來讓應(yīng)用對(duì)一個(gè)外部的時(shí)間作出相應(yīng)。例如,當(dāng)電話 呼入這個(gè)外部時(shí)間到來的時(shí)候,可以利用 broadcastreceiver 進(jìn)行處理。 broadcastreceiver 不能生成 ui,也就是說對(duì)用戶是不透明的,用戶是看不到的。 broadcastreceiver 通過 notificationmanager 來通知用戶這些事情發(fā)生了。 broadcastreceiver 既可以在 androimanifest.xml 中注冊(cè),也可以在運(yùn)行時(shí)的代碼使用
38、context.registerreceiver()進(jìn)行注冊(cè)。只要是注冊(cè)了,當(dāng)時(shí)間來臨的時(shí)候,即使程序沒 有啟動(dòng),系統(tǒng)也在需要的時(shí)候啟動(dòng)程序。各種應(yīng)用程序還可以通過 context.sendbroadcast()將他們自己的 intent broadcasts 廣播給其他應(yīng)用程序。 .3 serviceservice 介紹介紹 service 即服務(wù)的意思,既然是服務(wù),那么 service 將是一個(gè)生命周期長而且沒有 用戶界面的程序。比如一個(gè)正在從播放列表中播放歌曲的媒體播放器,在這個(gè)媒體播放器 應(yīng)用中,應(yīng)該會(huì)有多個(gè) activity,讓使用者可以選擇歌曲并播放歌曲。然而,音樂
39、重放這 個(gè)功能并沒有對(duì)應(yīng)的 activity,因?yàn)槭褂谜邥?huì)認(rèn)為在導(dǎo)航到其他屏幕時(shí)音樂應(yīng)該還在播放。 在這個(gè)例子中,媒體播放器這個(gè) activity 會(huì)使用 context.startservice()來啟動(dòng)一個(gè) service,從而可以在后臺(tái)保持音樂的播放。同時(shí),系統(tǒng)也將保持這個(gè) service 一直執(zhí)行, 直到這個(gè) service 運(yùn)行結(jié)束。另外,我們還可以通過使用 context.bindservice()方法連 接到一個(gè) service 上(如果這個(gè) service 當(dāng)前還沒有處于啟動(dòng)狀態(tài),則將啟動(dòng)它) 。當(dāng)連接 到一個(gè) service 之后,還可用 service 提供的接口與它進(jìn)行通
40、訊。以媒體播放器為例,我 們還可以執(zhí)行暫停、重播等操作。 .4 contentcontent providerprovider 介紹介紹 android 這個(gè)系統(tǒng)和其他的操作系統(tǒng)還不太一樣,我們需要記住的是,數(shù)據(jù)在 android 當(dāng)中是私有的,當(dāng)然這些數(shù)據(jù)包括文件數(shù)據(jù)和數(shù)據(jù)庫數(shù)據(jù),以及一些其他類型的 數(shù)據(jù)。一個(gè) contentprovider 類實(shí)現(xiàn)了一組標(biāo)準(zhǔn)的方法接口,從而能夠讓其他的應(yīng)用保存 或讀取此 contentprovider 的各種數(shù)據(jù)類型,也就是說,一個(gè)程序可以通過實(shí)現(xiàn)一個(gè) contentprovider 的抽象接口將自己的數(shù)據(jù)暴露出去。外界根本看不到,也不用看
41、到這個(gè) 應(yīng)用暴露的數(shù)據(jù)在應(yīng)用當(dāng)中是如何存儲(chǔ)的,即用數(shù)據(jù)庫存儲(chǔ)還是文件存儲(chǔ),還是通過網(wǎng)上 獲得,這一切都不重要,重要的是外界可以通過這一套標(biāo)準(zhǔn)而統(tǒng)一的接口和程序里面的數(shù) 據(jù)打交道??梢宰x取程序數(shù)據(jù),也可以刪除程序的數(shù)據(jù),當(dāng)然中間會(huì)涉及一些權(quán)限問題。 .5 intentintent 介紹介紹 intent 是一種運(yùn)行時(shí)綁定(runtime binding)機(jī)制,它能在程序運(yùn)行的過程中連 接兩個(gè)不同的組件。通過 intent,你的程序可以向 android 表達(dá)某種請(qǐng)求或者意愿, android 會(huì)根據(jù)意愿的內(nèi)容選擇適當(dāng)?shù)慕M件來請(qǐng)求。比如,有一個(gè) activity 希望打開網(wǎng)頁 瀏覽
42、器查看某一網(wǎng)頁的內(nèi)容,那么這個(gè) activity 只需要發(fā)出 web_search_action 請(qǐng)求給 android,android 會(huì)根據(jù) intent 的請(qǐng)求內(nèi)容,查詢各組件注冊(cè)時(shí)聲明的 intentfilter, 找到網(wǎng)頁瀏覽器 activity 來瀏覽網(wǎng)頁。 android 的三個(gè)基本組件activity,service 和 broadcastreceiver,它們都是 通過 intent 機(jī)制激活的,而不同類型的組件有傳遞 intent 的不同方式。 (1) 要激活一個(gè)新的 activity,或者讓一個(gè)現(xiàn)有的 activity 執(zhí)行新的操作,可以通 過調(diào)用 context.sta
43、rtactivity()或者 activity.startactivityforresult()方法。這兩個(gè) 方法需要傳入的 intent 參數(shù)也稱為 activity action intent(活動(dòng)行為意圖) ,根據(jù) intent 對(duì)象對(duì)目標(biāo) activity 描述的不同,來啟動(dòng)與之相匹配的 activity 或傳遞信息。 (2) 要啟動(dòng)一個(gè)新的服務(wù),或者向一個(gè)已有的服務(wù)傳遞新的指令,調(diào)用 context.startservice()方法或調(diào)用 context.bindservice()方法將調(diào)用此方法的上下文 對(duì)象與 service 綁定。 (3) 通過 context.sendbroa
44、dcast()、context.sendorderbroadcast()和 context.send-stickbroadcast()這三個(gè)方法可以發(fā)送 broadcastintent。broadcastintent 發(fā)送后,所有已注冊(cè)的擁有與之相匹配 intentfilter 的 broadcastreceiver 就會(huì)被激活。這種機(jī)制被廣泛運(yùn)用于設(shè)備或系統(tǒng)狀態(tài)變化的通知, 一個(gè)常見的例子是,當(dāng) android 的電池電量過低時(shí),系統(tǒng)會(huì)發(fā)送 action 為 battery_low 的 廣播,接著任何可匹配該 action 的 intentfilter 注冊(cè)的 broadcastreceiver 都會(huì)各自運(yùn) 行自定義的處理代碼,比如關(guān)閉設(shè)備的 wifi 和 gps 以節(jié)省電池消耗。 intent 一旦發(fā)出,android 都會(huì)準(zhǔn)確找到相匹配的一個(gè)或多個(gè) activity、service 或 broadcast-receiver 作為響應(yīng)。所以,不同類型的 intent 消息不會(huì)出現(xiàn)重疊: broadcastintent 消息只會(huì)發(fā)送給 broadcastreceiver,而絕不可能發(fā)送給 activity 或 service。由 startactivity()傳遞的消息也只可能發(fā)送給 activity,由 startservice() 傳遞的 intent 只可能發(fā)送給 se
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年房地產(chǎn)市場(chǎng)中的臨時(shí)推廣活動(dòng)有效性分析
- 2026年端午節(jié)的民族特色清明節(jié)的緬懷與回憶
- 2025年陜西白水人事考試及答案
- 2025年智聯(lián)招聘事業(yè)單位要考試及答案
- 2025年社工人事考試及答案
- 2025年扶余事業(yè)編歷年考試真題及答案
- 2025年廈門市藥學(xué)類事業(yè)編考試及答案
- 2025年淮安盱眙衛(wèi)生事業(yè)編考試及答案
- 2026年圖書館信息素養(yǎng)培訓(xùn)
- 湖北某國有人才集團(tuán)招聘外包工作人員3人筆試備考試題及答案解析
- 中西醫(yī)結(jié)合診治妊娠胚物殘留專家共識(shí)(2024年版)
- 2025-2026學(xué)年北京市海淀區(qū)初二(上期)期末物理試卷(含答案)
- (正式版)DB51∕T 2732-2025 《用材林培育技術(shù)規(guī)程 杉木》
- 美容院2025年度工作總結(jié)與2026年發(fā)展規(guī)劃
- 癲癇患者的護(hù)理研究進(jìn)展
- 2025年12月福建廈門市鷺江創(chuàng)新實(shí)驗(yàn)室管理序列崗位招聘8人備考題庫必考題
- 高一生物上冊(cè)期末考試題庫含解析及答案
- 收購商場(chǎng)協(xié)議書范本
- 干熱復(fù)合事件對(duì)北半球植被的影響及響應(yīng)機(jī)制研究
- 2025年四川單招護(hù)理試題及答案
- 鋼梁現(xiàn)場(chǎng)安裝施工質(zhì)量通病、原因分析及應(yīng)對(duì)措施
評(píng)論
0/150
提交評(píng)論