版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、安卓簡答+程序題1、請簡述Android ADT (參見23)答:ADT,是Android Development ToolKit 的縮寫,表示開發(fā)工具包,是Eclipse的一個(gè)插件,用于快速創(chuàng)建Android工程、用戶界面和基于Android API 的組件。(3)ADT可以在Eclipse中輸入其下載地址進(jìn)行安裝。在Eclipse中單獨(dú)安裝ADT插件的方法是使用菜單“HelpInstall New Software”。(1或2)在Eclipse的首選項(xiàng)中,只有安裝了ADT,才會出現(xiàn)做Android應(yīng)用開發(fā)的選項(xiàng)“Android”。(0或1)2、 請簡述Android SDK (參見23)答
2、:Android SDK( Software Development Kit),表示Android軟件開發(fā)包,是Android整體開發(fā)中所用到的工具包,提供了庫文件以及其他開發(fā)所用到的工具。如果在Eclipse中不關(guān)聯(lián)Android SDK,則無法開發(fā)Android應(yīng)用程序。(2)在Eclipse中使用Android SDK提供的工具可以進(jìn)行程序調(diào)試或?qū)?apk文件進(jìn)行簽名等。Android API是Android SDK的主體。(1)Android SDK目錄包含的子目錄中build-tools:包含了Android應(yīng)用的編譯工具;platforms:存放Android SDK Platfo
3、rms平臺相關(guān)的文件;add-ons:存放Android的擴(kuò)展庫;sources:存放Android API的源碼;platform-tools:存放平臺工具;tools:包含了用于操作SQLite數(shù)據(jù)庫的程序、模擬器管理程序、對Android應(yīng)用程序進(jìn)行調(diào)試和模擬服務(wù)的批處理程序等工具。(2)3、 請簡述Android AVD (參見29)答:AVD(android virtual device),表示Android虛擬設(shè)備即模擬器,是Android SDK提供的重要工具之一,用于在沒有物理設(shè)備的情況下,在計(jì)算機(jī)上對Android程序進(jìn)行開發(fā)、調(diào)試和仿真。(3)AVD可以通過Eclipse菜
4、單中WindowsAndroid AVD Managernew創(chuàng)建,通過Android AVD Managerstart啟動。(1)在Android應(yīng)用工程名的的快捷菜單中,選擇“Run AsAndroid Application”可將工程部署到AVD并運(yùn)行。(1)4、 請簡述“I18n"警告性錯(cuò)誤(35)答:I18n是國際化(Internationalization)的簡稱,國際化是指在設(shè)計(jì)軟件時(shí),將軟件與特定語言及地區(qū)脫鉤的過程。(2)“I18n"警告性錯(cuò)誤在程序的寫法不符合國際化做法的時(shí)候發(fā)生。(1)如文本框控件值的引用要通過引用字符串的變量的方法來實(shí)現(xiàn)(如<T
5、extView.android:text=”string/hello_world”/>)這是符合國際化的做法,如果不通過引用字符串的變量的方法,而直接用字符串常量代替(如<TextView.android:text=”字符串常量”/>)則不符合國際化做法,會導(dǎo)致“I18n"警告性錯(cuò)誤黃色的感嘆號。(2)5、 請簡述Activity 組件與視圖View (46、60)答:Activity是安卓最重要的組件,負(fù)責(zé)用戶界面的設(shè)計(jì),Activity用戶界面框架采用MVC模式(model view controller)。(1)控制器負(fù)責(zé)接受并響應(yīng)程序的外部動作 ;
6、通過視圖來反饋應(yīng)用程序給用戶的信息(通常是屏幕信息反饋);模型是應(yīng)用程序的核心,用于保存數(shù)據(jù)和代碼。(1)Android組件在清單文件中使用<activity>注冊。Activity組件通過Intent對象激活。(1)Activity作為用戶界面,提供了一些基本方法,如設(shè)置內(nèi)容視圖方法setContentView()、找控件方法findViewById()、關(guān)閉當(dāng)前窗口方法finish()等。(1)Activity的一些擴(kuò)展方法包括,用于數(shù)據(jù)共享存儲的getPreference()方法、用于動態(tài)加載頁面布局的getLayoutInflater()方法,開始后臺服務(wù)的startSer
7、vice()方法、發(fā)送廣播的sendBroadcast()方法、獲得程序間數(shù)據(jù)共享的內(nèi)容解析器的getContentResolver()方法等。(1)每個(gè)Activity除了有創(chuàng)建onCreat()、銷毀onDestroy()兩個(gè)基本方法外,還有停止onStop()、激活onStart()、暫停onPause()、恢復(fù)onResume()等方法。(1)Activity在其生命周期有三種狀態(tài):運(yùn)行態(tài)、暫停態(tài)和停止態(tài)。運(yùn)行態(tài)是指Activity出現(xiàn)在屏幕的最上層的狀態(tài),此時(shí)用戶通??梢垣@取焦點(diǎn);暫停態(tài)是指Activity調(diào)用onPause()方法后出現(xiàn)的狀態(tài),其上還有處于運(yùn)行態(tài)的Activity存
8、在,并且Activity沒有被完全遮住,即處于暫停態(tài)的Activity有一部分視圖被用戶所見;停止態(tài)是指當(dāng)前Activity調(diào)用onStop()方法后出現(xiàn)的狀態(tài),此時(shí)它完全被處于運(yùn)行態(tài)的Activity遮擋住,即用戶界面完全不被用戶所見。6、 請簡述Service 組件(46/171) (簡不了啊媽媽) 答:Service服務(wù)類組件是Android提供的無用戶界面、長時(shí)間在后臺運(yùn)行的組件。Android組件在清單文件中使用<service>注冊。Service 組件通過Intent對象激活。Service有利于降低系統(tǒng)資源的開銷,而且比Activity有更高的優(yōu)先級。Service
9、服務(wù)的調(diào)用分為顯式啟動和隱式啟動。顯式啟動是指在創(chuàng)建Intent對象時(shí),指明Service所在的類,并調(diào)用方法startService(Intent)啟動Service。隱式啟動是指在注冊Service的同時(shí),內(nèi)嵌標(biāo)簽<Intent-filter>及<action>,<action>標(biāo)簽的android:name屬性指定了引用該服務(wù)的名稱。隱式啟動的好處是不需要指明需要啟動哪一個(gè)Activity,而由Android系統(tǒng)根據(jù)Intent的動作和數(shù)據(jù)來決定,這樣有利于降低Android組件之間的耦合度,強(qiáng)調(diào)Android組件的可復(fù)用性。若Service與調(diào)用它的
10、組件在同一個(gè)應(yīng)用程序中,則既可以使用顯式啟動,也可以使用隱式啟動(顯式啟動代碼簡潔);若服務(wù)和調(diào)用服務(wù)的組件在不同的應(yīng)用程序中,則服務(wù)只能用隱式啟動方式。Service有startService()的非綁定啟動方式和bindService()的綁定啟動方式兩種。Service的兩種啟動方式:1、 采用start開啟服務(wù)使用Service的步驟:(1).定義一個(gè)類繼承Service(2).在Manifest.xml文件中配置該Service(3).使用Context的startService(Intent)方法啟動該Service(4).不再使用時(shí),調(diào)用stopService(Intent)方法
11、停止該服務(wù)使用這種start方式啟動的Service的生命周期如下: onCreate()->onStartCommand()(onStart()方法已過時(shí))-> onDestory()說明:如果服務(wù)已經(jīng)開啟,不會重復(fù)的執(zhí)行onCreate(), 而是會調(diào)用onStart()和onStartCommand()。服務(wù)停止的時(shí)候調(diào)用 onDestory()。服務(wù)只會被停止一次。特點(diǎn):一旦服務(wù)開啟跟調(diào)用者(開啟者)就沒有任何關(guān)系了。開啟者退出了,開啟者掛了,服務(wù)還在后臺長期的運(yùn)行。開啟者不能調(diào)用服務(wù)里面的方法。二、采用bind的方式開啟服務(wù)使用Service的步驟:(1).定義一個(gè)類繼承
12、Service(2).在Manifest.xml文件中配置該Service(3).使用Context的bindService(Intent, ServiceConnection, int)方法啟動該Service(4).不再使用時(shí),調(diào)用unbindService(ServiceConnection)方法停止該服務(wù)使用這種bind方式啟動的Service的生命周期如下:onCreate() ->onBind()->onunbind()->onDestory()注意:綁定服務(wù)不會調(diào)用onstart()或者onstartcommand()方法特點(diǎn):bind的方式開啟服務(wù),綁定服務(wù),
13、調(diào)用者掛了,服務(wù)也會跟著掛掉。綁定者可以調(diào)用服務(wù)里面的方法。服務(wù)的整個(gè)生命周期從調(diào)用 onCreate() 開始起,到 onDestroy() 返回時(shí)結(jié)束。與 Activity 類似,服務(wù)也在 onCreate() 中完成初始設(shè)置,并在 onDestroy() 中釋放所有剩余資源。無論服務(wù)是通過 startService() 還是 bindService() 創(chuàng)建,都會為所有服務(wù)調(diào)用 onCreate() 和 onDestroy() 方法。服務(wù)的有效生命周期從調(diào)用 onStartCommand() 或 onBind() 方法開始。每種方法均有 Intent 對象,該對象分別傳遞到 startS
14、ervice() 或 bindService()。對于啟動服務(wù),有效生命周期與整個(gè)生命周期同時(shí)結(jié)束(即便是在 onStartCommand() 返回之后,服務(wù)仍然處于活動狀態(tài))。對于綁定服務(wù),有效生命周期在 onUnbind() 返回時(shí)結(jié)束。啟動服務(wù)該服務(wù)在其他組件調(diào)用 startService() 時(shí)創(chuàng)建,然后無限期運(yùn)行,且必須通過調(diào)用 stopSelf() 來自行停止運(yùn)行。此外,其他組件也可以通過調(diào)用 stopService() 來停止服務(wù)。服務(wù)停止后,系統(tǒng)會將其銷毀。綁定服務(wù)該服務(wù)在另一個(gè)組件(客戶端)調(diào)用 bindService() 時(shí)創(chuàng)建。然后,客戶端通過 IBinder 接口與服務(wù)
15、進(jìn)行通信??蛻舳丝梢酝ㄟ^調(diào)用 unbindService() 關(guān)閉連接。多個(gè)客戶端可以綁定到相同服務(wù),而且當(dāng)所有綁定全部取消后,系統(tǒng)即會銷毀該服務(wù)。 (服務(wù)不必自行停止運(yùn)行)7、 請簡述BroadcastReceiver 組件(46、191)答:BroadcastReceiver,即廣播接收者,用來接收來自系統(tǒng)或其它應(yīng)用程序的廣播,并作出回應(yīng)。廣播接收者組件沒有UI界面。(2)在Android應(yīng)用中,廣播接收者類使用標(biāo)簽<receiver>在清單文件中注冊,為靜態(tài)注冊方式,只能具有相應(yīng)權(quán)限的廣播接收者才能接收廣播、獲取Intent對象中的數(shù)據(jù)。動態(tài)注冊是在程序中通過使用Contex
16、t類提供的方法registerReceiver()完成的。(2)創(chuàng)建廣播接收者的方法有兩種,一是標(biāo)準(zhǔn)的類繼承方法,二是通過向?qū)?chuàng)建廣播接收者。(1)BroadcastReceiver 組件通過Intent對象激活。一個(gè)BroadcastReceiver的生命周期從調(diào)用onReceiver(Context,Intent)方法開始,到該方法返回結(jié)束。(1)8、請簡述ContentProvider 組件(46、251)答:ContentProvider(內(nèi)容提供者)是Android系統(tǒng)中不同應(yīng)用程序之間共享數(shù)據(jù)的接口,用于保存和檢索數(shù)據(jù)。使用ContentProvider訪問某個(gè)應(yīng)用程序的數(shù)據(jù),不必
17、關(guān)心其數(shù)據(jù)的存儲方式,其他應(yīng)用程序可以通過一個(gè)ContentProvider類型的對象來操作某個(gè)程序的數(shù)據(jù)。(2)Android應(yīng)用開發(fā)者將自己的持久化數(shù)據(jù)公開給其他應(yīng)用程序有兩種方法:一是定義自己的ContentProvider子類,在清單文件里使用<provider>標(biāo)簽注冊,并實(shí)現(xiàn)CRUD(增加(Create)、讀取查詢(Retrieve)、更新(Update)和刪除(Delete);二是將當(dāng)前應(yīng)用程序的數(shù)據(jù)添加到已有的ContentProvider中。(2)組件ContentProvider的四個(gè)CRUD方法的第一方法參數(shù)均為Uri類型。創(chuàng)建ContentProvider子
18、類時(shí),<provider>標(biāo)簽中name為必填屬性,表示ContentProvider子類的名稱;authorities也是必填屬性,表示其他應(yīng)用程序訪問該ContentProvider時(shí)的路徑;permission是任選屬性,用于對本應(yīng)用提供的數(shù)據(jù)訪問的限定,省略permission屬性時(shí),表示任何應(yīng)用都可以訪問本應(yīng)用提供的數(shù)據(jù)。(1)9、請簡述意圖對象intent (47)答:Intent,意圖、打算,用于對某個(gè)操作的抽象描述,包括動作名稱、操作數(shù)據(jù)以及附加數(shù)據(jù)的描述。在Android中,通過Intent對象實(shí)現(xiàn)組件之間相互調(diào)用的相關(guān)信息。意圖類Intent在Android程序
19、設(shè)計(jì)中起紐帶作用,負(fù)責(zé)傳遞信息和數(shù)據(jù)。(1)Android組件調(diào)用時(shí),Intent除了封裝意圖名稱,還封裝了一些方法,主要包括構(gòu)造方法、存放附加數(shù)據(jù)方法、獲取數(shù)據(jù)方法和設(shè)置屬性方法等。(1)Intent顯式調(diào)用是通過使用顯式意圖明確要激活的組件,其方法是通過Intent提供的方法setClass()、setClassName()或setComponent()來指定的。(1)Intent隱式調(diào)用需要在清單文件中使用標(biāo)簽<intent-filter>(意圖過濾器)來指定動作名稱。(1)隱式意圖就是在意圖激活A(yù)ctivity、Service或BroadcastReceiver這三類組件時(shí)
20、,不需要顯式指出組件的名稱,而是指定action及category,Android系統(tǒng)會根據(jù)其特征找到相應(yīng)的組件并激活。延其意圖類PendingIntent一般用在Notification上,可以理解為延期執(zhí)行的Intent,是對Intent的一個(gè)包裝。(1)10、請簡述AIDL(185)答:AIDL(android interface definition language)是Android自定義的接口描述語言,可以簡化進(jìn)程間數(shù)據(jù)格式轉(zhuǎn)換和數(shù)據(jù)交換的代碼,通過定義Service內(nèi)部的共有方法,允許在不同進(jìn)程的調(diào)用者和Service之間相互傳遞數(shù)據(jù)。(2)AIDL允許定義函數(shù)參數(shù)的傳遞方向,有
21、三種方向:標(biāo)識為in的參數(shù)將從調(diào)用者傳遞到遠(yuǎn)程服務(wù)中,標(biāo)識為out的參數(shù)將從遠(yuǎn)程服務(wù)傳遞到調(diào)用者中,標(biāo)識為inout的參數(shù)先從調(diào)用者傳遞到遠(yuǎn)程服務(wù)中,再從遠(yuǎn)程服務(wù)返回到調(diào)用者。(2)使用AIDL跨進(jìn)程調(diào)用(遠(yuǎn)程服務(wù))的服務(wù)器端開發(fā),其主要步驟如下:(1) .創(chuàng)建接口描述文件;(2) .建立一個(gè)服務(wù)類(service的子類)并實(shí)現(xiàn)接口;(3) .在Service的綁定方法onBind(Intent)里返回實(shí)現(xiàn)了接口的實(shí)例對象;(4) .在清單文件中注冊AIDL對應(yīng)的服務(wù)。使用AIDL跨進(jìn)程調(diào)用(遠(yuǎn)程服務(wù))的客戶端開發(fā),其主要步驟如下:(1) .創(chuàng)建與服務(wù)器端相同的接口描述文件;(2) .在主Ac
22、tivity中,定義遠(yuǎn)程服務(wù)連接對象,在其內(nèi)創(chuàng)建遠(yuǎn)程服務(wù)對象;(3) .在主Activity中使用綁定方式調(diào)用遠(yuǎn)程服務(wù),通過遠(yuǎn)程服務(wù)對象調(diào)用遠(yuǎn)程服務(wù)里的方法。(2)11、請簡述SQLite 數(shù)據(jù)庫的特點(diǎn)(218)答:SQLite數(shù)據(jù)庫適合于嵌入式系統(tǒng),占用資源少、運(yùn)行高效、可移植性好、并且提供了零配置的運(yùn)行模式,是Android手機(jī)自帶(即內(nèi)置)的輕量級數(shù)據(jù)庫軟件,提供了對數(shù)據(jù)庫的增刪改查等操作。(3)SQLite數(shù)據(jù)庫體系結(jié)構(gòu)中最核心的部分是虛擬機(jī),也稱虛擬數(shù)據(jù)庫引擎(virtual database engine,VDBE),用來解釋字節(jié)代碼,以完成對數(shù)據(jù)庫的操作。(2)12、請簡述And
23、roid 移動開發(fā)與javaWeb 開發(fā)的異同。(P5)答:相似之處:java Web開發(fā)中的用戶界面UI與Android中的用戶界面Activity是平行的;(1)java Web網(wǎng)站開發(fā)和Android都有UI設(shè)計(jì);(1)Android開發(fā)是java開發(fā)的一個(gè)分支,Android類庫用了java中的部分常用類庫;(1)相異之處:二者的工程文件結(jié)構(gòu)有很大的差異;(1)就難易程度來說,Android開發(fā)比java Web開發(fā)要簡單容易很多;(1)13、請簡述Android 系統(tǒng)架構(gòu)(參見P14)答:Anndroid是基于Linux內(nèi)核的軟件平臺和操作系統(tǒng),采用了軟件堆棧架構(gòu),共分為四層:Lin
24、ux內(nèi)核層、Anndroid函數(shù)庫及運(yùn)行時(shí)層、應(yīng)用程序框架層和應(yīng)用程序?qū)印?2)Linux內(nèi)核是硬件和其他軟件堆層之間的一個(gè)抽象隔離層,提供由操作系統(tǒng)內(nèi)核管理的底層基礎(chǔ)功能,主要有安全機(jī)制、內(nèi)存管理、進(jìn)程管理、網(wǎng)絡(luò)協(xié)議棧和驅(qū)動程序等。Anndroid函數(shù)庫及運(yùn)行時(shí)是第二層,位于Linux內(nèi)核之上,也稱中間件層。Anndroid運(yùn)行時(shí)由核心庫和Dalvik虛擬機(jī)構(gòu)成。核心庫為開發(fā)人員提供了Android系統(tǒng)的特有函數(shù)功能和java語言的基本函數(shù)功能,Dalvik虛擬機(jī)采用適合內(nèi)存和處理器受限的專用格式。應(yīng)用程序框架層提供了Android平臺的管理功能和組件的重用機(jī)制,包括Activity管理、資
25、源管理、位置管理、通知消息管理、View系統(tǒng)和內(nèi)容提供者等。Android的三大核心功能如下:(1). View:提供了繪制圖形,處理觸摸、按鍵事件等功能;(2). ActivicyManagerService:簡稱為AMS,主要功能是管理所有應(yīng)用程序的Activity、內(nèi)存管理等,AMS作為一種系統(tǒng)級服務(wù)管理所有Activity,當(dāng)操作(啟動或停止)某個(gè)Activity時(shí),必須報(bào)告給AMS,而不能“擅自處理”,在內(nèi)存不足時(shí),AMS可能主動殺死后臺的Activity;(3). WindowManagerService:簡稱WMS,主要功能是為所有應(yīng)用程序分配窗口并管這些窗口。應(yīng)用程序?qū)犹峁┝艘幌盗泻诵膽?yīng)用程序,如打電話
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年綜合商業(yè)體售樓處動態(tài)沙盤供應(yīng)協(xié)議版B版
- 2024年門店裝修工程承包合同樣本版B版
- 2024院內(nèi)醫(yī)療廢物焚燒處理設(shè)施改造合同3篇
- 2024年版藥材種子種苗銷售合同3篇
- 2022年運(yùn)城學(xué)院公共課《C語言》科目期末試卷A(有答案)
- 2025年度瓷磚生產(chǎn)節(jié)能減排合同2篇
- 2025年度彩板房租賃與安裝合同范本3篇
- 2024版居家育兒服務(wù)協(xié)議范本:育兒嫂條款一
- 河套學(xué)院《國際投資與信貸》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年度生態(tài)保護(hù)區(qū)拆遷補(bǔ)償及生態(tài)補(bǔ)償協(xié)議范本3篇
- 多旋翼無人機(jī)駕駛員執(zhí)照(CAAC)備考試題庫大全-下部分
- 水務(wù)集團(tuán)定崗定員方案范文
- 2024年青海一級健康管理師高頻核心題庫300題(含答案詳解)
- 實(shí)際控制人與法人協(xié)議模板
- 期末核心素養(yǎng)測評卷2023-2024學(xué)年語文五年級上冊+統(tǒng)編版
- 上海八年級數(shù)學(xué)上期末幾何提優(yōu)題目集錦
- DB32T3494-2019灌漿復(fù)合瀝青路面施工技術(shù)規(guī)范
- 2024年石油石化技能考試-石油鉆井工筆試參考題庫含答案
- DLT 5175-2021 火力發(fā)電廠熱工開關(guān)量和模擬量控制系統(tǒng)設(shè)計(jì)規(guī)程-PDF解密
- 110kV變電站及110kV輸電線路運(yùn)維投標(biāo)技術(shù)方案(第一部分)
- 福建省泉州市晉江市2023屆九年級上學(xué)期期末考試數(shù)學(xué)試卷(含答案)
評論
0/150
提交評論