安卓移動開發(fā)簡答題程序文件_第1頁
安卓移動開發(fā)簡答題程序文件_第2頁
安卓移動開發(fā)簡答題程序文件_第3頁
安卓移動開發(fā)簡答題程序文件_第4頁
安卓移動開發(fā)簡答題程序文件_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、WORD15/15安卓簡答+程序題1、請簡述Android ADT (參見23)答:ADT,是Android Development ToolKit 的縮寫,表示開發(fā)工具包,是Eclipse的一個插件,用于快速創(chuàng)建Android工程、用戶界面和基于Android API 的組件。(3)ADT可以在Eclipse中輸入其下載地址進行安裝。在Eclipse中單獨安裝ADT插件的方法是使用菜單“HelpInstall New Software”。(1或2)在Eclipse的首選項中,只有安裝了ADT,才會出現(xiàn)做Android應用開發(fā)的選項“Android”。(0或1)請簡述Android SDK (

2、參見23)答:Android SDK( Software Development Kit),表示Android軟件開發(fā)包,是Android整體開發(fā)中所用到的工具包,提供了庫文件以與其他開發(fā)所用到的工具。如果在Eclipse中不關(guān)聯(lián)Android SDK,則無法開發(fā)Android應用程序。(2)在Eclipse中使用Android SDK提供的工具可以進行程序調(diào)試或?qū)?apk文件進行簽名等。Android API是Android SDK的主體。(1)Android SDK目錄包含的子目錄中build-tools:包含了Android應用的編譯工具;platforms:存放Android SDK

3、Platforms平臺相關(guān)的文件;add-ons:存放Android的擴展庫;sources:存放Android API的源碼;platform-tools:存放平臺工具;tools:包含了用于操作SQLite數(shù)據(jù)庫的程序、模擬器管理程序、對Android應用程序進行調(diào)試和模擬服務的批處理程序等工具。(2)請簡述Android AVD (參見29)答:AVD(android virtual device),表示Android虛擬設備即模擬器,是Android SDK提供的重要工具之一,用于在沒有物理設備的情況下,在計算機上對Android程序進行開發(fā)、調(diào)試和仿真。(3)AVD可以通過Eclip

4、se菜單中WindowsAndroid AVD Managernew創(chuàng)建,通過Android AVD Managerstart啟動。(1)在Android應用工程名的的快捷菜單中,選擇“Run AsAndroid Application”可將工程部署到AVD并運行。(1)請簡述“I18n警告性錯誤(35)答:I18n是國際化(Internationalization)的簡稱,國際化是指在設計軟件時,將軟件與特定語言與地區(qū)脫鉤的過程。(2)“I18n警告性錯誤在程序的寫法不符合國際化做法的時候發(fā)生。(1)如文本框控件值的引用要通過引用字符串的變量的方法來實現(xiàn)(如)這是符合國際化的做法,如果不通過

5、引用字符串的變量的方法,而直接用字符串常量代替(如)則不符合國際化做法,會導致“I18n警告性錯誤黃色的感嘆號。(2)請簡述Activity 組件與視圖View (46、60)答:Activity是安卓最重要的組件,負責用戶界面的設計,Activity用戶界面框架采用MVC模式(model view controller)。(1)控制器負責接受并響應程序的外部動作;通過視圖來反饋應用程序給用戶的信息(通常是屏幕信息反饋);模型是應用程序的核心,用于保存數(shù)據(jù)和代碼。(1)Android組件在清單文件中使用注冊。Activity組件通過Intent對象激活。(1)Activity作為用戶界面,提供

6、了一些基本方法,如設置容視圖方法setContentView()、找控件方法findViewById()、關(guān)閉當前窗口方法finish()等。(1)Activity的一些擴展方法包括,用于數(shù)據(jù)共享存儲的getPreference()方法、用于動態(tài)加載頁面布局的getLayoutInflater()方法,開始后臺服務的startService()方法、發(fā)送廣播的sendBroadcast()方法、獲得程序間數(shù)據(jù)共享的容解析器的getContentResolver()方法等。(1)每個Activity除了有創(chuàng)建onCreat()、銷毀onDestroy()兩個基本方法外,還有停止onStop()、

