秋霞电影网午夜鲁丝片无码,真人h视频免费观看视频,囯产av无码片毛片一级,免费夜色私人影院在线观看,亚洲美女综合香蕉片,亚洲aⅴ天堂av在线电影猫咪,日韩三级片网址入口

Android智能手機(jī)開發(fā)課程講義完整版

上傳人:無(wú)*** 文檔編號(hào):231342580 上傳時(shí)間:2023-09-01 格式:PPT 頁(yè)數(shù):162 大?。?.10MB
收藏 版權(quán)申訴 舉報(bào) 下載
Android智能手機(jī)開發(fā)課程講義完整版_第1頁(yè)
第1頁(yè) / 共162頁(yè)
Android智能手機(jī)開發(fā)課程講義完整版_第2頁(yè)
第2頁(yè) / 共162頁(yè)
Android智能手機(jī)開發(fā)課程講義完整版_第3頁(yè)
第3頁(yè) / 共162頁(yè)

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《Android智能手機(jī)開發(fā)課程講義完整版》由會(huì)員分享,可在線閱讀,更多相關(guān)《Android智能手機(jī)開發(fā)課程講義完整版(162頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、AndroidAndroid智能手機(jī)開發(fā)課智能手機(jī)開發(fā)課程講義程講義(完整版完整版)索引索引nAndroid教程01-平臺(tái)概述-6nAndroid教程02-開發(fā)環(huán)境-37nAndroid教程03-應(yīng)用程序模型-55nAndroid教程04-用戶界面-72nAndroid教程05-應(yīng)用編程-117nAndroid教程06-網(wǎng)絡(luò)連接-137nAndroid教程07-硬件訪問(wèn)-142浙江大學(xué)計(jì)算機(jī)學(xué)院課程結(jié)構(gòu)課程結(jié)構(gòu)n目標(biāo):了解智能手機(jī)開發(fā)現(xiàn)狀,Android平臺(tái)體系結(jié)構(gòu)和應(yīng)用程序模型,覆蓋了幾個(gè)主要技術(shù)應(yīng)用。平臺(tái)綜述平臺(tái)綜述開發(fā)環(huán)境開發(fā)環(huán)境程序結(jié)構(gòu)程序結(jié)構(gòu)數(shù)據(jù)存取數(shù)據(jù)存取網(wǎng)絡(luò)連接網(wǎng)絡(luò)連接硬件訪問(wèn)硬

2、件訪問(wèn)圖形編程圖形編程用戶界面用戶界面HelloWorldHelloAndroidFileAndroidHttpAndroidCameraAndroidHelloAndroid浙江大學(xué)計(jì)算機(jī)學(xué)院課程結(jié)構(gòu)課程結(jié)構(gòu)nAndroid平臺(tái)綜述:q平臺(tái)介紹、開發(fā)者社區(qū)n開發(fā)環(huán)境:q構(gòu)建Android開發(fā)環(huán)境n應(yīng)該程序:q應(yīng)用程序結(jié)構(gòu)n典型應(yīng)用:q用戶界面q圖形編程q數(shù)據(jù)存取q網(wǎng)絡(luò)連接q硬件訪問(wèn)浙江大學(xué)計(jì)算機(jī)學(xué)院獲取獲取Android資料的途徑資料的途徑nhttp:/q有時(shí)需要翻墻nhttp:/q下載SDK等相關(guān)軟件q查看文檔q在線幫助q開發(fā)社區(qū)浙江大學(xué)計(jì)算機(jī)學(xué)院1、平臺(tái)概述、平臺(tái)概述智能手機(jī)開發(fā)智能手機(jī)

3、開發(fā)2010.06.開放手機(jī)聯(lián)盟開放手機(jī)聯(lián)盟n開放手機(jī)聯(lián)盟,Open Handset Alliance:是美國(guó)Google 公司與2007 年11 月5 日宣布組建的一個(gè)全球性的聯(lián)盟組織。n聯(lián)盟將會(huì)支持Google 發(fā)布的Android 手機(jī)操作系統(tǒng)或者應(yīng)用軟件,共同開發(fā)名為Android 的開放源代碼的移動(dòng)系統(tǒng)。n開放手機(jī)聯(lián)盟包括手機(jī)制造商、手機(jī)芯片廠商和移動(dòng)運(yùn)營(yíng)商幾類。目前,聯(lián)盟成員數(shù)量已經(jīng)達(dá)到了43 家。浙江大學(xué)計(jì)算機(jī)學(xué)院移動(dòng)手機(jī)聯(lián)盟創(chuàng)始成員移動(dòng)手機(jī)聯(lián)盟創(chuàng)始成員nAplix、Ascender、Audience、Broadcom、中國(guó)移動(dòng)、eBay、Esmertec、谷歌、宏達(dá)電、英特爾、

4、KDDI、Living Image、LG、Marvell、摩托羅拉、NMS、NTT DoCoMo、Nuance、Nvidia、PacketVideo、高通、三星、SiRF、SkyPop、Sonic Network、Sprint Nextel、Synaptics、TAT、意大利電信、西班牙電信、德州儀器、T-Mobile和Wind River。浙江大學(xué)計(jì)算機(jī)學(xué)院浙江大學(xué)計(jì)算機(jī)學(xué)院Google Phone浙江大學(xué)計(jì)算機(jī)學(xué)院OHA與與AndroidnOHA是一個(gè)軟硬件開發(fā)者組織,包括 Google,NTT DoCoMo,Sprint Nextel,and HTC n目標(biāo):q加速智能移動(dòng)設(shè)備的發(fā)展 q

5、提供用戶更多更好更便宜的服務(wù)n由OHA開發(fā)的Android,是第一個(gè)完整的、開放的、免費(fèi)的智能移動(dòng)開發(fā)平臺(tái)。浙江大學(xué)計(jì)算機(jī)學(xué)院AndroidnAndroid 軟件系列包括操作系統(tǒng)、中間件和一些關(guān)鍵應(yīng)用。nAndroid是基于JAVA的系統(tǒng),運(yùn)行在 Linux 2.6核上。nAndroid SDK 提供多種開發(fā)所必要的工具與API。浙江大學(xué)計(jì)算機(jī)學(xué)院特點(diǎn)特點(diǎn)1n應(yīng)用框架可以重復(fù)使用,其組件也可以更換。nDalvik虛擬機(jī)針對(duì)移動(dòng)設(shè)備進(jìn)行了優(yōu)化。n優(yōu)化的圖形能力支持2D、3D圖形(OpenGL ES 1.0)。n集成了基于開源WebKit引掣的瀏覽器。nSQLite作為結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)。浙江大學(xué)計(jì)算

