物聯(lián)網(wǎng)系列專業(yè)課程:Android移動應(yīng)用開發(fā)_第1頁
物聯(lián)網(wǎng)系列專業(yè)課程:Android移動應(yīng)用開發(fā)_第2頁
物聯(lián)網(wǎng)系列專業(yè)課程:Android移動應(yīng)用開發(fā)_第3頁
物聯(lián)網(wǎng)系列專業(yè)課程:Android移動應(yīng)用開發(fā)_第4頁
物聯(lián)網(wǎng)系列專業(yè)課程:Android移動應(yīng)用開發(fā)_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

Android移動應(yīng)用開發(fā)中智訊〔武漢〕科技Android移動操作系統(tǒng)Android應(yīng)用框架和組件創(chuàng)立Android應(yīng)用工程Android應(yīng)用工程解析初識AndroidAndroid是Google公司在2007年11月宣布的基于Linux平臺的開源操作系統(tǒng),早期由Google開發(fā),后由開放手持設(shè)備聯(lián)盟〔OpenHandsetAlliance〕開發(fā)。Android采用了軟件堆層〔softwarestack,又名以軟件疊層〕的架構(gòu),主要分為三局部:底層以Linux內(nèi)核工作為根底,由C語言開發(fā),只提供根本功能;中間層包括函數(shù)庫Library和虛擬機(jī)VirtualMachine,由C++開發(fā);最上層是各種應(yīng)用軟件,包括通話程序,短信程序等,應(yīng)用軟件由各公司自行開發(fā),以Java作為編寫程序的一局部。簡單的理解:Android是基于Java并運(yùn)行在Linux內(nèi)核上的輕量級的操作系統(tǒng),它是輕量級,但功能很全面。并內(nèi)置了很多軟件,如打,發(fā)短信等。Android系統(tǒng)版本歷史2008.09.23第一個版本Android1.02009.04.30CupcakeAndroid1.52009.09.15DonutAndroid1.62009.10.26éclairAndroid2.02010.05.20FroyoAndroid2.22010.12.06GingerbreadAndroid2.32011.02.22HoneycombAndroid3.02011.10.19IceCreamSandwichAndroid4.02012.6.28JellyBeanAndroid4.12014.10.15LollipopAndroid5.0/5.12013.9.3KitKatAndroid4.42015.5.28MarshmallowAndroid6.02016.8.22NougatAndroid7.02017.Q3?Android8.0Android移動操作系統(tǒng)Android應(yīng)用框架和組件創(chuàng)立Android應(yīng)用工程Android應(yīng)用工程解析Android應(yīng)用框架Android通過一個開放的開發(fā)平臺,給開發(fā)人員在創(chuàng)立極為豐富創(chuàng)新性的應(yīng)用程序上提供了有力的支持。開發(fā)者擁有使用相同的框架API訪問核心應(yīng)用程序的全部權(quán)利。應(yīng)用程序架構(gòu)旨在簡化組件的重用。Android應(yīng)用框架提供Android平臺根本的管理功能和組件重用機(jī)制ActivityManager〔活動管理器〕管理應(yīng)用程序的生命周期,并提供一個導(dǎo)航使用的共同的返回棧WindowManager〔窗口管理器〕:對窗口進(jìn)行控制ContentProviders〔內(nèi)容提供者〕:使應(yīng)用程序能夠訪問其他應(yīng)用程序的數(shù)據(jù)〔如通訊錄〕或共享自己的數(shù)據(jù)ViewSystem〔視圖系統(tǒng)〕:豐富而又可以擴(kuò)展的視圖〔View〕,可以用來構(gòu)建應(yīng)用程序,包括列表〔ListView〕,網(wǎng)格〔GridView〕,文本〔TextView〕可編輯文本框〔EditView〕,按鈕〔Button〕等,甚至可以嵌入的Web瀏覽器Android應(yīng)用框架提供Android平臺根本的管理功能和組件重用機(jī)制PackageManager〔包管理器〕:Android系統(tǒng)內(nèi)的程序管理TelephonyManager:獲取與通訊相關(guān)的狀態(tài)和信息ResourceManager〔資源管理器〕:提供非代碼資源的訪問,如本地化的字符串、圖形、和布局文件LocationManager〔定位管理器〕:可獲取當(dāng)前所處的地理位置NotificationManager〔通知管理器〕:應(yīng)用可以在狀態(tài)欄中顯示自定義的提示信息Android組件ActivityActivity是Android程序的呈現(xiàn)層,顯示可視化的用戶界面,并接收與用戶交互所產(chǎn)生的界面事件Android應(yīng)用程序可以包含一個或多個Activity,一般在程序啟動后會呈現(xiàn)一個Activity,用于提示用戶程序已經(jīng)正常啟動在界面上的表現(xiàn)形式:全屏窗體,非全屏懸浮窗體,對話框我是整個應(yīng)用程序的門面,當(dāng)然要長得漂亮啦。我主要負(fù)責(zé)應(yīng)用程序當(dāng)中的數(shù)據(jù)的展示!Android組件ServiceService用于沒有用戶界面,但需要長時間在后臺運(yùn)行的應(yīng)用我是Android里面的勞動模范,你們雖然看不到我,但是我卻承擔(dān)著大局部數(shù)據(jù)處理的工作!Android組件BroadcaseReceiverBroadcaseReceiver是用來接受并響應(yīng)播送消息的組件不包含任何用戶界面可以通過啟動Activity或者Notification通知用戶接收到重要信息〔Notification能夠通過多種方法提示用戶,包括閃動背景燈、震動設(shè)備、發(fā)出聲音或在狀態(tài)欄上放置一個持久的圖標(biāo)〕。我是Android里面的播送喇叭,有什么消息新聞,我都會即使傳達(dá)出去!Android組件ContentProviderContentProvider是Android系統(tǒng)提供的一種標(biāo)準(zhǔn)的共享數(shù)據(jù)的機(jī)制,應(yīng)用程序可以通過ContentProvider訪問其他應(yīng)用程序的私有數(shù)據(jù)私有數(shù)據(jù)可以是存儲在文件系統(tǒng)中的文件,也可以是SQLite中的數(shù)據(jù)庫Android系統(tǒng)內(nèi)部也提供一些內(nèi)置的ContentProvider,能夠?yàn)閼?yīng)用程序提供重要的數(shù)據(jù)信息我是Android王國的國家檔案館,我負(fù)責(zé)存儲數(shù)據(jù),并允許有需要的應(yīng)用程序訪問這些數(shù)據(jù)。Android組件IntentIntent負(fù)責(zé)對應(yīng)用中一次操作的動作、動作涉及數(shù)據(jù)、附加數(shù)據(jù)進(jìn)行描述,Android那么根據(jù)此Intent的描述,負(fù)責(zé)找到對應(yīng)的組件,將Intent傳遞給調(diào)用的組件,并完成組件的調(diào)用。Intent在這里起著一個媒體中介的作用,專門提供組件互相調(diào)用的相關(guān)信息,實(shí)現(xiàn)調(diào)用者與被調(diào)用者之間的解耦。我是運(yùn)輸大隊(duì)長,應(yīng)用程序當(dāng)中所有的數(shù)據(jù)都要通過我來傳遞!Android移動操作系統(tǒng)Android應(yīng)用框架和組件創(chuàng)立Android應(yīng)用工程Android應(yīng)用工程解析新建工程HelloWorld運(yùn)行EclipseIDE,新建一個Android工程:File->New->Others,在彈出的界面中,選擇Androidproject。填寫工程的信息:ProjectName-顯示在IDE中工程的名字BuildTarget–AndroidSDK版本ApplicationName-應(yīng)用運(yùn)行后顯示的名字PackageName-源碼中包的名字ActivityName-源碼中java文件的名字編碼實(shí)現(xiàn);調(diào)試運(yùn)行。新建工程HelloWorld界面信息說明如下:AppicationName:HelloWorld#應(yīng)用程序的名稱,將在程序的標(biāo)題欄顯示ProjectName:HelloWorld#工程的名稱PackageName:com.example.helloworld#包名MinimumRequiredSDK:API14:Android4.0 #所支持的最小SDK版本TargetSDK:API19:Android4.4 #程序目標(biāo)SDK版本 CompileWith:API19:Android4.4 #編譯器版本,一般與Target一致Theme:NoneHelloWorld工程運(yùn)行虛擬機(jī)在Eclipse菜單欄,選擇Window->AVDManager,創(chuàng)立虛擬機(jī),并運(yùn)行Device:7’WSVGA(Tablet)(1024*600mdpi)Target:Android4.4.2Skin:NoskinMemoryOption:RAM(1024)VMHeap(64)編譯運(yùn)行HelloWorld工程待虛擬機(jī)啟動進(jìn)入到Android系統(tǒng)后,選擇HelloWorld工程,右鍵單擊,彈出菜單項(xiàng)選擇擇RunAs->AndroidApplication;HelloWorld程序?qū)⒃谔摂M機(jī)中運(yùn)行,并打印消息。編譯運(yùn)行HelloWorld工程Android移動操作系統(tǒng)Android應(yīng)用框架和組件創(chuàng)立Android應(yīng)用工程Android應(yīng)用工程解析Android工程結(jié)構(gòu)JAVA源文件Android-4.4SDK庫文件編譯生成的文件放置應(yīng)用程序用到的資源文件放置圖片資源布局設(shè)計文件存放字符串,顏色,尺寸等配置文件應(yīng)用程序的配置文件記錄SDK版本信息MainActivity.javapackagecom.example.helloworld;importandroid.app.Activity;importandroid.os.Bundle;importandroid.view.Menu;publicclassMainActivityextendsActivity{ @Override protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override publicbooleanonCreateOptionsMenu(Menumenu){ //Inflatethemenu;thisaddsitemstotheactionbarifitispresent. getMenuInflater().inflate(R.menu.main,menu); returntrue; }}res-layout-activity_main.xml<RelativeLayoutxmlns:android="://schemas.android/apk/res/android"xmlns:tools="://schemas.android/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="com.example.helloworld.MainActivity"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/hello_world"/></RelativeLayout>res-values-strings.xml<?xmlversion="1.0"encoding="utf-8"?><resources><stringname="app_name">HelloWorld</string><stringname="hello_world">Helloworld!</string><stringname="action_settings">Settings</string></resources>gen-R.javapackagecom.example.helloworld;publicfinalclassR{……..publicstaticfinalclassdrawable{publicstaticfinalintic_launcher=0x7f020000;}……}publicstaticfinalclasslayout{publicstaticfinalintactivity_main=0x7f030000;}publicstaticfinalclassmenu{publicstaticfinalintmain=0x7f070000;}publicstaticfinalclassstring{publicstaticfinalintaction_settings=0x7f050002;publicstaticfinalintapp_name=0x7f050000;publicstaticfinalinthello_world=0x7f050001;}……}AndroidManifest.xml文件AndroidManifest.xml是每一個應(yīng)用都需要的文件,位于應(yīng)用根目錄下,它描述了程序包的全局變量,包括暴露的應(yīng)用組件〔activities,services等等〕和為每個組件的實(shí)現(xiàn)類,什么樣的數(shù)據(jù)可以操作,以及在什么地方運(yùn)行。主要包括以下各個元素:包名〔package〕:指定本應(yīng)用內(nèi)java主程序包的包名。當(dāng)沒有指定apk的文件名時,編譯后產(chǎn)生程序包將以此命名。本包名應(yīng)當(dāng)在Android系統(tǒng)運(yùn)行時唯一。認(rèn)證〔certificate〕:指定本應(yīng)用程序所授予的信任級別,目前有的認(rèn)證級別有platform(system)、shared、media以及應(yīng)用自定義的認(rèn)證。不同的認(rèn)證可以享受不同的權(quán)限。權(quán)限〔permission/permission-group/permission-tree/uses-permission〕:權(quán)限用來描述是否擁有做某件事的權(quán)力。SDK〔uses-sdk〕:標(biāo)識本應(yīng)用運(yùn)行的SDK版本。application:application:是Android應(yīng)用內(nèi)最高級別(toplevel)的模塊,每個應(yīng)用內(nèi)最多只能有一個application,如果應(yīng)用沒有指定該模塊,一個默認(rèn)的application將被啟用。application將在應(yīng)用啟動時最先被加載,并存活在應(yīng)用的整個運(yùn)行時生命周期。AndroidManifest.xml文件結(jié)構(gòu)大綱<manifest>文件根節(jié)點(diǎn),描述了程序包的所有內(nèi)容.<uses-permission>請求一個平安授權(quán),必須被授予該權(quán)限,您的程序包才能正確的操作.0~N<permission>聲明一個平安授權(quán),用來限制哪些應(yīng)用可以訪問您的程序包內(nèi)的組件和特有機(jī)制.0~N<instrumentation><application>描述程序包內(nèi)應(yīng)用級別組件的根節(jié)點(diǎn).該節(jié)點(diǎn)能夠描述應(yīng)用程序的全局(和/或)默認(rèn)屬性,例如標(biāo)簽,圖標(biāo),主題,需要的授權(quán),等等.包含零個或一個這樣的節(jié)點(diǎn)<activity>Activity是應(yīng)用于用戶交互的最主要機(jī)制.當(dāng)一個應(yīng)用運(yùn)行的時候,用戶看到的第一個屏幕就是activity,并且,用戶所使用的其他絕大多數(shù)屏幕(界面)也會是<intent-filter><action><category><type><scheme><authority><path><receiver>一個IntentReceiver可以讓應(yīng)用接收到一次數(shù)據(jù)變化和一次行為發(fā)生的通知,甚至這個應(yīng)用沒有在運(yùn)行也可以.同activity標(biāo)簽一樣,你可以選擇包含一個或多個<intent-filter>元素<service>Service是一個在后臺任意時刻都可以運(yùn)行的組件.同activity標(biāo)簽一樣,你可以選擇包含一個或多個<intent-filter>元素<provider>ContentProvider組件是用來管理數(shù)據(jù)持久化及數(shù)據(jù)發(fā)布的,發(fā)布的數(shù)據(jù)可以被其他的應(yīng)用訪問.AndroidManifest.xml-HelloWorld工

溫馨提示

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

最新文檔

評論

0/150

提交評論