7、激活onStart()、暫停onPause()、恢復onResume()等方法。(1)Activity在其生命周期有三種狀態(tài):運行態(tài)、暫停態(tài)和停止態(tài)。運行態(tài)是指Activity出現(xiàn)在屏幕的最上層的狀態(tài),此時用戶通??梢垣@取焦點;暫停態(tài)是指Activity調(diào)用onPause()方法后出現(xiàn)的狀態(tài),其上還有處于運行態(tài)的Activity存在,并且Activity沒有被完全遮住,即處于暫停態(tài)的Activity有一部分視圖被用戶所見;停止態(tài)是指當前Activity調(diào)用onStop()方法后出現(xiàn)的狀態(tài),此時它完全被處于運行態(tài)的Activity遮擋住,即用戶界面完全不被用戶所見。請簡述Service 組件(4

8、6/171) (簡不了啊媽媽) 答:Service服務類組件是Android提供的無用戶界面、長時間在后臺運行的組件。Android組件在清單文件中使用注冊。Service 組件通過Intent對象激活。Service有利于降低系統(tǒng)資源的開銷,而且比Activity有更高的優(yōu)先級。Service服務的調(diào)用分為顯式啟動和隱式啟動。顯式啟動是指在創(chuàng)建Intent對象時,指明Service所在的類,并調(diào)用方法startService(Intent)啟動Service。隱式啟動是指在注冊Service的同時,嵌標簽與,標簽的android:name屬性指定了引用該服務的名稱。隱式啟動的好處是不需要指明

9、需要啟動哪一個Activity,而由Android系統(tǒng)根據(jù)Intent的動作和數(shù)據(jù)來決定,這樣有利于降低Android組件之間的耦合度,強調(diào)Android組件的可復用性。若Service與調(diào)用它的組件在同一個應用程序中,則既可以使用顯式啟動,也可以使用隱式啟動(顯式啟動代碼簡潔);若服務和調(diào)用服務的組件在不同的應用程序中,則服務只能用隱式啟動方式。Service有startService()的非綁定啟動方式和bindService()的綁定啟動方式兩種。Service的兩種啟動方式:采用start開啟服務使用Service的步驟:(1).定義一個類繼承Service(2).在Manifest.

10、xml文件中配置該Service(3).使用Context的startService(Intent)方法啟動該Service(4).不再使用時,調(diào)用stopService(Intent)方法停止該服務使用這種start方式啟動的Service的生命周期如下: onCreate()onStartCommand()(onStart()方法已過時) onDestory()說明:如果服務已經(jīng)開啟,不會重復的執(zhí)行onCreate(), 而是會調(diào)用onStart()和onStartCommand()。服務停止的時候調(diào)用 onDestory()。服務只會被停止一次。特點:一旦服務開啟跟調(diào)用者(開啟者)就沒有

11、任何關(guān)系了。開啟者退出了,開啟者掛了,服務還在后臺長期的運行。開啟者不能調(diào)用服務里面的方法。二、采用bind的方式開啟服務使用Service的步驟:(1).定義一個類繼承Service(2).在Manifest.xml文件中配置該Service(3).使用Context的bindService(Intent, ServiceConnection, int)方法啟動該Service(4).不再使用時,調(diào)用unbindService(ServiceConnection)方法停止該服務使用這種bind方式啟動的Service的生命周期如下:onCreate() onBind()onunbind()o

12、nDestory()注意:綁定服務不會調(diào)用onstart()或者onstartcommand()方法特點:bind的方式開啟服務,綁定服務,調(diào)用者掛了,服務也會跟著掛掉。綁定者可以調(diào)用服務里面的方法。服務的整個生命周期從調(diào)用 onCreate() 開始起,到 onDestroy() 返回時結(jié)束。與 Activity 類似,服務也在 onCreate() 中完成初始設置,并在 onDestroy() 中釋放所有剩余資源。無論服務是通過 startService() 還是 bindService() 創(chuàng)建,都會為所有服務調(diào)用 onCreate() 和 onDestroy() 方法。服務的有效生命周

13、期從調(diào)用 onStartCommand() 或 onBind() 方法開始。每種方法均有 Intent 對象,該對象分別傳遞到 startService() 或 bindService()。對于啟動服務,有效生命周期與整個生命周期同時結(jié)束(即便是在 onStartCommand() 返回之后,服務仍然處于活動狀態(tài))。對于綁定服務,有效生命周期在 onUnbind() 返回時結(jié)束。啟動服務該服務在其他組件調(diào)用 startService() 時創(chuàng)建,然后無限期運行,且必須通過調(diào)用 stopSelf() 來自行停止運行。此外,其他組件也可以通過調(diào)用 stopService() 來停止服務。服務停止后