6、機(jī)學(xué)院特點(diǎn)特點(diǎn)2n多媒體支持多種音頻、視頻格式。nGSM Telephony(hardware dependent)n支持藍(lán)牙Bluetooth,3G和WiFin支持照相機(jī)、GPS、指南針和加速度儀等傳感器硬件。n豐富的開發(fā)環(huán)境。包括模擬機(jī)、調(diào)試工具、內(nèi)存運(yùn)行檢測(cè),以及為Eclipse IDE所寫的插件。浙江大學(xué)計(jì)算機(jī)學(xué)院Android的優(yōu)勢(shì)的優(yōu)勢(shì)n 源代碼完全開放,便于開發(fā)人員更清楚的把握實(shí)現(xiàn)細(xì)節(jié),便于提高開發(fā)人員的技術(shù)水平,有利于開發(fā)出更具差異性的應(yīng)用。n采用了對(duì)有限內(nèi)存、電池和CPU 優(yōu)化過(guò)的虛擬機(jī)Dalvik,Android 的運(yùn)行速度比想象的要快很多。n運(yùn)營(yíng)商(中國(guó)移動(dòng)等)的大力支持

7、,產(chǎn)業(yè)鏈條的熱捧。n良好的盈利模式(3/7 開),產(chǎn)業(yè)鏈條的各方:運(yùn)營(yíng)商、制造商、獨(dú)立軟件生產(chǎn)商都可以獲得不錯(cuò)的利益。將移動(dòng)終端的評(píng)價(jià)標(biāo)準(zhǔn)從硬件向軟件轉(zhuǎn)變,極大的激發(fā)了軟件開發(fā)者的熱情。nAndroid 的源代碼遵循Apache V2 軟件許可,而不是通常的GPL v2 許可。有利于商業(yè)開發(fā)。n具有強(qiáng)大的Linux 社區(qū)的支持。浙江大學(xué)計(jì)算機(jī)學(xué)院Android的不足的不足n由于采用了Java 作為應(yīng)用開發(fā)語(yǔ)言,目前可用的傳統(tǒng)第三方應(yīng)用還很少,但由于Android 是一款完全開源的移動(dòng)計(jì)算平臺(tái),相信第三方應(yīng)用會(huì)很快的豐富起來(lái)。nGoogle 提供了一套Java 核心包(J2SE 5,J2SE 6

8、)的有限子集,尚不承諾遵守Java 任何Java 規(guī)范,可能會(huì)造成ava 陣營(yíng)的進(jìn)一步分裂。n現(xiàn)有應(yīng)用完善度不太夠,需要的開發(fā)工作量較大。n基于QEMU 開發(fā)的模擬器調(diào)試手段不十分豐富,只支持通話、等,速度慢。n暫不具備Push Mail 和Office(DataViz、QuickOffice 計(jì)劃近期推出)功能,目前主要面向的是普通消費(fèi)者用戶,對(duì)商業(yè)用戶支持尚弱。浙江大學(xué)計(jì)算機(jī)學(xué)院系統(tǒng)環(huán)境系統(tǒng)環(huán)境nAndroid SDK所支持的操作系統(tǒng):qWindows XP(32-bit)or Vista(32-or 64-bit)qMac OS X 10.4.8 or later(x86 only)qL

9、inux(tested on Linux Ubuntu Dapper Drake)浙江大學(xué)計(jì)算機(jī)學(xué)院Android的系統(tǒng)架構(gòu)的系統(tǒng)架構(gòu)浙江大學(xué)計(jì)算機(jī)學(xué)院Linux KernelnAndroid 基于Linux內(nèi)核,但不是Linuxn內(nèi)核提供系統(tǒng)核心服務(wù),如進(jìn)程、內(nèi)存、電源管理,網(wǎng)絡(luò)連接,驅(qū)動(dòng)與安全等。n并不包括全部的Linux。浙江大學(xué)計(jì)算機(jī)學(xué)院Android內(nèi)核內(nèi)核nLinux 內(nèi)核位于硬件和軟件堆之間的抽象層q核心服務(wù):安全機(jī)制、內(nèi)存管理、進(jìn)程管理、網(wǎng)絡(luò)、硬件驅(qū)動(dòng)。q內(nèi)核扮演的是硬件層和系統(tǒng)其它層次之間的一個(gè)抽象層的概念。q操作系統(tǒng)的初始化和編程接口和標(biāo)準(zhǔn)的Linux 系統(tǒng)是有所不同的。浙

10、江大學(xué)計(jì)算機(jī)學(xué)院LibrariesnBionic LibcnFunction LibrariesnNative ServersnHardware Abstraction Libraries浙江大學(xué)計(jì)算機(jī)學(xué)院LibrariesnC/C+庫(kù):被各種Android 組件使用通過(guò)應(yīng)用程序框架開發(fā)者可以使用其功能包括:n媒體庫(kù):MPEG4 H.264 MP3 JPG PNG.nWebKit/LibWebCore:Web 瀏覽引擎nSQLite 關(guān)系數(shù)據(jù)庫(kù)引擎n2D,3D 圖形庫(kù)、引擎浙江大學(xué)計(jì)算機(jī)學(xué)院Function LibrariesnWebKitq基于開源WebKit的瀏覽器q支持CSS、Javas

11、cript、DOM、Ajaxn多媒體框架q基于PacketVideo OpenCORE平臺(tái)q支持標(biāo)準(zhǔn)音頻、視頻nSQLiteq輕型數(shù)據(jù)庫(kù),支持多種平臺(tái)浙江大學(xué)計(jì)算機(jī)學(xué)院Native Servers-Surfacen為多種應(yīng)用提供2D、3D表面設(shè)計(jì)浙江大學(xué)計(jì)算機(jī)學(xué)院Native Servers-Audion音頻處理浙江大學(xué)計(jì)算機(jī)學(xué)院Hardware Abstraction Libsn硬件虛擬層nUser space C/C+library layern硬件接口驅(qū)動(dòng)n使Android平臺(tái)邏輯與硬件接口分離浙江大學(xué)計(jì)算機(jī)學(xué)院Andoid Runtimen應(yīng)用開發(fā)語(yǔ)言:JavanDalvik虛擬機(jī)q指

12、令:Dalvik Excutable nJava標(biāo)準(zhǔn)庫(kù)q把java代碼編譯為Dalvik可執(zhí)行文件(dex format)浙江大學(xué)計(jì)算機(jī)學(xué)院運(yùn)行環(huán)境運(yùn)行環(huán)境n核心庫(kù)提供的Java 功能Dalvik 虛擬機(jī)依賴于Linux 內(nèi)核,n可同時(shí)運(yùn)行多個(gè)Dalvik 虛擬機(jī),n每一個(gè)Android 應(yīng)用程序在它自己的Dalvik VM 實(shí)例中運(yùn)行VM 執(zhí)行優(yōu)化的Dalvik 可執(zhí)行文件(.dex)qDx-工具把編譯過(guò)的Java 文件轉(zhuǎn)換為dex 文件浙江大學(xué)計(jì)算機(jī)學(xué)院Dalvik Virtual MachinenAndroid custom implementation virtual machineq

