Android應(yīng)用開(kāi)發(fā)之初級(jí)入門(mén)介紹_第1頁(yè)
Android應(yīng)用開(kāi)發(fā)之初級(jí)入門(mén)介紹_第2頁(yè)
Android應(yīng)用開(kāi)發(fā)之初級(jí)入門(mén)介紹_第3頁(yè)
Android應(yīng)用開(kāi)發(fā)之初級(jí)入門(mén)介紹_第4頁(yè)
Android應(yīng)用開(kāi)發(fā)之初級(jí)入門(mén)介紹_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

Android應(yīng)用開(kāi)發(fā)——初級(jí)入門(mén)介紹綱要Android開(kāi)發(fā)類(lèi)型Android框架簡(jiǎn)述Android工具搭建Android開(kāi)發(fā)環(huán)境簡(jiǎn)單Android案例演示目錄結(jié)構(gòu)分析Android應(yīng)用的根本組件介紹Android的開(kāi)發(fā)類(lèi)型移植開(kāi)發(fā)系統(tǒng)應(yīng)用程序開(kāi)發(fā)Android系統(tǒng)開(kāi)發(fā)移植開(kāi)發(fā)系統(tǒng)應(yīng)用程序開(kāi)發(fā)Android系統(tǒng)開(kāi)發(fā)Android框架簡(jiǎn)述第四層:Java應(yīng)用第三層:Java框架第二層:本地框架和Java運(yùn)行環(huán)境第一層:Linux內(nèi)核及驅(qū)動(dòng)Android框架簡(jiǎn)述Android的軟件結(jié)構(gòu)的四個(gè)層次:操作系統(tǒng)層〔Linux,相關(guān)驅(qū)動(dòng)〕庫(kù)〔Libraries〕和運(yùn)行環(huán)境〔RunTime〕應(yīng)用程序框架〔ApplicationFramework〕應(yīng)用程序〔Application〕Android框架簡(jiǎn)述操作系統(tǒng)層使用C語(yǔ)言編寫(xiě),運(yùn)行于內(nèi)核空間。底層庫(kù)和JAVA虛擬機(jī)使用C語(yǔ)言編寫(xiě),運(yùn)行于用戶(hù)空間。JAVA框架和JAVA應(yīng)用程序使用C語(yǔ)言編寫(xiě),運(yùn)行于用戶(hù)空間。Android的第1層次由C語(yǔ)言實(shí)現(xiàn),第2層次由C和/C++實(shí)現(xiàn),第3、4層次主要由Java代碼實(shí)現(xiàn)。第1層次和第2層次之間,從Linux操作系統(tǒng)的角度來(lái)來(lái)看,是內(nèi)核空間與用戶(hù)空間的分界線(xiàn),第1層次運(yùn)行于內(nèi)核空間,第2、3、4層次運(yùn)行于用戶(hù)空間。第2層次和第3層次之間,是本地代碼層和Java代碼層的接口。第3層次和第4層次之間,是Android的系統(tǒng)API的接口,對(duì)于A(yíng)ndroid應(yīng)用程序的開(kāi)發(fā),第3層次以下的內(nèi)容是不可見(jiàn)的,僅考慮系統(tǒng)API即可。操作系統(tǒng)層〔Linux,相關(guān)驅(qū)動(dòng)〕Linux操作系統(tǒng)和驅(qū)動(dòng):Android的核心系統(tǒng)效勞依賴(lài)于Linux內(nèi)核,如平安性,內(nèi)存管理,進(jìn)程管理,網(wǎng)絡(luò)協(xié)議棧和驅(qū)動(dòng)模型。Linux內(nèi)核也同時(shí)作為硬件和軟件棧之間的抽象層。庫(kù)〔Libraries〕和運(yùn)行環(huán)境〔RunTime〕Android包含一些C/C++庫(kù),這些庫(kù)能被Android系統(tǒng)中不同的組件使用。它們通過(guò)Android應(yīng)用程序框架為開(kāi)發(fā)者提供效勞。系統(tǒng)C庫(kù):一個(gè)從BSD繼承來(lái)的標(biāo)準(zhǔn)C系統(tǒng)函數(shù)庫(kù),專(zhuān)門(mén)為基于嵌入式linux的設(shè)備定制的。媒體庫(kù):基于PacketVideoOpenCORE;該庫(kù)支持多種常用的音頻、視頻格式回放和錄制。SurfaceManager:對(duì)顯示子系統(tǒng)的管理,圖層功能。WebCore:一個(gè)最新的web瀏覽器引擎用,支持Android瀏覽器和一個(gè)可嵌入的web視圖。SGL:Skia的2D圖形引擎3Dlibraries:基于OpenGL實(shí)現(xiàn);該庫(kù)可以使用硬件3D加速〔如果可用〕或者使用高度優(yōu)化的3D軟加速。FreeType:位圖〔bitmap〕和矢量〔vector〕字體顯示庫(kù)〔Libraries〕和運(yùn)行環(huán)境〔RunTime〕Android包括了一個(gè)核心庫(kù),該核心庫(kù)提供了JAVA編程語(yǔ)言核心庫(kù)的大多數(shù)功能。每一個(gè)Android應(yīng)用程序都在它自己的進(jìn)程中運(yùn)行,都擁有一個(gè)獨(dú)立的Dalvik虛擬機(jī)實(shí)例。Dalvik被設(shè)計(jì)成一個(gè)設(shè)備可以同時(shí)高效地運(yùn)行多個(gè)虛擬系統(tǒng)。Dalvik虛擬機(jī)執(zhí)行〔.dex〕的Dalvik可執(zhí)行文件,該格式文件針對(duì)小內(nèi)存使用做了優(yōu)化。同時(shí)虛擬機(jī)是基于存放器的,所有的類(lèi)都經(jīng)由JAVA編譯器編譯,然后通過(guò)SDK中的"dx"工具轉(zhuǎn)化成.dex格式由虛擬機(jī)執(zhí)行。Dalvik虛擬機(jī)依賴(lài)于linux內(nèi)核的一些功能,比方線(xiàn)程機(jī)制和底層內(nèi)存管理機(jī)制。應(yīng)用程序框架〔ApplicationFramework〕開(kāi)發(fā)人員也可以完全訪(fǎng)問(wèn)核心應(yīng)用程序所使用的API框架。該應(yīng)用程序的架構(gòu)設(shè)計(jì)簡(jiǎn)化了組件的重用;任何一個(gè)應(yīng)用程序都可以發(fā)布它的功能塊并且任何其它的應(yīng)用程序都可以使用其所發(fā)布的功能塊〔不過(guò)得遵循框架的平安性限制〕。同樣,該應(yīng)用程序重用機(jī)制也使用戶(hù)可以方便的替換程序組件。隱藏在每個(gè)應(yīng)用后面的是一系列的效勞和系統(tǒng),其中包括;豐富而又可擴(kuò)展的視圖〔Views〕,可以用來(lái)構(gòu)建應(yīng)用程序,它包括列表〔lists〕,網(wǎng)格〔grids〕,文本框〔textboxes〕,按鈕〔buttons〕,甚至可嵌入的web瀏覽器。內(nèi)容提供器〔ContentProviders〕:使得應(yīng)用程序可以訪(fǎng)問(wèn)另一個(gè)應(yīng)用程序的數(shù)據(jù)〔如聯(lián)系人數(shù)據(jù)庫(kù)〕,或者共享它們自己的數(shù)據(jù)資源管理器〔ResourceManager〕:提供非代碼資源的訪(fǎng)問(wèn),如本地字符串,圖形,和布局文件〔layoutfiles〕。通知管理器〔NotificationManager〕:使得應(yīng)用程序可以在狀態(tài)欄中顯示自定義的提示信息?;顒?dòng)管理器〔ActivityManager〕:用來(lái)管理應(yīng)用程序生命周期并提供常用的導(dǎo)航回退功能。應(yīng)用程序〔Application〕Android會(huì)同一系列核心應(yīng)用程序包一起發(fā)布,這些應(yīng)用程序包也就是預(yù)置的應(yīng)用程序,主要包括email客戶(hù)端,SMS短消息程序,日歷,地圖,瀏覽器,聯(lián)系人管理程序等。所有的應(yīng)用程序都是使用JAVA語(yǔ)言編寫(xiě)的。Android工具aapt〔AndroidAssetPackagingTool〕用于建立Zip兼容的包(zip,jar,apk),也可用于編譯資源到二進(jìn)制的assets。abd〔AndroidDebugBridge,Android調(diào)試橋〕使用Adb工具可以在模擬器或設(shè)備上安裝應(yīng)用程序的.apk文件,并從命令行訪(fǎng)問(wèn)模擬器或設(shè)備。也可以用它把Android模擬器或設(shè)備上的應(yīng)用程序代碼和一個(gè)標(biāo)準(zhǔn)的調(diào)試器連接在一起。$./out/host/linux-x86/bin/adbshell$./out/host/linux-x86/bin/adbinstallXXX.apk$./out/host/linux-x86/bin/adbpush{host_path}{target_path}$./out/host/linux-x86/bin/adbpull{target_path}{host_path}Android工具AIDL工具〔AndroidInterfaceDescriptionLanguage,Android接口描述語(yǔ)言〕可以生成進(jìn)程間的接口的代碼,諸如service可能使用的接口。AVDs〔AndroidVirtualDevices,Android虛擬設(shè)備〕用于配置仿真器的選項(xiàng),使用實(shí)際的設(shè)備。DDMS〔DalvikDebugMonitorService,Dalvik調(diào)試監(jiān)視器效勞〕這個(gè)工具集成了Dalvik,能夠在模擬器或者設(shè)備上管理進(jìn)程并協(xié)助調(diào)試??梢允褂盟鼩⑺肋M(jìn)程,選擇某個(gè)特定的進(jìn)程來(lái)調(diào)試,產(chǎn)生跟蹤數(shù)據(jù),觀(guān)察堆〔heap〕和線(xiàn)程信息,截取模擬器或設(shè)備的屏幕畫(huà)面,還有更多的功能。Android工具dxDx工具將.class字節(jié)碼〔bytecode〕轉(zhuǎn)換為Android字節(jié)碼〔保存在.dex文件中〕。Draw9-patchDraw9-patch工具允許使用所見(jiàn)即所得〔WYSIWYG〕的編輯器輕松地創(chuàng)立NinePatch圖形。Emulator〔模擬器〕它是在的計(jì)算機(jī)上運(yùn)行的一個(gè)虛擬移動(dòng)設(shè)備??梢允褂媚M器來(lái)在一個(gè)實(shí)際的Android運(yùn)行環(huán)境下設(shè)計(jì),調(diào)試和測(cè)試的應(yīng)用程序。HierarchyViewer〔層級(jí)觀(guān)察器〕層級(jí)觀(guān)察器工具允許調(diào)試和優(yōu)化的用戶(hù)界面。它用可視的方法把的視圖〔view〕的布局層次展現(xiàn)出來(lái),此外還給當(dāng)前界面提供了一個(gè)具有像素柵格(grid)的放大鏡觀(guān)察器。Android工具mksdcard幫助創(chuàng)立磁盤(pán)映像〔diskimage〕,可以在模擬器環(huán)境下使用磁盤(pán)映像來(lái)模擬外部存儲(chǔ)卡〔例如SD卡〕。MonkeyMonkey是在模擬器上或設(shè)備上運(yùn)行的一個(gè)小程序,它能夠產(chǎn)生為隨機(jī)的用戶(hù)事件流,例如點(diǎn)擊(click),觸摸(touch),揮手〔gestures〕,還有一系列的系統(tǒng)級(jí)事件??梢允褂肕onkey來(lái)給正在開(kāi)發(fā)的程序做隨機(jī)的,但可重復(fù)的壓力測(cè)試。sqlite3sqlite3工具能夠方便地訪(fǎng)問(wèn)SQLite數(shù)據(jù)文件。Traceview這個(gè)工具可以將的Android應(yīng)用程序產(chǎn)生的跟蹤日志〔tracelog〕轉(zhuǎn)換為圖形化的分析視圖搭建Android開(kāi)發(fā)環(huán)境主流IDE選擇EclipseIntellijideaAndroidStudio環(huán)境選擇Intellijidea+jdk+sdk簡(jiǎn)單Android案例演示簡(jiǎn)單開(kāi)發(fā)一個(gè)Android應(yīng)用程序演示目錄結(jié)構(gòu)分析工程結(jié)構(gòu)目錄res、src、AndroidManifest.xml這三個(gè)是必須的,其他可選目錄結(jié)構(gòu)分析res目錄:存放Android工程的各種資源文件,比方layout存放界面布局文件,values目錄下那么存放各種XML格式的資源文件,例如字符串資源文件:strings.xml:顏色資源文件:colors.xml:尺寸資源文件:dimens.xmUdrawable-ldpi、drawab丨e-mdpi、drawable-hdpi、drawable-xhdpi這4個(gè)子目錄那么分別用于存放低分辨率、中分辨率、高分辨率、超高分辨率的4種圖片文件。src目錄只是一個(gè)普通的、保存Java源文件的目錄。AndroidManifest.xml文件是Android工程的系統(tǒng)清單文件,它用于控制Android應(yīng)用的名稱(chēng)、圖標(biāo)、訪(fǎng)問(wèn)權(quán)限等整體屬性。除此之外Andriod應(yīng)用的Activity、Service、ContentProvider、BroadcastRecevier這4大組件都需要在該文件中配置目錄結(jié)構(gòu)分析bin:目錄錄用于存放生成的目標(biāo)文件,如Java的二進(jìn)制文件、資源打包文件〔.ap_后綴〕、Dalvik虛擬機(jī)的可執(zhí)行性文件〔.dex后綴〕等。gen:目錄錄用于保存自動(dòng)生成的、位于A(yíng)ndroid工程包下的R.java文件。Android應(yīng)用的根本組件介紹Android應(yīng)用通常由一個(gè)或多個(gè)根本組件組成,最常用的組件就是Activity。還包括Service、BroadcastReceiver、ContentProvider等組件。View組件是所有U丨控件、容器控件的基類(lèi),View組件就是Android應(yīng)用中用戶(hù)實(shí)實(shí)在在看到的局部。但View組件需要放到容器組件中,或者使用Activity將它顯示出來(lái)。如果需要通過(guò)某個(gè)Activity把指定View顯示出來(lái),調(diào)用Activity的setContentView()方法即可。如下代碼://創(chuàng)立一個(gè)線(xiàn)性布局管理器LinearLayoutlayout=newLinearLayout(this);//設(shè)置該Activity顯示layoutsetContentView(layout);上面的程序通過(guò)代碼創(chuàng)立了一個(gè)LinearLayout對(duì)象〔它是ViewGroup的子類(lèi),ViewGroup又是View的子類(lèi)〕,接著調(diào)用Activity的setContentView(layout)把這個(gè)布局管理器顯示出來(lái)。setContentVujwO方法也可接受一個(gè)布局管理資源的ID作為參數(shù),例如如下代碼://設(shè)置該Activity顯示main?xml文件定義的ViewsetContentView(R.layout.main);Android應(yīng)用的根本組件介紹Activity組件Activity為Android應(yīng)用提供了可視化用戶(hù)界面,如果該Android應(yīng)用需要多個(gè)用戶(hù)界面,那么這個(gè)Android應(yīng)用將會(huì)包含多個(gè)Activity,多個(gè)Activity組成Activity棧,當(dāng)前活動(dòng)的Activity位于棧頂。Android應(yīng)用的根本組件介紹Service組件Service與Activity的地位是并列的,它也代表一個(gè)單獨(dú)的Android組件。Service與Activity的區(qū)別在于:Service通常位于后臺(tái)運(yùn)行,它一般不需要與用戶(hù)交互,因此Service組件沒(méi)有圖形用戶(hù)界面。與Activity組件需要繼承Activity基類(lèi)相似,Service組件需要繼承Service基類(lèi)。一個(gè)Service組件被運(yùn)行起來(lái)之后,它將擁有自己獨(dú)立的生命周期,Service組件通常用于為其他組件提供后臺(tái)效勞或監(jiān)控其他組件的運(yùn)行狀態(tài)。Android應(yīng)用的根本組件介紹BroadcastReceiver組件BroadcastReceiver是Android應(yīng)用中另一個(gè)重要的組件,從代碼實(shí)現(xiàn)角度來(lái)看,BroadcastReceiver非常類(lèi)似于事件編程中的監(jiān)聽(tīng)器。與普通事件監(jiān)聽(tīng)器不同的是:普通事件監(jiān)聽(tīng)器監(jiān)聽(tīng)的事件源是程序中的對(duì)象:而B(niǎo)roadcastReceiver監(jiān)聽(tīng)的事件源是Android應(yīng)用中的其他組件。使用BroadcastReceiver組件接收廣播消息比較簡(jiǎn)單,開(kāi)發(fā)者只要實(shí)現(xiàn)自己的BroadcastReceiver子類(lèi),并重寫(xiě)onReceive(Contextcontext,Intentintent)方法即可,當(dāng)其他組件通過(guò)sendBroadcast〇、sendStickyBroadcast()或sendOrderedBroadcast〇方法發(fā)送播送消息時(shí),如該BroadcastReceiver也對(duì)該消息“感興趣”〔通過(guò)IntentFiiter配置〕,BroadcastReceiver的onReceive(Contextcontext.Intentintent)方法將會(huì)被觸發(fā)。開(kāi)發(fā)者實(shí)現(xiàn)了自己的BroadcastReceiver之后,通常有兩種方式來(lái)注冊(cè)這個(gè)系統(tǒng)級(jí)的“事件監(jiān)聽(tīng)器”。在Java代碼中通過(guò)Context.registReceiver()方法注冊(cè)BroadcastReceiver。在A(yíng)ndroidManifest.xm丨文件中使用<receiver/>元素完成注冊(cè)。Android應(yīng)用的根本組件介紹ContentProvider組件對(duì)于A(yíng)ndroid應(yīng)用而言,它們必須相互獨(dú)立,各自運(yùn)行在自己的Dalvik虛擬機(jī)實(shí)例中,如果這些Android應(yīng)用之間需要實(shí)現(xiàn)實(shí)時(shí)的數(shù)據(jù)交換。例如我們開(kāi)發(fā)了一個(gè)發(fā)送短信的程序,當(dāng)發(fā)送短信時(shí)需要從聯(lián)系人管理應(yīng)用中讀取指定聯(lián)系人的數(shù)據(jù)——這就需要多個(gè)應(yīng)用程序之間進(jìn)行數(shù)據(jù)交換。需要實(shí)現(xiàn)如下抽象方法。insert(Uri,ContentValues}:向ContentProvider插入數(shù)據(jù)。delete(Uri,ContentValues):刪除ContentProvider中指定數(shù)據(jù)。update(Uri,ContentValues,String,String[]>:更新ContentProvider中指定數(shù)據(jù)。query(Uri,StringD,String,String[],String):從ContentProvider査詢(xún)數(shù)據(jù)。通常與ContentProvider結(jié)合使用的是ContentResolver,一個(gè)應(yīng)用程序使用ContentProvider暴露自己的數(shù)據(jù),而另一個(gè)應(yīng)用程序那么通過(guò)ContentResolver來(lái)訪(fǎng)問(wèn)數(shù)據(jù)。Android應(yīng)用的根本組件介紹Intent和IntentFilter嚴(yán)格地說(shuō),Intent并不是Android應(yīng)用的組件,但它對(duì)于A(yíng)ndroid應(yīng)用的作用非常大一它是Android應(yīng)用內(nèi)不同組件之間通信的載體。當(dāng)Android運(yùn)行時(shí)需要連接不同的組件時(shí),通常就需要借助于Intent來(lái)實(shí)現(xiàn)。Intent可以啟動(dòng)應(yīng)用中另一個(gè)Activity,也可以啟動(dòng)一個(gè)Service組件,還可以發(fā)送一條播送消息來(lái)觸發(fā)系統(tǒng)中的BroadcastReceiver。也就是說(shuō),Activity、Service、BroadcastReceiver三種組件之間的通信都以Intent作為載體,只是不同組件使用Intent的機(jī)制略有區(qū)別而己。>當(dāng)需要啟動(dòng)一個(gè)Activity時(shí),可調(diào)用Context的startActivity(Intentintent〉或startActivityForResult(lntentintent,intrequestCode)方法,這兩個(gè)方法中的Intent參數(shù)封裝了需要啟動(dòng)的目標(biāo)Activity的信息。>當(dāng)需要啟動(dòng)一個(gè)Service時(shí),可調(diào)用Context的startServ

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論