14、,系統(tǒng)會將其銷毀。綁定服務該服務在另一個組件(客戶端)調(diào)用 bindService() 時創(chuàng)建。然后,客戶端通過 IBinder 接口與服務進行通信??蛻舳丝梢酝ㄟ^調(diào)用 unbindService() 關(guān)閉連接。多個客戶端可以綁定到一樣服務,而且當所有綁定全部取消后,系統(tǒng)即會銷毀該服務。 (服務不必自行停止運行)請簡述BroadcastReceiver 組件(46、191)答:BroadcastReceiver,即廣播接收者,用來接收來自系統(tǒng)或其它應用程序的廣播,并作出回應。廣播接收者組件沒有UI界面。(2)在Android應用中,廣播接收者類使用標簽在清單文件中注冊,為靜態(tài)注冊方式,只能具有

15、相應權(quán)限的廣播接收者才能接收廣播、獲取Intent對象中的數(shù)據(jù)。動態(tài)注冊是在程序過使用Context類提供的方法registerReceiver()完成的。(2)創(chuàng)建廣播接收者的方法有兩種,一是標準的類繼承方法,二是通過向?qū)?chuàng)建廣播接收者。(1)BroadcastReceiver 組件通過Intent對象激活。一個BroadcastReceiver的生命周期從調(diào)用onReceiver(Context,Intent)方法開始,到該方法返回結(jié)束。(1)8、請簡述ContentProvider 組件(46、251)答:ContentProvider(容提供者)是Android系統(tǒng)中不同應用程序之間共