13、Provides application portability and runtime consistencyqRuns optimized file format(.dex)and Dalvik bytecodeqJava.class/.jar files converted to.dex at build timenDesigned for embedded environmentqSupports multiple virtual machine processes per deviceqHighly CPU-optimized bytecode interpreterqEfficie

14、ntly Using runtime memorynCore LibrariesqCore APIs for Java language provide a powerful,yet simple and familiar development platform浙江大學(xué)計(jì)算機(jī)學(xué)院DVM vs JVMnDVMqGoogleqDalvik excutablenJVMqSunqJava bytecode浙江大學(xué)計(jì)算機(jī)學(xué)院浙江大學(xué)計(jì)算機(jī)學(xué)院Applications FrameworknActivity managerq管理運(yùn)行應(yīng)用程序nContent Providerq在各應(yīng)用之間共享數(shù)據(jù)nReso

15、urce Managerq管理非代碼資源nNotification Managerq顯示用戶提示和狀態(tài)欄nViews Systemq可擴(kuò)展顯示,可構(gòu)建UI浙江大學(xué)計(jì)算機(jī)學(xué)院應(yīng)用和框架應(yīng)用和框架n核心應(yīng)用,例如聯(lián)系人,電子郵件,電話,瀏覽器,日歷,地圖,.n充分訪問(wèn)所有核心應(yīng)用框架APIn簡(jiǎn)化組件的重用n用Java 編寫應(yīng)用程序浙江大學(xué)計(jì)算機(jī)學(xué)院ApplicationsnJAVA編寫的應(yīng)用程序浙江大學(xué)計(jì)算機(jī)學(xué)院開發(fā)環(huán)境開發(fā)環(huán)境 nIDE Eclipse nEclipse plug-in-ADTnSoftware Development Kit(SDK)nAndroid EmulatornDebu

16、ger浙江大學(xué)計(jì)算機(jī)學(xué)院Constants浙江大學(xué)計(jì)算機(jī)學(xué)院2、開發(fā)環(huán)境、開發(fā)環(huán)境智能手機(jī)開發(fā)建立建立Android開發(fā)環(huán)境開發(fā)環(huán)境nJDK 5 or JDK 6(JRE alone is not sufficient)q設(shè)置環(huán)境變量:JAVA_HOME、CLASSPATHnEclipse 3.3(Europa),3.4(Ganymede)nAndroid SDK nADT 0.8.0nEclipse安裝ADT 插件浙江大學(xué)計(jì)算機(jī)學(xué)院Quick Startn1.準(zhǔn)備q安裝JDK(version 5 or 6 required)qEclipse(version 3.4 or 3.5,needed

17、 only if you want develop using the ADT Plugin).n2.下載安裝SDK starter packageqTo install the SDK,simply unpack the starter package to a safe location and then add the location to your PATH.n3.為Eclipse安裝ADT插件n4.添加其它SDK組件qUse the Android SDK and AVD Manager,included in the SDK starter package,to add one

18、or more Android platforms and other components to your SDK.nSDK Setup Done!浙江大學(xué)計(jì)算機(jī)學(xué)院Android可視化環(huán)境配置可視化環(huán)境配置nJDK1.6q下載網(wǎng)址:http:/ SDK 2.xq下載網(wǎng)址:http:/浙江大學(xué)計(jì)算機(jī)學(xué)院安裝安裝Java JDKnJDK 5 or JDK 6(JRE alone is not sufficient)nAndroid Development Tools plugin(optional)nNot compatible with Gnu Compiler for Java(gcj)浙

19、江大學(xué)計(jì)算機(jī)學(xué)院安裝安裝EclipsenEclipse 3.4(Ganymede)or 3.5(Galileo)nEclipse JDT plugin(included in most Eclipse IDE packages)qIf you need to install or update Eclipse,you can download it from http:/www.eclipse.org/downloads/.nSeveral types of Eclipse packages are available for each platform.For developing Andr

20、oid applications,we recommend that you install one of these packages:qEclipse IDE for Java EE Developers qEclipse IDE for Java Developers qEclipse for RCP/Plug-in Developers qEclipse Classic(versions 3.5.1 and higher)浙江大學(xué)計(jì)算機(jī)學(xué)院Android的的SDK版本版本nAndroid 2.1 Platform(new!)nAndroid 1.6 PlatformnAndroid 1

21、.5 PlatformnOlder PlatformsqAndroid 2.0.1 PlatformqAndroid 2.0 PlatformqAndroid 1.1 Platform浙江大學(xué)計(jì)算機(jī)學(xué)院操作系統(tǒng)操作系統(tǒng)nWindows XP(32-bit)or Vista(32-or 64-bit)nMac OS X 10.5.8 or later(x86 only)nLinux(tested on Linux Ubuntu Hardy Heron)q64-bit distributions must be capable of running 32-bit applications.For

22、information about how to add support for 32-bit applications.浙江大學(xué)計(jì)算機(jī)學(xué)院硬件環(huán)境硬件環(huán)境n不包括JAVA、Eclipse。浙江大學(xué)計(jì)算機(jī)學(xué)院安裝安裝Androidn解壓,在Eclipse中Install New Software浙江大學(xué)計(jì)算機(jī)學(xué)院Android學(xué)習(xí)方法學(xué)習(xí)方法n了解什么是Androin建立開發(fā)環(huán)境n閱讀SDK 文檔n背景知識(shí)qJavaq面向?qū)ο髊設(shè)計(jì)模式qEclipse使用qJ2ME、Brew、Symbian(選)浙江大學(xué)計(jì)算機(jī)學(xué)院Adroid應(yīng)用應(yīng)用浙江大學(xué)計(jì)算機(jī)學(xué)院Activity活動(dòng)活動(dòng)1n最基本的And

23、roid 應(yīng)用程序組件,應(yīng)用程序中,一個(gè)活動(dòng)通常就是一個(gè)單獨(dú)的屏幕。每一個(gè)活動(dòng)都被實(shí)現(xiàn)為一個(gè)獨(dú)立的類,并且從活動(dòng)基類中繼承而來(lái),活動(dòng)類將會(huì)顯示由視圖控件組成的用戶接口,并對(duì)事件做出響應(yīng)。n大多數(shù)的應(yīng)用是由多個(gè)屏幕顯示組成。q例如:一個(gè)文本信息的應(yīng)用也許有一個(gè)顯示發(fā)送消息的聯(lián)系人列表屏幕,第二個(gè)屏幕用來(lái)寫文本消息和選擇收件人,再來(lái)一個(gè)屏幕查看消息歷史或者消息設(shè)置操作等。這里每一個(gè)這樣的屏幕就是一個(gè)活動(dòng),很容易實(shí)現(xiàn)從一個(gè)屏幕到一個(gè)新的屏幕并且完成新的活動(dòng)。n在某些情況下當(dāng)前的屏幕也許需要向上一個(gè)屏幕活動(dòng)提供返回值-比如讓用戶從手機(jī)中挑選一張照片返回通訊錄做為電話撥入者的頭像。浙江大學(xué)計(jì)算機(jī)學(xué)院Ac

