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

下載本文檔

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

文檔簡介

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

溫馨提示

  • 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

提交評論