16、享數(shù)據(jù)的接口,用于保存和檢索數(shù)據(jù)。使用ContentProvider訪問某個應用程序的數(shù)據(jù),不必關(guān)心其數(shù)據(jù)的存儲方式,其他應用程序可以通過一個ContentProvider類型的對象來操作某個程序的數(shù)據(jù)。(2)Android應用開發(fā)者將自己的持久化數(shù)據(jù)公開給其他應用程序有兩種方法:一是定義自己的ContentProvider子類,在清單文件里使用標簽注冊,并實現(xiàn)CRUD(增加(Create)、讀取查詢(Retrieve)、更新(Update)和刪除(Delete);二是將當前應用程序的數(shù)據(jù)添加到已有的ContentProvider中。(2)組件ContentProvider的四個CRUD方法的

17、第一方法參數(shù)均為Uri類型。創(chuàng)建ContentProvider子類時,標簽中name為必填屬性,表示ContentProvider子類的名稱;authorities也是必填屬性,表示其他應用程序訪問該ContentProvider時的路徑;permission是任選屬性,用于對本應用提供的數(shù)據(jù)訪問的限定,省略permission屬性時,表示任何應用都可以訪問本應用提供的數(shù)據(jù)。(1)9、請簡述意圖對象intent (47)答:Intent,意圖、打算,用于對某個操作的抽象描述,包括動作名稱、操作數(shù)據(jù)以與附加數(shù)據(jù)的描述。在Android中,通過Intent對象實現(xiàn)組件之間相互調(diào)用的相關(guān)信息。意圖類

18、Intent在Android程序設計中起紐帶作用,負責傳遞信息和數(shù)據(jù)。(1)Android組件調(diào)用時,Intent除了封裝意圖名稱,還封裝了一些方法,主要包括構(gòu)造方法、存放附加數(shù)據(jù)方法、獲取數(shù)據(jù)方法和設置屬性方法等。(1)Intent顯式調(diào)用是通過使用顯式意圖明確要激活的組件,其方法是通過Intent提供的方法setClass()、setClassName()或setComponent()來指定的。(1)Intent隱式調(diào)用需要在清單文件中使用標簽(意圖過濾器)來指定動作名稱。(1)隱式意圖就是在意圖激活Activity、Service或BroadcastReceiver這三類組件時,不需要顯

19、式指出組件的名稱,而是指定action與category,Android系統(tǒng)會根據(jù)其特征找到相應的組件并激活。延其意圖類PendingIntent一般用在Notification上,可以理解為延期執(zhí)行的Intent,是對Intent的一個包裝。(1)10、請簡述AIDL(185)答:AIDL(android interface definition language)是Android自定義的接口描述語言,可以簡化進程間數(shù)據(jù)格式轉(zhuǎn)換和數(shù)據(jù)交換的代碼,通過定義Service部的共有方法,允許在不同進程的調(diào)用者和Service之間相互傳遞數(shù)據(jù)。(2)AIDL允許定義函數(shù)參數(shù)的傳遞方向,有三種方向:標

20、識為in的參數(shù)將從調(diào)用者傳遞到遠程服務中,標識為out的參數(shù)將從遠程服務傳遞到調(diào)用者中,標識為inout的參數(shù)先從調(diào)用者傳遞到遠程服務中,再從遠程服務返回到調(diào)用者。(2)使用AIDL跨進程調(diào)用(遠程服務)的服務器端開發(fā),其主要步驟如下:.創(chuàng)建接口描述文件;.建立一個服務類(service的子類)并實現(xiàn)接口;.在Service的綁定方法onBind(Intent)里返回實現(xiàn)了接口的實例對象;.在清單文件中注冊AIDL對應的服務。使用AIDL跨進程調(diào)用(遠程服務)的客戶端開發(fā),其主要步驟如下:.創(chuàng)建與服務器端一樣的接口描述文件;.在主Activity中,定義遠程服務連接對象,在其創(chuàng)建遠程服務對象;

21、.在主Activity中使用綁定方式調(diào)用遠程服務,通過遠程服務對象調(diào)用遠程服務里的方法。(2)11、請簡述SQLite 數(shù)據(jù)庫的特點(218)答:SQLite數(shù)據(jù)庫適合于嵌入式系統(tǒng),占用資源少、運行高效、可移植性好、并且提供了零配置的運行模式,是Android手機自帶(即置)的輕量級數(shù)據(jù)庫軟件,提供了對數(shù)據(jù)庫的增刪改查等操作。(3)SQLite數(shù)據(jù)庫體系結(jié)構(gòu)中最核心的部分是虛擬機,也稱虛擬數(shù)據(jù)庫引擎(virtual database engine,VDBE),用來解釋字節(jié)代碼,以完成對數(shù)據(jù)庫的操作。(2)12、請簡述Android 移動開發(fā)與javaWeb 開發(fā)的異同。(P5)答:相似之處:j

22、ava Web開發(fā)中的用戶界面UI與Android中的用戶界面Activity是平行的;(1)java Web開發(fā)和Android都有UI設計;(1)Android開發(fā)是java開發(fā)的一個分支,Android類庫用了java中的部分常用類庫;(1)相異之處:二者的工程文件結(jié)構(gòu)有很大的差異;(1)就難易程度來說,Android開發(fā)比java Web開發(fā)要簡單容易很多;(1)13、請簡述Android 系統(tǒng)架構(gòu)(參見P14)答:Anndroid是基于Linux核的軟件平臺和操作系統(tǒng),采用了軟件堆棧架構(gòu),共分為四層:Linux核層、Anndroid函數(shù)庫與運行時層、應用程序框架層和應用程序?qū)印?2)

23、Linux核是硬件和其他軟件堆層之間的一個抽象隔離層,提供由操作系統(tǒng)核管理的底層基礎功能,主要有安全機制、存管理、進程管理、網(wǎng)絡協(xié)議棧和驅(qū)動程序等。Anndroid函數(shù)庫與運行時是第二層,位于Linux核之上,也稱中間件層。Anndroid運行時由核心庫和Dalvik虛擬機構(gòu)成。核心庫為開發(fā)人員提供了Android系統(tǒng)的特有函數(shù)功能和java語言的基本函數(shù)功能,Dalvik虛擬機采用適合存和處理器受限的專用格式。應用程序框架層提供了Android平臺的管理功能和組件的重用機制,包括Activity管理、資源管理、位置管理、通知消息管理、View系統(tǒng)和容提供者等。Android的三大核心功能如下:(1). View:提供了繪制圖形,處理觸摸、按鍵事件等功能;(2). ActivicyManagerService:簡稱為AMS,主要功能是管理所有應用程序的Activity、存管理等,AMS作為一種系統(tǒng)級服務管理所有Activity,當操作(啟動或停止)某個Activity時,必須報告給AMS,而不能“擅自處理”,在存不足時,AMS可能主動殺死后臺的Activity;(3). WindowManagerService:簡稱WMS,主要功能是為所有應用程序分配窗口并管這些窗口。應用程序

溫馨提示

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

評論

0/150

提交評論