24、tivity活動(dòng)活動(dòng)2n當(dāng)一個(gè)新的屏幕打開后,前一個(gè)屏幕將會(huì)暫停,并保存在歷史堆棧中。用戶可以返回到歷史堆棧中的前一個(gè)屏幕。當(dāng)屏幕不再使用時(shí),還可以從歷史堆棧中刪除。默認(rèn)情況下,Android 將會(huì)保留從主屏幕到每一個(gè)應(yīng)用的運(yùn)行屏幕。n簡(jiǎn)單理解Activity 代表一個(gè)用戶所能看到的屏幕,Activity 主要是處理一個(gè)應(yīng)用的整體性工作,例如,監(jiān)聽系統(tǒng)事件(按鍵事件、觸摸屏事件等)、為用戶顯示指定的View,啟動(dòng)其他Activity 等。所有應(yīng)用的Activity都繼承于android.app.Activity 類,該類是Android 提供的基層類,其他的Activity 繼承該父類后,通過(guò)

25、Override父類的方法來(lái)實(shí)現(xiàn)各種功能,這種設(shè)計(jì)在其他領(lǐng)域也較為常見。浙江大學(xué)計(jì)算機(jī)學(xué)院Activity生命周期生命周期浙江大學(xué)計(jì)算機(jī)學(xué)院Android模擬器模擬器nAndroid Emulator:q可模擬電話本、通話等功能q內(nèi)置的瀏覽器和Google Maps都可以聯(lián)網(wǎng)q可以使用鍵盤輸入,q可單擊模擬器按鍵輸入,q可以使用鼠標(biāo)單擊、拖動(dòng)屏幕進(jìn)行操作。浙江大學(xué)計(jì)算機(jī)學(xué)院Android模擬器模擬器n模擬器和真機(jī)的不同之處 q不支持呼叫和接聽實(shí)際來(lái)電,但可以通過(guò)控制臺(tái)模擬電話呼叫(呼入和呼出)。q不支持USB連接。q不支持相機(jī)/視頻捕捉。q不支持音頻輸入(捕捉),但支持輸出(重放)。q不支持?jǐn)U

26、展耳機(jī)。q不能確定連接狀態(tài)。q不能確定電池電量水平和交流充電狀態(tài)。q不能確定SD卡的插入/彈出。q不支持藍(lán)牙。浙江大學(xué)計(jì)算機(jī)學(xué)院模擬器使用注意事項(xiàng)模擬器使用注意事項(xiàng)n遇到系統(tǒng)關(guān)于C盤空間不足之類的提示,是由于Android模擬器每次運(yùn)行時(shí)會(huì)臨時(shí)生成幾個(gè).tmp后綴的臨時(shí)文件,一段時(shí)間后,其可能占用幾G的磁盤空間。需要手工定期清理。浙江大學(xué)計(jì)算機(jī)學(xué)院3、應(yīng)用程序、應(yīng)用程序智能手機(jī)開發(fā)智能手機(jī)開發(fā)Android虛擬機(jī)虛擬機(jī)DalviknDalvik和標(biāo)準(zhǔn)Java虛擬機(jī)(JVM)首要差別qDalvik 基于寄存器,而JVM 基于棧。n基于寄存器的虛擬機(jī)對(duì)于更大的程序來(lái)說(shuō),在它們編譯的時(shí)候,花費(fèi)的時(shí)間

27、更短。nDalvik和Java運(yùn)行環(huán)境的區(qū)別qDalvik 經(jīng)過(guò)優(yōu)化,允許在有限的內(nèi)存中同時(shí)運(yùn)行多個(gè)虛擬機(jī)的實(shí)例,q每一個(gè)Dalvik 應(yīng)用作為一個(gè)獨(dú)立的Linux 進(jìn)程執(zhí)行。n獨(dú)立進(jìn)程可防止在虛擬機(jī)崩潰的時(shí)候所有程序都被關(guān)閉。qDalvik 提供一個(gè)擁有較少限制許可證的平臺(tái)。浙江大學(xué)計(jì)算機(jī)學(xué)院重要包的描述重要包的描述nAndroid.app:提供高層的程序模型、提供基本的運(yùn)行環(huán)境nAndroid.content:包含各種的對(duì)設(shè)備上的數(shù)據(jù)進(jìn)行訪問(wèn)和發(fā)布的類nAndroid.database:通過(guò)內(nèi)容提供者瀏覽和操作數(shù)據(jù)庫(kù)nAndroid.graphics:底層的圖形庫(kù),可以將它們直接繪制到屏幕

28、上.nAndroid.location:定位和相關(guān)服務(wù)的類nAndroid.media:提供一些類管理多種音頻、視頻的媒體接口nA:提供幫助網(wǎng)絡(luò)訪問(wèn)的類,超過(guò)通常的.*接口nAndroid.os:提供了系統(tǒng)服務(wù)、消息傳輸、IPC 機(jī)制nAndroid.opengl:提供OpenGL 的工具nAndroid.provider:提供類訪問(wèn)Android 的內(nèi)容提供者nAndroid.telephony:提供與撥打電話相關(guān)的API 交互nAndroid.view:提供基礎(chǔ)的用戶界面接口框架nAndroid.util:涉及工具性的方法,例如時(shí)間日期的操作nAndroid.webkit:默認(rèn)瀏覽器操作接

29、口nAndroid.widget:各種UI 元素(大部分可見)在應(yīng)用程序的屏幕中使用浙江大學(xué)計(jì)算機(jī)學(xué)院Android的相關(guān)文件類型的相關(guān)文件類型nJava文件-應(yīng)用程序源文件qandroid 本身相當(dāng)一部分都是用java 編寫而成qandroid 的應(yīng)用使用java 來(lái)開發(fā)。nClass文件-Java編譯后的目標(biāo)文件qGoogle使用Dalvik 來(lái)運(yùn)行應(yīng)用程序qAndroid的class 文件是編譯過(guò)程中的中間目標(biāo)文件,需要鏈接成dex 文件才能在Dalvik 上運(yùn)行。浙江大學(xué)計(jì)算機(jī)學(xué)院Dex文件文件nDex文件-Android平臺(tái)上的可執(zhí)行文件qAndroid 虛擬機(jī)Dalvik 支持的字

