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

歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > PPT文檔下載  

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

  • 資源ID:231342580       資源大小:2.10MB        全文頁數(shù):162頁
  • 資源格式: PPT        下載積分:10積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要10積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復下載(系統(tǒng)自動生成)
支付方式: 微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標題沒有明確說明有答案則都視為沒有答案,請知曉。

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

AndroidAndroid智能手機開發(fā)課智能手機開發(fā)課程講義程講義(完整版完整版)索引索引nAndroid教程01-平臺概述-6nAndroid教程02-開發(fā)環(huán)境-37nAndroid教程03-應用程序模型-55nAndroid教程04-用戶界面-72nAndroid教程05-應用編程-117nAndroid教程06-網(wǎng)絡連接-137nAndroid教程07-硬件訪問-142浙江大學計算機學院課程結(jié)構(gòu)課程結(jié)構(gòu)n目標:了解智能手機開發(fā)現(xiàn)狀,Android平臺體系結(jié)構(gòu)和應用程序模型,覆蓋了幾個主要技術(shù)應用。平臺綜述平臺綜述開發(fā)環(huán)境開發(fā)環(huán)境程序結(jié)構(gòu)程序結(jié)構(gòu)數(shù)據(jù)存取數(shù)據(jù)存取網(wǎng)絡連接網(wǎng)絡連接硬件訪問硬件訪問圖形編程圖形編程用戶界面用戶界面HelloWorldHelloAndroidFileAndroidHttpAndroidCameraAndroidHelloAndroid浙江大學計算機學院課程結(jié)構(gòu)課程結(jié)構(gòu)nAndroid平臺綜述:q平臺介紹、開發(fā)者社區(qū)n開發(fā)環(huán)境:q構(gòu)建Android開發(fā)環(huán)境n應該程序:q應用程序結(jié)構(gòu)n典型應用:q用戶界面q圖形編程q數(shù)據(jù)存取q網(wǎng)絡連接q硬件訪問浙江大學計算機學院獲取獲取Android資料的途徑資料的途徑nhttp:/q有時需要翻墻nhttp:/q下載SDK等相關(guān)軟件q查看文檔q在線幫助q開發(fā)社區(qū)浙江大學計算機學院1、平臺概述、平臺概述智能手機開發(fā)智能手機開發(fā)2010.06.開放手機聯(lián)盟開放手機聯(lián)盟n開放手機聯(lián)盟,Open Handset Alliance:是美國Google 公司與2007 年11 月5 日宣布組建的一個全球性的聯(lián)盟組織。n聯(lián)盟將會支持Google 發(fā)布的Android 手機操作系統(tǒng)或者應用軟件,共同開發(fā)名為Android 的開放源代碼的移動系統(tǒng)。n開放手機聯(lián)盟包括手機制造商、手機芯片廠商和移動運營商幾類。目前,聯(lián)盟成員數(shù)量已經(jīng)達到了43 家。浙江大學計算機學院移動手機聯(lián)盟創(chuàng)始成員移動手機聯(lián)盟創(chuàng)始成員nAplix、Ascender、Audience、Broadcom、中國移動、eBay、Esmertec、谷歌、宏達電、英特爾、KDDI、Living Image、LG、Marvell、摩托羅拉、NMS、NTT DoCoMo、Nuance、Nvidia、PacketVideo、高通、三星、SiRF、SkyPop、Sonic Network、Sprint Nextel、Synaptics、TAT、意大利電信、西班牙電信、德州儀器、T-Mobile和Wind River。浙江大學計算機學院浙江大學計算機學院Google Phone浙江大學計算機學院OHA與與AndroidnOHA是一個軟硬件開發(fā)者組織,包括 Google,NTT DoCoMo,Sprint Nextel,and HTC n目標:q加速智能移動設備的發(fā)展 q提供用戶更多更好更便宜的服務n由OHA開發(fā)的Android,是第一個完整的、開放的、免費的智能移動開發(fā)平臺。浙江大學計算機學院AndroidnAndroid 軟件系列包括操作系統(tǒng)、中間件和一些關(guān)鍵應用。nAndroid是基于JAVA的系統(tǒng),運行在 Linux 2.6核上。nAndroid SDK 提供多種開發(fā)所必要的工具與API。浙江大學計算機學院特點特點1n應用框架可以重復使用,其組件也可以更換。nDalvik虛擬機針對移動設備進行了優(yōu)化。n優(yōu)化的圖形能力支持2D、3D圖形(OpenGL ES 1.0)。n集成了基于開源WebKit引掣的瀏覽器。nSQLite作為結(jié)構(gòu)化數(shù)據(jù)存儲。浙江大學計算機學院特點特點2n多媒體支持多種音頻、視頻格式。nGSM Telephony(hardware dependent)n支持藍牙Bluetooth,3G和WiFin支持照相機、GPS、指南針和加速度儀等傳感器硬件。n豐富的開發(fā)環(huán)境。包括模擬機、調(diào)試工具、內(nèi)存運行檢測,以及為Eclipse IDE所寫的插件。浙江大學計算機學院Android的優(yōu)勢的優(yōu)勢n 源代碼完全開放,便于開發(fā)人員更清楚的把握實現(xiàn)細節(jié),便于提高開發(fā)人員的技術(shù)水平,有利于開發(fā)出更具差異性的應用。n采用了對有限內(nèi)存、電池和CPU 優(yōu)化過的虛擬機Dalvik,Android 的運行速度比想象的要快很多。n運營商(中國移動等)的大力支持,產(chǎn)業(yè)鏈條的熱捧。n良好的盈利模式(3/7 開),產(chǎn)業(yè)鏈條的各方:運營商、制造商、獨立軟件生產(chǎn)商都可以獲得不錯的利益。將移動終端的評價標準從硬件向軟件轉(zhuǎn)變,極大的激發(fā)了軟件開發(fā)者的熱情。nAndroid 的源代碼遵循Apache V2 軟件許可,而不是通常的GPL v2 許可。有利于商業(yè)開發(fā)。n具有強大的Linux 社區(qū)的支持。浙江大學計算機學院Android的不足的不足n由于采用了Java 作為應用開發(fā)語言,目前可用的傳統(tǒng)第三方應用還很少,但由于Android 是一款完全開源的移動計算平臺,相信第三方應用會很快的豐富起來。nGoogle 提供了一套Java 核心包(J2SE 5,J2SE 6)的有限子集,尚不承諾遵守Java 任何Java 規(guī)范,可能會造成ava 陣營的進一步分裂。n現(xiàn)有應用完善度不太夠,需要的開發(fā)工作量較大。n基于QEMU 開發(fā)的模擬器調(diào)試手段不十分豐富,只支持通話、等,速度慢。n暫不具備Push Mail 和Office(DataViz、QuickOffice 計劃近期推出)功能,目前主要面向的是普通消費者用戶,對商業(yè)用戶支持尚弱。浙江大學計算機學院系統(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)qLinux(tested on Linux Ubuntu Dapper Drake)浙江大學計算機學院Android的系統(tǒng)架構(gòu)的系統(tǒng)架構(gòu)浙江大學計算機學院Linux KernelnAndroid 基于Linux內(nèi)核,但不是Linuxn內(nèi)核提供系統(tǒng)核心服務,如進程、內(nèi)存、電源管理,網(wǎng)絡連接,驅(qū)動與安全等。n并不包括全部的Linux。浙江大學計算機學院Android內(nèi)核內(nèi)核nLinux 內(nèi)核位于硬件和軟件堆之間的抽象層q核心服務:安全機制、內(nèi)存管理、進程管理、網(wǎng)絡、硬件驅(qū)動。q內(nèi)核扮演的是硬件層和系統(tǒng)其它層次之間的一個抽象層的概念。q操作系統(tǒng)的初始化和編程接口和標準的Linux 系統(tǒng)是有所不同的。浙江大學計算機學院LibrariesnBionic LibcnFunction LibrariesnNative ServersnHardware Abstraction Libraries浙江大學計算機學院LibrariesnC/C+庫:被各種Android 組件使用通過應用程序框架開發(fā)者可以使用其功能包括:n媒體庫:MPEG4 H.264 MP3 JPG PNG.nWebKit/LibWebCore:Web 瀏覽引擎nSQLite 關(guān)系數(shù)據(jù)庫引擎n2D,3D 圖形庫、引擎浙江大學計算機學院Function LibrariesnWebKitq基于開源WebKit的瀏覽器q支持CSS、Javascript、DOM、Ajaxn多媒體框架q基于PacketVideo OpenCORE平臺q支持標準音頻、視頻nSQLiteq輕型數(shù)據(jù)庫,支持多種平臺浙江大學計算機學院Native Servers-Surfacen為多種應用提供2D、3D表面設計浙江大學計算機學院Native Servers-Audion音頻處理浙江大學計算機學院Hardware Abstraction Libsn硬件虛擬層nUser space C/C+library layern硬件接口驅(qū)動n使Android平臺邏輯與硬件接口分離浙江大學計算機學院Andoid Runtimen應用開發(fā)語言:JavanDalvik虛擬機q指令:Dalvik Excutable nJava標準庫q把java代碼編譯為Dalvik可執(zhí)行文件(dex format)浙江大學計算機學院運行環(huán)境運行環(huán)境n核心庫提供的Java 功能Dalvik 虛擬機依賴于Linux 內(nèi)核,n可同時運行多個Dalvik 虛擬機,n每一個Android 應用程序在它自己的Dalvik VM 實例中運行VM 執(zhí)行優(yōu)化的Dalvik 可執(zhí)行文件(.dex)qDx-工具把編譯過的Java 文件轉(zhuǎn)換為dex 文件浙江大學計算機學院Dalvik Virtual MachinenAndroid custom implementation virtual machineqProvides 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 interpreterqEfficiently Using runtime memorynCore LibrariesqCore APIs for Java language provide a powerful,yet simple and familiar development platform浙江大學計算機學院DVM vs JVMnDVMqGoogleqDalvik excutablenJVMqSunqJava bytecode浙江大學計算機學院浙江大學計算機學院Applications FrameworknActivity managerq管理運行應用程序nContent Providerq在各應用之間共享數(shù)據(jù)nResource Managerq管理非代碼資源nNotification Managerq顯示用戶提示和狀態(tài)欄nViews Systemq可擴展顯示,可構(gòu)建UI浙江大學計算機學院應用和框架應用和框架n核心應用,例如聯(lián)系人,電子郵件,電話,瀏覽器,日歷,地圖,.n充分訪問所有核心應用框架APIn簡化組件的重用n用Java 編寫應用程序浙江大學計算機學院ApplicationsnJAVA編寫的應用程序浙江大學計算機學院開發(fā)環(huán)境開發(fā)環(huán)境 nIDE Eclipse nEclipse plug-in-ADTnSoftware Development Kit(SDK)nAndroid EmulatornDebuger浙江大學計算機學院Constants浙江大學計算機學院2、開發(fā)環(huán)境、開發(fā)環(huán)境智能手機開發(fā)建立建立Android開發(fā)環(huán)境開發(fā)環(huán)境nJDK 5 or JDK 6(JRE alone is not sufficient)q設置環(huán)境變量:JAVA_HOME、CLASSPATHnEclipse 3.3(Europa),3.4(Ganymede)nAndroid SDK nADT 0.8.0nEclipse安裝ADT 插件浙江大學計算機學院Quick Startn1.準備q安裝JDK(version 5 or 6 required)qEclipse(version 3.4 or 3.5,needed 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 or more Android platforms and other components to your SDK.nSDK Setup Done!浙江大學計算機學院Android可視化環(huán)境配置可視化環(huán)境配置nJDK1.6q下載網(wǎng)址:http:/ SDK 2.xq下載網(wǎng)址:http:/浙江大學計算機學院安裝安裝Java JDKnJDK 5 or JDK 6(JRE alone is not sufficient)nAndroid Development Tools plugin(optional)nNot compatible with Gnu Compiler for Java(gcj)浙江大學計算機學院安裝安裝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 Android 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)浙江大學計算機學院Android的的SDK版本版本nAndroid 2.1 Platform(new!)nAndroid 1.6 PlatformnAndroid 1.5 PlatformnOlder PlatformsqAndroid 2.0.1 PlatformqAndroid 2.0 PlatformqAndroid 1.1 Platform浙江大學計算機學院操作系統(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 information about how to add support for 32-bit applications.浙江大學計算機學院硬件環(huán)境硬件環(huán)境n不包括JAVA、Eclipse。浙江大學計算機學院安裝安裝Androidn解壓,在Eclipse中Install New Software浙江大學計算機學院Android學習方法學習方法n了解什么是Androin建立開發(fā)環(huán)境n閱讀SDK 文檔n背景知識qJavaq面向?qū)ο髊設計模式qEclipse使用qJ2ME、Brew、Symbian(選)浙江大學計算機學院Adroid應用應用浙江大學計算機學院Activity活動活動1n最基本的Android 應用程序組件,應用程序中,一個活動通常就是一個單獨的屏幕。每一個活動都被實現(xiàn)為一個獨立的類,并且從活動基類中繼承而來,活動類將會顯示由視圖控件組成的用戶接口,并對事件做出響應。n大多數(shù)的應用是由多個屏幕顯示組成。q例如:一個文本信息的應用也許有一個顯示發(fā)送消息的聯(lián)系人列表屏幕,第二個屏幕用來寫文本消息和選擇收件人,再來一個屏幕查看消息歷史或者消息設置操作等。這里每一個這樣的屏幕就是一個活動,很容易實現(xiàn)從一個屏幕到一個新的屏幕并且完成新的活動。n在某些情況下當前的屏幕也許需要向上一個屏幕活動提供返回值-比如讓用戶從手機中挑選一張照片返回通訊錄做為電話撥入者的頭像。浙江大學計算機學院Activity活動活動2n當一個新的屏幕打開后,前一個屏幕將會暫停,并保存在歷史堆棧中。用戶可以返回到歷史堆棧中的前一個屏幕。當屏幕不再使用時,還可以從歷史堆棧中刪除。默認情況下,Android 將會保留從主屏幕到每一個應用的運行屏幕。n簡單理解Activity 代表一個用戶所能看到的屏幕,Activity 主要是處理一個應用的整體性工作,例如,監(jiān)聽系統(tǒng)事件(按鍵事件、觸摸屏事件等)、為用戶顯示指定的View,啟動其他Activity 等。所有應用的Activity都繼承于android.app.Activity 類,該類是Android 提供的基層類,其他的Activity 繼承該父類后,通過Override父類的方法來實現(xiàn)各種功能,這種設計在其他領(lǐng)域也較為常見。浙江大學計算機學院Activity生命周期生命周期浙江大學計算機學院Android模擬器模擬器nAndroid Emulator:q可模擬電話本、通話等功能q內(nèi)置的瀏覽器和Google Maps都可以聯(lián)網(wǎng)q可以使用鍵盤輸入,q可單擊模擬器按鍵輸入,q可以使用鼠標單擊、拖動屏幕進行操作。浙江大學計算機學院Android模擬器模擬器n模擬器和真機的不同之處 q不支持呼叫和接聽實際來電,但可以通過控制臺模擬電話呼叫(呼入和呼出)。q不支持USB連接。q不支持相機/視頻捕捉。q不支持音頻輸入(捕捉),但支持輸出(重放)。q不支持擴展耳機。q不能確定連接狀態(tài)。q不能確定電池電量水平和交流充電狀態(tài)。q不能確定SD卡的插入/彈出。q不支持藍牙。浙江大學計算機學院模擬器使用注意事項模擬器使用注意事項n遇到系統(tǒng)關(guān)于C盤空間不足之類的提示,是由于Android模擬器每次運行時會臨時生成幾個.tmp后綴的臨時文件,一段時間后,其可能占用幾G的磁盤空間。需要手工定期清理。浙江大學計算機學院3、應用程序、應用程序智能手機開發(fā)智能手機開發(fā)Android虛擬機虛擬機DalviknDalvik和標準Java虛擬機(JVM)首要差別qDalvik 基于寄存器,而JVM 基于棧。n基于寄存器的虛擬機對于更大的程序來說,在它們編譯的時候,花費的時間更短。nDalvik和Java運行環(huán)境的區(qū)別qDalvik 經(jīng)過優(yōu)化,允許在有限的內(nèi)存中同時運行多個虛擬機的實例,q每一個Dalvik 應用作為一個獨立的Linux 進程執(zhí)行。n獨立進程可防止在虛擬機崩潰的時候所有程序都被關(guān)閉。qDalvik 提供一個擁有較少限制許可證的平臺。浙江大學計算機學院重要包的描述重要包的描述nAndroid.app:提供高層的程序模型、提供基本的運行環(huán)境nAndroid.content:包含各種的對設備上的數(shù)據(jù)進行訪問和發(fā)布的類nAndroid.database:通過內(nèi)容提供者瀏覽和操作數(shù)據(jù)庫nAndroid.graphics:底層的圖形庫,可以將它們直接繪制到屏幕上.nAndroid.location:定位和相關(guān)服務的類nAndroid.media:提供一些類管理多種音頻、視頻的媒體接口nA:提供幫助網(wǎng)絡訪問的類,超過通常的.*接口nAndroid.os:提供了系統(tǒng)服務、消息傳輸、IPC 機制nAndroid.opengl:提供OpenGL 的工具nAndroid.provider:提供類訪問Android 的內(nèi)容提供者nAndroid.telephony:提供與撥打電話相關(guān)的API 交互nAndroid.view:提供基礎(chǔ)的用戶界面接口框架nAndroid.util:涉及工具性的方法,例如時間日期的操作nAndroid.webkit:默認瀏覽器操作接口nAndroid.widget:各種UI 元素(大部分可見)在應用程序的屏幕中使用浙江大學計算機學院Android的相關(guān)文件類型的相關(guān)文件類型nJava文件-應用程序源文件qandroid 本身相當一部分都是用java 編寫而成qandroid 的應用使用java 來開發(fā)。nClass文件-Java編譯后的目標文件qGoogle使用Dalvik 來運行應用程序qAndroid的class 文件是編譯過程中的中間目標文件,需要鏈接成dex 文件才能在Dalvik 上運行。浙江大學計算機學院Dex文件文件nDex文件-Android平臺上的可執(zhí)行文件qAndroid 虛擬機Dalvik 支持的字節(jié)碼文件格式。q這種虛擬機執(zhí)行的并非Java 字節(jié)碼,而是另一種字節(jié)碼:dex 格式的字節(jié)碼。q在編譯Java 代碼之后,通過Android 平臺上的工具可以將Java 字節(jié)碼轉(zhuǎn)換成Dex 字節(jié)碼。qDalvik VM 針對手機程式/CPU 做過最佳化,可以同時執(zhí)行許多VM 而不會占用太多Resource。浙江大學計算機學院Apk文件文件nApk文件-Android上的安裝文件qApk 是Android 安裝包的擴展名,一個Android 安裝包包含了與該Android 應用程序相關(guān)的所有文件。napk文件將AndroidManifest.xml文件、應用程序代碼(.dex 文件)、資源文件和其他文件打成一個壓縮包。q一個工程只能打進一個.apk文件。qapk 文件的本質(zhì)是一個zip包。浙江大學計算機學院Hello world!第一個運行程序第一個運行程序HelloAndroidnEclipse自動生成qnew android projectnHelloAndroid浙江大學計算機學院HelloAndroid.javanJava程序package com.android.helloAndroid;import android.app.Activity;import android.os.Bundle;public class HelloAndroid extends Activity /*Called when the activity is first created.*/Override public void onCreate(Bundle savedInstanceState)super.onCreate(savedInstanceState);setContentView(R.layout.main);浙江大學計算機學院R.javanJava程序/*AUTO-GENERATED FILE.DO NOT MODIFY.*/package com.android.helloAndroid;public final class R public static final 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;浙江大學計算機學院main.xmlnXml文件Resources浙江大學計算機學院strings.xmlnXml文件 Hello Android,2010.HelloAndroid將要顯示內(nèi)容:Hello Android,2010.浙江大學計算機學院RUNRUN浙江大學計算機學院模擬運行模擬運行顯示內(nèi)容:Hello Android,2010.浙江大學計算機學院命令行運行命令行運行n啟動模擬器qemulator-avd android1.6-skin HVGA-pn連接模擬器:qtelnet localhost 5554n撥打電話:qgsm call 13810000086n發(fā)送短信:qsms send 13810000086 HelloAndroid浙江大學計算機學院模擬器屏幕模擬器屏幕nHVGA-L:480 x320橫屏nHVGA-P:320 x480豎屏(默認)nQVGA-L:320 x240橫屏nQVGA-P:240 x320豎屏nWVGA-L:800 x480橫屏浙江大學計算機學院顯示圖像顯示圖像n增加ImageView浙江大學計算機學院4、用戶界面、用戶界面智能手機開發(fā)智能手機開發(fā)User Interface用戶界面用戶界面n說明布局Layoutn創(chuàng)建菜單Menusn創(chuàng)建對話Dialogsn處理用戶UI事件n用戶提示n確定風格n定制組件n數(shù)據(jù)與界面綁定浙江大學計算機學院模擬器屏幕模擬器屏幕nHVGA-L:480 x320橫屏nHVGA-P:320 x480豎屏(默認)nQVGA-L:320 x240橫屏nQVGA-P:240 x320豎屏nWVGA-L:800 x480橫屏浙江大學計算機學院UI用戶界面設計:用戶界面設計:Icon設計設計n應用程序需要各種各樣的圖標尺寸和定位尺寸和定位nLauncher icons要有多樣化的形狀和樣式,但又要形成統(tǒng)一的視覺風格,其尺寸和定位也用統(tǒng)一:q紅色邊框為圖標尺寸q藍色邊框是圖形尺寸,比圖標尺寸稍小,圖形之外的空間用于顯示陰影和特殊效果。q橙色邊框是另外一種圖形尺寸。兩種類型的圖形尺寸可以達到統(tǒng)一的視覺權(quán)重。浙江大學計算機學院Icon的風格的風格n符合當下的流行趨勢,避免過度使用隱喻。n高度簡化和夸張,小尺寸圖標也能易于識別,不宜太復雜。n嘗試抓住程序的主要特征,比如音像作為音樂的icon。n使用自然的輪廓和形狀,看起來幾何化和有機化,不失真實感。n采用前視角,幾乎沒有透視,光源在頂部。n不光滑但富有質(zhì)感。浙江大學計算機學院UI用戶界面設計:用戶界面設計:Widget設計設計nWidget是Android 1.5的一個新特性,允許程序顯示一些常用而又重要的信息在用戶的桌面主屏上q標準的Android系統(tǒng)映像包含了一些示例widgets包括指針時鐘、音樂播放器和其他工具如Google搜索欄。qWidget即是可由用戶自己編寫的功能控件。n典型的Android Widget有三個主要組件:q邊框q框架q圖形控件以及其他元素n注意widgets的開狀尺寸以便在主屏上顯示浙江大學計算機學院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 applications 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 high-level design perspective.浙江大學計算機學院UI用戶界面設計:用戶界面設計:Menu設計設計n選項菜單Options Menu:活動的主菜單。通過按下設備菜單鍵來顯示它。選項菜單包含兩組菜單項:q圖標菜單Icon Menun這個是當用戶按下菜單鍵時最初出現(xiàn)屏幕下方的item集合。它支持最多6個菜單項。只有這些菜單支持圖標而且這些菜單并不支持checkboxes或者radio buttons。q擴展菜單Expanded Menun這是通過按“更多”菜單顯現(xiàn)出來的一個豎向的項目列表。它僅當圖標菜單過多時存在而且是由6個以及其它選項菜單組成。n上下文菜單Context Menu:浮動菜單列表,通常在你長時間按在一個視圖上時出現(xiàn)(比如一個列表項)n子菜單Submenu:浮動菜單列表,通過在選項菜單或上下文菜單選擇菜單項顯露出來。不支持嵌套子菜單。浙江大學計算機學院Android UI布局布局nViewGroup通過各種Layout,控制所屬View的顯示位置。ViewGroup(Layout)ViewViewViewViewViewViewGroup(Layout)浙江大學計算機學院LayoutnAbsoluteLayoutnFrameLayoutnGridViewnLinearLayoutnListLayoutnRadioGroupnTableLayoutn浙江大學計算機學院顯示圖像顯示圖像n增加ImageViewn與原先的TextView,按垂直線性布局。線性布局LinearLayout浙江大學計算機學院布局布局n線性布局LinearLayoutq垂直:android:orientation=vertical“q水平:android:orientation=horizontal浙江大學計算機學院FrameLayoutn在屏幕上故意保留的空白空間,可以填充一個單獨的對象。n所有子元素都釘?shù)狡聊坏淖笊辖莕不能為子元素指定位置浙江大學計算機學院TableLayoutn子元素放入到行與列中n不顯示行、列或是單元格邊界線n單元格不能橫跨行,如HTML 中一樣浙江大學計算機學院AbsoluteLayoutn指明子元素確切的屏幕(X,Y)坐標n(0,0)是左上角,下移或右移時,坐標值增加n允許元素重疊(但是不推薦)n注意:q一般建議不使用AbsoluteLayout 除非你有很好的理由來使用它q因為它相當嚴格并且在不同的設備顯示中不能很好地工作浙江大學計算機學院RelativeLayoutn讓子元素指定它們相對于其他元素的位置(通過ID 來指定)或相對于父布局對象,跟AbsoluteLayout這個絕對坐標布局是個相反。n在RelativeLayout布局里的控件包含豐富的排列屬性:qLayout above:控件在指定控件的上方qLayout below:控件在指定控件的下方qLayout to left of。n使用 RelativeLayout布局的時候,盡少程序運行時做控件布局的更改,因為 RelativeLayout布局里面的屬性之間,很容易沖突。浙江大學計算機學院Color顏色顏色nandroid.graphics.Color 包含顏色值qColor.BLACKqColor.BLUEqColor.CYANqColor.DKGRAYqColor.GRAYqColor.GREENqColor.LTGRAYqColor.MAGENTAqColor.REDqColor.TRANSPARENTqColor.WHITEqColor.YELLOW浙江大學計算機學院字體風格字體風格Typefacenandroid.graphics.Typeface實踐qTypeface.create(Typeface family,int style)n創(chuàng)建一個混合型新的字體:有4*5 中搭配qTypeface.setTypeface(Typeface tf,int style)n設置一個混合型字體:有4*5 中搭配qTypeface.setTypeface(Typeface tf)n設置一個只有Typeface 風格的字體:有五種形式n字體(4種)qBOLD、BOLD_ITALIC、ITALIC、NORMALq粗體、粗斜體、斜體、普通字體n風格(5種)qDEFAULT、DEFAULT_BOLD、MONOSPACE、SANS_SERIF、SERIFq默認字體、默認粗體、單間隔字體、無襯線字體、襯線字體浙江大學計算機學院Android菜單菜單nandroid提供了三種菜單類型,分別為options menu,context menu,sub menu。noptions menu(主菜單)就是通過按home鍵來顯示,ncontext menu(右鍵菜單)在view上按上2s后顯示n兩種menu都有可以加入子菜單,子菜單不能種不能嵌套子菜單。nandroid還提供了對菜單項進行分組的功能,可以把相似功能的菜單項分成同一個組,這樣可以通過調(diào)用setGroupCheckable,setGroupEnabled,setGroupVisible來設置菜單屬性,而無須單獨設置。浙江大學計算機學院OptionMenu 1nOptionMenu(主菜單)qoptions menu最多只能在屏幕最下面顯示6個菜單選項,稱為icon menunicon menu不能有checkable選項。q多于6的菜單項會以more icon menu來調(diào)出,稱為expanded menu。qoptions menu通過activity的onCreateOptionsMenu來生成,q這個函數(shù)只會在menu第一次生成時調(diào)用。n任何想改變options menu的想法只能在onPrepareOptionsMenu來實現(xiàn),這個函數(shù)會在menu顯示前調(diào)用。qonOptionsItemSelected 用來處理選中的菜單項。浙江大學計算機學院OptionMenu 2浙江大學計算機學院ContextMenu菜單菜單nContextMenu(右鍵菜單)qcontext menu是跟某個具體的view綁定在一起,在activity中用registerForContextMenu來為某個view注冊context menu。context menu在顯示前都會調(diào)用onCreateContextMenu來生成menu。onContextItemSelected用來處理選中的菜單項。浙江大學計算機學院SubmenunSubmenu(子菜單)q一個浮動菜單列表,通過在選項菜單或上下文菜單選擇菜單項顯露出來。不支持嵌套子菜單。浙江大學計算機學院ButtonnMain.xmlnButton事件響應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 Android!););浙江大學計算機學院進程優(yōu)先級順序進程優(yōu)先級順序n 前臺進程(Active Process):q前臺Activity、包含正在運行的廣播接收器、正在運行的服務n 可視進程(Visible Process):q包含一個可視化的Activityn 服務進程(Started Service Process):q包含一個被開啟的服務(處理服務,不是直接可視,例如媒體播放器,網(wǎng)絡上傳、下載)n 后臺進程(Background Process):q包含一個不可視的Activity(可以在任意時刻殺死該進程來回收內(nèi)存)n 空進程(Empty Process):q沒有持有任何應用程序組件浙江大學計算機學院Activity狀態(tài)狀態(tài)1nactive:q當一個Activity 在屏幕的最上層時(對堆棧的最頂端),它就是屬于active 或者running 的狀態(tài)npaused:q如果一個Activity 失去焦點(focus)但還看得到它的畫面(比如:一個新的Activity 畫面并不是全屏幕或者它是一個半透明的情況),那失去焦點的Activity 則處在paused 的狀態(tài)。像這個失去焦點的Activity它還是完全活著的,并沒有消失。(活著的意思是指,Activity 自己本身所有的狀態(tài)及數(shù)據(jù)都還是存在的,也跟窗口管理程序window manager 保持聯(lián)系著),像這種paused 的Activity,會在一種情況下消失,那就是當系統(tǒng)的內(nèi)存不夠用之時,系統(tǒng)會自動判斷,將不重要的Activity 移除。浙江大學計算機學院Activity狀態(tài)狀態(tài)2nstop:q如果一個Activity 被其它的Activity 完全的遮蓋住時,它仍然保有全部的狀態(tài)及數(shù)據(jù),但因為它已不再被使用者看見,所以它的畫面是被隱藏起來的(畫面不需要更新),當系統(tǒng)內(nèi)存不足時,這種stop 狀態(tài)的Activity 時最先被系統(tǒng)考慮拿下來釋放內(nèi)存的。n finish:q當一個Activity 處于pause 或stop 的狀態(tài)時,系統(tǒng)可以要求Activity 結(jié)束(finish)或直接移除(kill)它。當它需要再度呈現(xiàn)在使用者面前時,它必須要能完整的重新啟動及回復先前的狀態(tài)。浙江大學計算機學院Activity狀態(tài)轉(zhuǎn)換狀態(tài)轉(zhuǎn)換nActivity狀態(tài)轉(zhuǎn)換浙江大學計算機學院Activity狀態(tài)管理狀態(tài)管理浙江大學計算機學院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 costs,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 transparent 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 becomes stopped.浙江大學計算機學院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 important 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 and used.浙江大學計算機學院服務服務(Service)n服務是運行在后臺的一段代碼。它可以運行在它自己的進程,也可以運行在其他應用程序的上下文context里面,這取決于自身的需要。其他的組件可以綁定到一個服務Service上面,通過遠程過程調(diào)用(RPC)來調(diào)用這個方法。q例如:媒體播放器的服務,當用戶退出媒體選擇界面后,由服務Service來保證音樂繼續(xù)播放。n如何使用服務q第一種是通過調(diào)用Context.startServece()啟動,調(diào)用Context.stoptService()結(jié)束,startService()可以傳遞參數(shù)給Service。q第二種方式是通過調(diào)用Context.bindService()啟動,調(diào)用Context.unbindService()結(jié)束,q通過ServiceConnection 訪問Service。二者可以混合使用,比如說我可以先startServece()再unbindService()。浙江大學計算機學院Service的生命周期的生命周期nstartService():q啟動服務,直到調(diào)用stoptService(),或者Service調(diào)用stopSelf()停止。nbindService():qService和調(diào)用bindService()的進程同生共死,也就是說當調(diào)用bindService()的進程死了,那么它bind 的Service 跟著結(jié)束,期間可以調(diào)用unbindService()解除綁定讓Service 結(jié)束n兩種方式混合使用。浙江大學計算機學院使用服務進行音樂播放使用服務進行音樂播放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 onDestroy()qsuper.onDestroy();qplayer.stop();qnActivity 中定義的Intent開啟相應的ServiceqstartService(new Intent(com.liangshan.wuyong.START_AUDIO_SERVICE);qstopService(new Intent(com.liangshan.wuyong.START_AUDIO_SERVICE);浙江大學計算機學院使用服務進行音樂播放使用服務進行音樂播放1nManifest.xml中的Service定義浙江大學計算機學院使用服務進行音樂播放使用服務進行音樂播放2nService子類中的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();浙江大學計算機學院使用服務進行音樂播放使用服務進行音樂播放3nActivity 中定義的Intent開啟相應的ServicestartService(new Intent(+id/START_AUDIO_SERVICE);stopService(new Intent(+id/START_AUDIO_SERVICE);浙江大學計算機學院添加添加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.menu_toStop);return result;/創(chuàng)建菜單浙江大學計算機學院IntentnIntent 是描述應用想要做什么,Intent 數(shù)據(jù)結(jié)構(gòu)兩個最重要的部分是:q動作:典型的動作類型有:MAIN(活動的門戶)、VIEW、PICK、EDIT等。q動作對應的數(shù)據(jù):以URI 的形式進行表示n例如:要查看某個人的聯(lián)系方式,你需要創(chuàng)建一個動作類型為VIEW 的Intent,以及一個表示這個人的URI。nAndroid 使用了Intent 這個特殊類,實現(xiàn)在屏幕與屏幕之間移動。Intent 類用于描述一個應用將會做什么事。浙江大學計算機學院IntentFilternintentfilter 則用于描述一個activity(或者IntentReceiver)能夠操作哪些intent。q一個activity 如果要顯示一個人的聯(lián)系方式時,需要聲明一個IntentFilter,這個IntentFilter 要知道怎么去處理VIEW 動作和表示一個人的URI。nIntentFilter 需要在AndroidManifest.xml 中定義。浙江大學計算機學院IntentFiltern通過解析各種intent,從一個屏幕導航到另一個屏幕是很簡單的。q當向前導航時,activity 將會調(diào)用startActivity(IntentmyIntent)方法。q然后,系統(tǒng)會在所有安裝的應用程序中定義的IntentFilter 中查找,找到最匹配Intent 對應的activity。q新的activity 接收到通知后,開始運行。q當startActivity 方法被調(diào)用將觸發(fā)解析Intent 的動作。n這個機制提供了兩個關(guān)鍵好處:qActivities 能夠重復利用從其它組件中以Intent 的形式產(chǎn)生的一個請求;qActivities 可以在任何時候被一個具有相同IntentFilter 的新的Activity 取代。浙江大學計算機學院IntentReceivernIntentReceiver 在AndroidManifest.xml 中注冊,也可在代碼中使用Context.registerReceiver()進行注冊。n當一個intentreceiver 被觸發(fā)時,應用不必對請求調(diào)用intentreceiver,系統(tǒng)會在需要的時候啟動你的應用。n各種應用還可以通過使用Context.broadcastIntent()將自己的intentreceiver 廣播給其它應用程序。n當希望應用能夠?qū)σ粋€外部的事件(如電話呼入,數(shù)據(jù)網(wǎng)絡可用,或者某個定時)做出響應,可以使用一個Inte

注意事項

本文(Android智能手機開發(fā)課程講義完整版)為本站會員(無***)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

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

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


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