30、節(jié)碼文件格式。q這種虛擬機(jī)執(zhí)行的并非Java 字節(jié)碼,而是另一種字節(jié)碼:dex 格式的字節(jié)碼。q在編譯Java 代碼之后,通過(guò)Android 平臺(tái)上的工具可以將Java 字節(jié)碼轉(zhuǎn)換成Dex 字節(jié)碼。qDalvik VM 針對(duì)手機(jī)程式/CPU 做過(guò)最佳化,可以同時(shí)執(zhí)行許多VM 而不會(huì)占用太多Resource。浙江大學(xué)計(jì)算機(jī)學(xué)院Apk文件文件nApk文件-Android上的安裝文件qApk 是Android 安裝包的擴(kuò)展名,一個(gè)Android 安裝包包含了與該Android 應(yīng)用程序相關(guān)的所有文件。napk文件將AndroidManifest.xml文件、應(yīng)用程序代碼(.dex 文件)、資源文件和

31、其他文件打成一個(gè)壓縮包。q一個(gè)工程只能打進(jìn)一個(gè).apk文件。qapk 文件的本質(zhì)是一個(gè)zip包。浙江大學(xué)計(jì)算機(jī)學(xué)院Hello world!第一個(gè)運(yùn)行程序第一個(gè)運(yùn)行程序HelloAndroidnEclipse自動(dòng)生成qnew android projectnHelloAndroid浙江大學(xué)計(jì)算機(jī)學(xué)院HelloAndroid.javanJava程序package com.android.helloAndroid;import android.app.Activity;import android.os.Bundle;public class HelloAndroid extends Activit

32、y /*Called when the activity is first created.*/Override public void onCreate(Bundle savedInstanceState)super.onCreate(savedInstanceState);setContentView(R.layout.main);浙江大學(xué)計(jì)算機(jī)學(xué)院R.javanJava程序/*AUTO-GENERATED FILE.DO NOT MODIFY.*/package com.android.helloAndroid;public final class R public static fin

33、al class attr public static final class drawable public static final int icon=0 x7f020000;public static final class layout public static final int main=0 x7f030000;public static final class string public static final int app_name=0 x7f040001;public static final int hello=0 x7f040000;浙江大學(xué)計(jì)算機(jī)學(xué)院main.xm

34、lnXml文件Resources浙江大學(xué)計(jì)算機(jī)學(xué)院strings.xmlnXml文件 Hello Android,2010.HelloAndroid將要顯示內(nèi)容:Hello Android,2010.浙江大學(xué)計(jì)算機(jī)學(xué)院RUNRUN浙江大學(xué)計(jì)算機(jī)學(xué)院模擬運(yùn)行模擬運(yùn)行顯示內(nèi)容:Hello Android,2010.浙江大學(xué)計(jì)算機(jī)學(xué)院命令行運(yùn)行命令行運(yùn)行n啟動(dòng)模擬器qemulator-avd android1.6-skin HVGA-pn連接模擬器:qtelnet localhost 5554n撥打電話:qgsm call 13810000086n發(fā)送短信:qsms send 13810000086

35、 HelloAndroid浙江大學(xué)計(jì)算機(jī)學(xué)院模擬器屏幕模擬器屏幕nHVGA-L:480 x320橫屏nHVGA-P:320 x480豎屏(默認(rèn))nQVGA-L:320 x240橫屏nQVGA-P:240 x320豎屏nWVGA-L:800 x480橫屏浙江大學(xué)計(jì)算機(jī)學(xué)院顯示圖像顯示圖像n增加ImageView浙江大學(xué)計(jì)算機(jī)學(xué)院4、用戶界面、用戶界面智能手機(jī)開發(fā)智能手機(jī)開發(fā)User Interface用戶界面用戶界面n說(shuō)明布局Layoutn創(chuàng)建菜單Menusn創(chuàng)建對(duì)話Dialogsn處理用戶UI事件n用戶提示n確定風(fēng)格n定制組件n數(shù)據(jù)與界面綁定浙江大學(xué)計(jì)算機(jī)學(xué)院模擬器屏幕模擬器屏幕nHVGA-L

36、:480 x320橫屏nHVGA-P:320 x480豎屏(默認(rèn))nQVGA-L:320 x240橫屏nQVGA-P:240 x320豎屏nWVGA-L:800 x480橫屏浙江大學(xué)計(jì)算機(jī)學(xué)院UI用戶界面設(shè)計(jì):用戶界面設(shè)計(jì):Icon設(shè)計(jì)設(shè)計(jì)n應(yīng)用程序需要各種各樣的圖標(biāo)尺寸和定位尺寸和定位nLauncher icons要有多樣化的形狀和樣式,但又要形成統(tǒng)一的視覺風(fēng)格,其尺寸和定位也用統(tǒng)一:q紅色邊框?yàn)閳D標(biāo)尺寸q藍(lán)色邊框是圖形尺寸,比圖標(biāo)尺寸稍小,圖形之外的空間用于顯示陰影和特殊效果。q橙色邊框是另外一種圖形尺寸。兩種類型的圖形尺寸可以達(dá)到統(tǒng)一的視覺權(quán)重。浙江大學(xué)計(jì)算機(jī)學(xué)院Icon的風(fēng)格的風(fēng)格n符

37、合當(dāng)下的流行趨勢(shì),避免過(guò)度使用隱喻。n高度簡(jiǎn)化和夸張,小尺寸圖標(biāo)也能易于識(shí)別,不宜太復(fù)雜。n嘗試抓住程序的主要特征,比如音像作為音樂(lè)的icon。n使用自然的輪廓和形狀,看起來(lái)幾何化和有機(jī)化,不失真實(shí)感。n采用前視角,幾乎沒(méi)有透視,光源在頂部。n不光滑但富有質(zhì)感。浙江大學(xué)計(jì)算機(jī)學(xué)院UI用戶界面設(shè)計(jì):用戶界面設(shè)計(jì):Widget設(shè)計(jì)設(shè)計(jì)nWidget是Android 1.5的一個(gè)新特性,允許程序顯示一些常用而又重要的信息在用戶的桌面主屏上q標(biāo)準(zhǔn)的Android系統(tǒng)映像包含了一些示例widgets包括指針時(shí)鐘、音樂(lè)播放器和其他工具如Google搜索欄。qWidget即是可由用戶自己編寫的功能控件。n典

38、型的Android Widget有三個(gè)主要組件:q邊框q框架q圖形控件以及其他元素n注意widgets的開狀尺寸以便在主屏上顯示浙江大學(xué)計(jì)算機(jī)學(xué)院User Interface GuidelinesnActivity and Task DesignqActivities are the basic,independent building blocks of applications.As you design your applications UI and feature set,you are free to re-use activities from other application

39、s as if they were yours,to enrich and extend your application.qThese guidelines describe how activities work,illustrates them with examples,and describes important underlying principles and mechanisms,such as multitasking,activity reuse,intents,the activity stack,and tasks.It covers this all from a

40、high-level design perspective.浙江大學(xué)計(jì)算機(jī)學(xué)院UI用戶界面設(shè)計(jì):用戶界面設(shè)計(jì):Menu設(shè)計(jì)設(shè)計(jì)n選項(xiàng)菜單Options Menu:活動(dòng)的主菜單。通過(guò)按下設(shè)備菜單鍵來(lái)顯示它。選項(xiàng)菜單包含兩組菜單項(xiàng):q圖標(biāo)菜單Icon Menun這個(gè)是當(dāng)用戶按下菜單鍵時(shí)最初出現(xiàn)屏幕下方的item集合。它支持最多6個(gè)菜單項(xiàng)。只有這些菜單支持圖標(biāo)而且這些菜單并不支持checkboxes或者radio buttons。q擴(kuò)展菜單Expanded Menun這是通過(guò)按“更多”菜單顯現(xiàn)出來(lái)的一個(gè)豎向的項(xiàng)目列表。它僅當(dāng)圖標(biāo)菜單過(guò)多時(shí)存在而且是由6個(gè)以及其它選項(xiàng)菜單組成。n上下文菜單Contex

41、t Menu:浮動(dòng)菜單列表,通常在你長(zhǎng)時(shí)間按在一個(gè)視圖上時(shí)出現(xiàn)(比如一個(gè)列表項(xiàng))n子菜單Submenu:浮動(dòng)菜單列表,通過(guò)在選項(xiàng)菜單或上下文菜單選擇菜單項(xiàng)顯露出來(lái)。不支持嵌套子菜單。浙江大學(xué)計(jì)算機(jī)學(xué)院Android UI布局布局nViewGroup通過(guò)各種Layout,控制所屬View的顯示位置。ViewGroup(Layout)ViewViewViewViewViewViewGroup(Layout)浙江大學(xué)計(jì)算機(jī)學(xué)院LayoutnAbsoluteLayoutnFrameLayoutnGridViewnLinearLayoutnListLayoutnRadioGroupnTableLayou

42、tn浙江大學(xué)計(jì)算機(jī)學(xué)院顯示圖像顯示圖像n增加ImageViewn與原先的TextView,按垂直線性布局。線性布局LinearLayout浙江大學(xué)計(jì)算機(jī)學(xué)院布局布局n線性布局LinearLayoutq垂直:android:orientation=vertical“q水平:android:orientation=horizontal浙江大學(xué)計(jì)算機(jī)學(xué)院FrameLayoutn在屏幕上故意保留的空白空間,可以填充一個(gè)單獨(dú)的對(duì)象。n所有子元素都釘?shù)狡聊坏淖笊辖莕不能為子元素指定位置浙江大學(xué)計(jì)算機(jī)學(xué)院TableLayoutn子元素放入到行與列中n不顯示行、列或是單元格邊界線n單元格不能橫跨行,如HTML

43、 中一樣浙江大學(xué)計(jì)算機(jī)學(xué)院AbsoluteLayoutn指明子元素確切的屏幕(X,Y)坐標(biāo)n(0,0)是左上角,下移或右移時(shí),坐標(biāo)值增加n允許元素重疊(但是不推薦)n注意:q一般建議不使用AbsoluteLayout 除非你有很好的理由來(lái)使用它q因?yàn)樗喈?dāng)嚴(yán)格并且在不同的設(shè)備顯示中不能很好地工作浙江大學(xué)計(jì)算機(jī)學(xué)院RelativeLayoutn讓子元素指定它們相對(duì)于其他元素的位置(通過(guò)ID 來(lái)指定)或相對(duì)于父布局對(duì)象,跟AbsoluteLayout這個(gè)絕對(duì)坐標(biāo)布局是個(gè)相反。n在RelativeLayout布局里的控件包含豐富的排列屬性:qLayout above:控件在指定控件的上方qLayou

44、t below:控件在指定控件的下方qLayout to left of。n使用 RelativeLayout布局的時(shí)候,盡少程序運(yùn)行時(shí)做控件布局的更改,因?yàn)?RelativeLayout布局里面的屬性之間,很容易沖突。浙江大學(xué)計(jì)算機(jī)學(xué)院Color顏色顏色nandroid.graphics.Color 包含顏色值qColor.BLACKqColor.BLUEqColor.CYANqColor.DKGRAYqColor.GRAYqColor.GREENqColor.LTGRAYqColor.MAGENTAqColor.REDqColor.TRANSPARENTqColor.WHITEqColor

45、.YELLOW浙江大學(xué)計(jì)算機(jī)學(xué)院字體風(fēng)格字體風(fēng)格Typefacenandroid.graphics.Typeface實(shí)踐qTypeface.create(Typeface family,int style)n創(chuàng)建一個(gè)混合型新的字體:有4*5 中搭配qTypeface.setTypeface(Typeface tf,int style)n設(shè)置一個(gè)混合型字體:有4*5 中搭配qTypeface.setTypeface(Typeface tf)n設(shè)置一個(gè)只有Typeface 風(fēng)格的字體:有五種形式n字體(4種)qBOLD、BOLD_ITALIC、ITALIC、NORMALq粗體、粗斜體、斜體、普通字

46、體n風(fēng)格(5種)qDEFAULT、DEFAULT_BOLD、MONOSPACE、SANS_SERIF、SERIFq默認(rèn)字體、默認(rèn)粗體、單間隔字體、無(wú)襯線字體、襯線字體浙江大學(xué)計(jì)算機(jī)學(xué)院Android菜單菜單nandroid提供了三種菜單類型,分別為options menu,context menu,sub menu。noptions menu(主菜單)就是通過(guò)按home鍵來(lái)顯示,ncontext menu(右鍵菜單)在view上按上2s后顯示n兩種menu都有可以加入子菜單,子菜單不能種不能嵌套子菜單。nandroid還提供了對(duì)菜單項(xiàng)進(jìn)行分組的功能,可以把相似功能的菜單項(xiàng)分成同一個(gè)組,這樣可以

47、通過(guò)調(diào)用setGroupCheckable,setGroupEnabled,setGroupVisible來(lái)設(shè)置菜單屬性,而無(wú)須單獨(dú)設(shè)置。浙江大學(xué)計(jì)算機(jī)學(xué)院OptionMenu 1nOptionMenu(主菜單)qoptions menu最多只能在屏幕最下面顯示6個(gè)菜單選項(xiàng),稱為icon menunicon menu不能有checkable選項(xiàng)。q多于6的菜單項(xiàng)會(huì)以more icon menu來(lái)調(diào)出,稱為expanded menu。qoptions menu通過(guò)activity的onCreateOptionsMenu來(lái)生成,q這個(gè)函數(shù)只會(huì)在menu第一次生成時(shí)調(diào)用。n任何想改變options

48、menu的想法只能在onPrepareOptionsMenu來(lái)實(shí)現(xiàn),這個(gè)函數(shù)會(huì)在menu顯示前調(diào)用。qonOptionsItemSelected 用來(lái)處理選中的菜單項(xiàng)。浙江大學(xué)計(jì)算機(jī)學(xué)院OptionMenu 2浙江大學(xué)計(jì)算機(jī)學(xué)院ContextMenu菜單菜單nContextMenu(右鍵菜單)qcontext menu是跟某個(gè)具體的view綁定在一起,在activity中用registerForContextMenu來(lái)為某個(gè)view注冊(cè)context menu。context menu在顯示前都會(huì)調(diào)用onCreateContextMenu來(lái)生成menu。onContextItemSelecte

49、d用來(lái)處理選中的菜單項(xiàng)。浙江大學(xué)計(jì)算機(jī)學(xué)院SubmenunSubmenu(子菜單)q一個(gè)浮動(dòng)菜單列表,通過(guò)在選項(xiàng)菜單或上下文菜單選擇菜單項(xiàng)顯露出來(lái)。不支持嵌套子菜單。浙江大學(xué)計(jì)算機(jī)學(xué)院ButtonnMain.xmlnButton事件響應(yīng)show=(TextView)findViewById(R.id.TextView01);press=(Button)findViewById(R.id.Button01);press.setOnClickListener(new OnClickListener()public void onClick(View v)show.setText(Hi,Google

50、 Android!););浙江大學(xué)計(jì)算機(jī)學(xué)院進(jìn)程優(yōu)先級(jí)順序進(jìn)程優(yōu)先級(jí)順序n 前臺(tái)進(jìn)程(Active Process):q前臺(tái)Activity、包含正在運(yùn)行的廣播接收器、正在運(yùn)行的服務(wù)n 可視進(jìn)程(Visible Process):q包含一個(gè)可視化的Activityn 服務(wù)進(jìn)程(Started Service Process):q包含一個(gè)被開啟的服務(wù)(處理服務(wù),不是直接可視,例如媒體播放器,網(wǎng)絡(luò)上傳、下載)n 后臺(tái)進(jìn)程(Background Process):q包含一個(gè)不可視的Activity(可以在任意時(shí)刻殺死該進(jìn)程來(lái)回收內(nèi)存)n 空進(jìn)程(Empty Process):q沒(méi)有持有任何應(yīng)用程序組

51、件浙江大學(xué)計(jì)算機(jī)學(xué)院Activity狀態(tài)狀態(tài)1nactive:q當(dāng)一個(gè)Activity 在屏幕的最上層時(shí)(對(duì)堆棧的最頂端),它就是屬于active 或者running 的狀態(tài)npaused:q如果一個(gè)Activity 失去焦點(diǎn)(focus)但還看得到它的畫面(比如:一個(gè)新的Activity 畫面并不是全屏幕或者它是一個(gè)半透明的情況),那失去焦點(diǎn)的Activity 則處在paused 的狀態(tài)。像這個(gè)失去焦點(diǎn)的Activity它還是完全活著的,并沒(méi)有消失。(活著的意思是指,Activity 自己本身所有的狀態(tài)及數(shù)據(jù)都還是存在的,也跟窗口管理程序window manager 保持聯(lián)系著),像這種pa

52、used 的Activity,會(huì)在一種情況下消失,那就是當(dāng)系統(tǒng)的內(nèi)存不夠用之時(shí),系統(tǒng)會(huì)自動(dòng)判斷,將不重要的Activity 移除。浙江大學(xué)計(jì)算機(jī)學(xué)院Activity狀態(tài)狀態(tài)2nstop:q如果一個(gè)Activity 被其它的Activity 完全的遮蓋住時(shí),它仍然保有全部的狀態(tài)及數(shù)據(jù),但因?yàn)樗巡辉俦皇褂谜呖匆?,所以它的畫面是被隱藏起來(lái)的(畫面不需要更新),當(dāng)系統(tǒng)內(nèi)存不足時(shí),這種stop 狀態(tài)的Activity 時(shí)最先被系統(tǒng)考慮拿下來(lái)釋放內(nèi)存的。n finish:q當(dāng)一個(gè)Activity 處于pause 或stop 的狀態(tài)時(shí),系統(tǒng)可以要求Activity 結(jié)束(finish)或直接移除(kill

53、)它。當(dāng)它需要再度呈現(xiàn)在使用者面前時(shí),它必須要能完整的重新啟動(dòng)及回復(fù)先前的狀態(tài)。浙江大學(xué)計(jì)算機(jī)學(xué)院Activity狀態(tài)轉(zhuǎn)換狀態(tài)轉(zhuǎn)換nActivity狀態(tài)轉(zhuǎn)換浙江大學(xué)計(jì)算機(jī)學(xué)院Activity狀態(tài)管理狀態(tài)管理浙江大學(xué)計(jì)算機(jī)學(xué)院Active、PausednActive:qWhen an Activity is at the top of the stack,it is the visible,focused,foreground activity that is receiving user input.Android will attempt to keep it alive at all co

54、sts,killing Activities further down the stack as needed,to ensure that it has the resources it needs.When another Activity becomes active,this one will be paused.nPaused:qIn some cases,your Activity will be visible but will not have focus;at this point,its paused.This state is reached if a transpare

55、nt or non-full-screen Activity is active in front of it.When paused,an Activity is treated as if it were active;however,it doesnt receive user input events.In extreme cases,Android will kill a paused Activity to recover resources for the active Activity.When an Activity becomes totally obscured,it b

56、ecomes stopped.浙江大學(xué)計(jì)算機(jī)學(xué)院Stopped、InactivenStopped:qWhen an Activity isnt visible,it“stops.”The Activity will remain in memory retaining all state and member information;however,it is now a prime candidate for execution when the system requires memory elsewhere.When an Activity is stopped,its importan

57、t to save data and the current UI state.Once an Activity has exited or closed,it becomes inactive.nInactive:qAfter an Activity has been killed,and before its been launched,its inactive.Inactive Activities have been removed from the Activity stack and need to be restarted before they can be displayed

58、 and used.浙江大學(xué)計(jì)算機(jī)學(xué)院服務(wù)服務(wù)(Service)n服務(wù)是運(yùn)行在后臺(tái)的一段代碼。它可以運(yùn)行在它自己的進(jìn)程,也可以運(yùn)行在其他應(yīng)用程序的上下文context里面,這取決于自身的需要。其他的組件可以綁定到一個(gè)服務(wù)Service上面,通過(guò)遠(yuǎn)程過(guò)程調(diào)用(RPC)來(lái)調(diào)用這個(gè)方法。q例如:媒體播放器的服務(wù),當(dāng)用戶退出媒體選擇界面后,由服務(wù)Service來(lái)保證音樂(lè)繼續(xù)播放。n如何使用服務(wù)q第一種是通過(guò)調(diào)用Context.startServece()啟動(dòng),調(diào)用Context.stoptService()結(jié)束,startService()可以傳遞參數(shù)給Service。q第二種方式是通過(guò)調(diào)用Conte

59、xt.bindService()啟動(dòng),調(diào)用Context.unbindService()結(jié)束,q通過(guò)ServiceConnection 訪問(wèn)Service。二者可以混合使用,比如說(shuō)我可以先startServece()再unbindService()。浙江大學(xué)計(jì)算機(jī)學(xué)院Service的生命周期的生命周期nstartService():q啟動(dòng)服務(wù),直到調(diào)用stoptService(),或者Service調(diào)用stopSelf()停止。nbindService():qService和調(diào)用bindService()的進(jìn)程同生共死,也就是說(shuō)當(dāng)調(diào)用bindService()的進(jìn)程死了,那么它bind 的Se

60、rvice 跟著結(jié)束,期間可以調(diào)用unbindService()解除綁定讓Service 結(jié)束n兩種方式混合使用。浙江大學(xué)計(jì)算機(jī)學(xué)院使用服務(wù)進(jìn)行音樂(lè)播放使用服務(wù)進(jìn)行音樂(lè)播放nManifest.xml中的Service定義qqqqqqnService 子類中的Playerqpublic void onStart(Intent intent,int startId)qsuper.onStart(intent,startId);qplayer=MediaPlayer.create(this,R.raw.seven_days);qplayer.start();qqpublic void onDestr

61、oy()qsuper.onDestroy();qplayer.stop();qnActivity 中定義的Intent開啟相應(yīng)的ServiceqstartService(new Intent(com.liangshan.wuyong.START_AUDIO_SERVICE);qstopService(new Intent(com.liangshan.wuyong.START_AUDIO_SERVICE);浙江大學(xué)計(jì)算機(jī)學(xué)院使用服務(wù)進(jìn)行音樂(lè)播放使用服務(wù)進(jìn)行音樂(lè)播放1nManifest.xml中的Service定義浙江大學(xué)計(jì)算機(jī)學(xué)院使用服務(wù)進(jìn)行音樂(lè)播放使用服務(wù)進(jìn)行音樂(lè)播放2nService子類中的

62、Playerpublic void onStart(Intent intent,int startId)super.onStart(intent,startId);player=MediaPlayer.create(this,R.raw.seven_days);player.start();public void onDestroy()super.onDestroy();player.stop();浙江大學(xué)計(jì)算機(jī)學(xué)院使用服務(wù)進(jìn)行音樂(lè)播放使用服務(wù)進(jìn)行音樂(lè)播放3nActivity 中定義的Intent開啟相應(yīng)的ServicestartService(new Intent(+id/START_AUD

63、IO_SERVICE);stopService(new Intent(+id/START_AUDIO_SERVICE);浙江大學(xué)計(jì)算機(jī)學(xué)院添加添加Menu菜單菜單nMenu菜單public boolean onCreateOptionsMenu(Menu menu)/TODO Auto-generated method stubboolean result=super.onCreateOptionsMenu(menu);menu.add(0,INSERT_ID_Play,0,R.string.menu_toPlay);menu.add(0,INSERT_ID_Stop,0,R.string.m

64、enu_toStop);return result;/創(chuàng)建菜單浙江大學(xué)計(jì)算機(jī)學(xué)院IntentnIntent 是描述應(yīng)用想要做什么,Intent 數(shù)據(jù)結(jié)構(gòu)兩個(gè)最重要的部分是:q動(dòng)作:典型的動(dòng)作類型有:MAIN(活動(dòng)的門戶)、VIEW、PICK、EDIT等。q動(dòng)作對(duì)應(yīng)的數(shù)據(jù):以URI 的形式進(jìn)行表示n例如:要查看某個(gè)人的聯(lián)系方式,你需要?jiǎng)?chuàng)建一個(gè)動(dòng)作類型為VIEW 的Intent,以及一個(gè)表示這個(gè)人的URI。nAndroid 使用了Intent 這個(gè)特殊類,實(shí)現(xiàn)在屏幕與屏幕之間移動(dòng)。Intent 類用于描述一個(gè)應(yīng)用將會(huì)做什么事。浙江大學(xué)計(jì)算機(jī)學(xué)院IntentFilternintentfilter 則

65、用于描述一個(gè)activity(或者IntentReceiver)能夠操作哪些intent。q一個(gè)activity 如果要顯示一個(gè)人的聯(lián)系方式時(shí),需要聲明一個(gè)IntentFilter,這個(gè)IntentFilter 要知道怎么去處理VIEW 動(dòng)作和表示一個(gè)人的URI。nIntentFilter 需要在AndroidManifest.xml 中定義。浙江大學(xué)計(jì)算機(jī)學(xué)院IntentFiltern通過(guò)解析各種intent,從一個(gè)屏幕導(dǎo)航到另一個(gè)屏幕是很簡(jiǎn)單的。q當(dāng)向前導(dǎo)航時(shí),activity 將會(huì)調(diào)用startActivity(IntentmyIntent)方法。q然后,系統(tǒng)會(huì)在所有安裝的應(yīng)用程序中定義

66、的IntentFilter 中查找,找到最匹配Intent 對(duì)應(yīng)的activity。q新的activity 接收到通知后,開始運(yùn)行。q當(dāng)startActivity 方法被調(diào)用將觸發(fā)解析Intent 的動(dòng)作。n這個(gè)機(jī)制提供了兩個(gè)關(guān)鍵好處:qActivities 能夠重復(fù)利用從其它組件中以Intent 的形式產(chǎn)生的一個(gè)請(qǐng)求;qActivities 可以在任何時(shí)候被一個(gè)具有相同IntentFilter 的新的Activity 取代。浙江大學(xué)計(jì)算機(jī)學(xué)院IntentReceivernIntentReceiver 在AndroidManifest.xml 中注冊(cè),也可在代碼中使用Context.registerReceiver()進(jìn)行注冊(cè)。n當(dāng)一個(gè)intentreceiver 被觸發(fā)時(shí),應(yīng)用不必對(duì)請(qǐng)求調(diào)用intentreceiver,系統(tǒng)會(huì)在需要的時(shí)候啟動(dòng)你的應(yīng)用。n各種應(yīng)用還可以通過(guò)使用Context.broadcastIntent()將自己的intentreceiver 廣播給其它應(yīng)用程序。n當(dāng)希望應(yīng)用能夠?qū)σ粋€(gè)外部的事件(如電話呼入,數(shù)據(jù)網(wǎng)絡(luò)可用,或者某個(gè)定時(shí))做出響應(yīng),可以使用一個(gè)Inte

展開閱讀全文
溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  sobing.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!