Android程序設(shè)計(jì)練習(xí)卷答案_第1頁(yè)
Android程序設(shè)計(jì)練習(xí)卷答案_第2頁(yè)
Android程序設(shè)計(jì)練習(xí)卷答案_第3頁(yè)
Android程序設(shè)計(jì)練習(xí)卷答案_第4頁(yè)
Android程序設(shè)計(jì)練習(xí)卷答案_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1. 在android程序中,Log.d()用于輸出什么級(jí)別的日志信息?(A) A、 調(diào)試 B、信息 C、警告 D、錯(cuò)誤2.以下情況不會(huì)創(chuàng)建Context對(duì)象的是(C)A. 創(chuàng)建Application 對(duì)象時(shí)B.創(chuàng)建Service對(duì)象時(shí)C.創(chuàng)建ContentProvider對(duì)象時(shí)D.創(chuàng)建Activity對(duì)象時(shí)3.下列不屬于Android中廣播中的類別的是(D)A.Normal BroadcasB.Sticky BroadcastC.Local BroadcastD.Order broadcast4.以下哪個(gè)不是Intent的Activity啟動(dòng)方式(A)A.FLAG_ACTIVITY_BROU

2、GHT_TO_FIRSTB.FLAG_ACTIVITY_CLEAR_TOPC.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESETD.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS5.安卓AndroidManifest.xml文件的子節(jié)點(diǎn)不包括(C)A.applicationB.servicesC.permissionD.provider 6.下面那個(gè)不是Fragment的生命周期方法(D)A. onStart B. onAttach C. onDestoryView D. onRestart7.下面那種不是安卓原生支持的Menu(A)A.Selecte

3、d MenuB.Option MenuC.SubmenuD.Context Menu8.下面不屬于android的動(dòng)畫分類的有(D) A、Tween B、Frame C、Property D、Animation9.下列哪個(gè)不是安卓service自帶的方法(A)A. OnResumeB.onCreateC.onStartCommandD.onRebind10.下列屬于SAX解析xml文件的優(yōu)點(diǎn)的是(B) A、將整個(gè)文檔樹在內(nèi)存中,便于操作,支持刪除,修改,重新排列等多種功能B、不用事先調(diào)入整個(gè)文檔,占用資源少C、整個(gè)文檔調(diào)入內(nèi)存,浪費(fèi)時(shí)間和空間D、不是長(zhǎng)久駐留在內(nèi)存,數(shù)據(jù)不是持久的,事件過后,若

4、沒有保存數(shù)據(jù),數(shù)據(jù)就會(huì)消失11.下列關(guān)于Soundpool和MediaPlayer的說法,錯(cuò)誤的是(A)A.MediaPlayer支持多個(gè)音樂同時(shí)播放B.MediaPlayer資源占用率高C.MediaPlayer延遲時(shí)間較長(zhǎng)D.new MediaPlayer()后要調(diào)用prepare()方法才能播放12.關(guān)于res/raw目錄說法正確的是(A)A、這里的文件是原封不動(dòng)的存儲(chǔ)到設(shè)備上不會(huì)轉(zhuǎn)換為二進(jìn)制的格式B、這里的文件是原封不動(dòng)的存儲(chǔ)到設(shè)備上會(huì)轉(zhuǎn)換為二進(jìn)制的格式C、這里的文件最終以二進(jìn)制的格式存儲(chǔ)到指定的包中D、這里的文件最終不會(huì)以二進(jìn)制的格式存儲(chǔ)到指定的包中13.下面異常不屬于Runtime

5、 Exception 的是(D)A、ArithmeticExceptionB、IllegalArgumentExceptionC、NullPointerExceptionD、IOException14.以下方法那個(gè)不能實(shí)現(xiàn)不顯示android標(biāo)題欄(B)A.在Activity的Oncreate方法中寫,this.requestWindowFeature(Window.FEATURE_NO_TITLE);B.設(shè)置布局Layout上移一定單位dpC.在manifest設(shè)置Activity的節(jié)點(diǎn) android:theme=android:style/Theme.NoTitleBarD.在style

6、中定義 true 后在manifest中引用15.下列對(duì)android NDK的理解正確的是(D)A、 NDK是一系列工具的集合B、 NDK 提供了一份穩(wěn)定、功能有限的 API 頭文件聲明。C、 使 “Java+C” 的開發(fā)方式終于轉(zhuǎn)正,成為官方支持的開發(fā)方式D、 ABC都是16.以下關(guān)于安卓的國(guó)際化的說法正確的是(B)A.安卓國(guó)際化就是將app上架到各國(guó)的安卓應(yīng)用商店B.安卓國(guó)際化就是將安卓app相關(guān)顯示數(shù)據(jù)設(shè)置不同語(yǔ)言版本C.安卓國(guó)際化就是將安卓操作系統(tǒng)進(jìn)行定制D.安卓國(guó)際化就是將安卓app適配各國(guó)際品牌手機(jī)17.Android項(xiàng)目工程下面的assets目錄的作用是什么(B)A、放置應(yīng)用到

7、的圖片資源。B、主要放置多媒體等數(shù)據(jù)文件C、放置字符串,顏色,數(shù)組等常量數(shù)據(jù)D、放置一些與UI相應(yīng)的布局文件,都是xml文件18.下面關(guān)于Android dvm的進(jìn)程和Linux的進(jìn)程,應(yīng)用程序的進(jìn)程說法正確的是(D) A、 DVM指dalivk的虛擬機(jī).每一個(gè)Android應(yīng)用程序都在它自己的進(jìn)程中運(yùn)行,不一定擁有一個(gè)獨(dú)立的Dalvik虛擬機(jī)實(shí)例.而每一個(gè)DVM都是在Linux中的一個(gè)進(jìn)程,所以說可以認(rèn)為是同一個(gè)概念.B、DVM指dalivk的虛擬機(jī).每一個(gè)Android應(yīng)用程序都在它自己的進(jìn)程中運(yùn)行,不一定擁有一個(gè)獨(dú)立的Dalvik虛擬機(jī)實(shí)例.而每一個(gè)DVM不一定都是在Linux中的一個(gè)進(jìn)

8、程,所以說不是一個(gè)概念.C、DVM指dalivk的虛擬機(jī).每一個(gè)Android應(yīng)用程序都在它自己的進(jìn)程中運(yùn)行,都擁有一個(gè)獨(dú)立的Dalvik虛擬機(jī)實(shí)例.而每一個(gè)DVM不一定都是在Linux中的一個(gè)進(jìn)程,所以說不是一個(gè)概念.D、DVM指dalivk的虛擬機(jī).每一個(gè)Android應(yīng)用程序都在它自己的進(jìn)程中運(yùn)行,都擁有一個(gè)獨(dú)立的 Dalvik虛擬機(jī)實(shí)例.而每一個(gè)DVM都是在Linux中的一個(gè)進(jìn)程,所以說可以認(rèn)為是同一個(gè)概念.19. 在android中使用Menu時(shí)可能需要重寫的方法有(D)。 A、onCreateOptionsMenu() B、onCreateMenu() C、onOptionsIte

9、mSelected() D、A和C20.對(duì)一些資源以及狀態(tài)的操作保存,最好是保存在生命周期的哪個(gè)函數(shù)中進(jìn)行(D) A、onPause() B、onCreate() C、 onResume() D、onStart()21.android 中下列屬于Intent的作用的是(C) A、 實(shí)現(xiàn)應(yīng)用程序間的數(shù)據(jù)共享 B、是一段長(zhǎng)的生命周期,沒有用戶界面的程序,可以保持應(yīng)用在后臺(tái)運(yùn)行,而不會(huì)因?yàn)榍袚Q頁(yè)面而消失 C、可以實(shí)現(xiàn)界面間的切換,可以包含動(dòng)作和動(dòng)作數(shù)據(jù),連接四大組件的紐帶 D、處理一個(gè)應(yīng)用程序整體性的工作22.下面的對(duì)自定style的方式正確的是(A) A、 fill_parent B、 fill_

10、parent C、 fill_parent D、 fill_parent 23. android 關(guān)于service生命周期的onCreate()和onStart()說法正確的是(D) A、 當(dāng)?shù)谝淮螁?dòng)的時(shí)候先調(diào)用onStart()方法 B、當(dāng)?shù)谝淮螁?dòng)的時(shí)候只會(huì)調(diào)用onCreate()方法 C、如果service已經(jīng)啟動(dòng),將先后調(diào)用onCreate()和onStart()方法 D、如果service已經(jīng)啟動(dòng),只會(huì)執(zhí)行onStart()方法,不在執(zhí)行onCreate()方法24.下面退出Activity錯(cuò)誤的方法是(C) A、finish() B、拋異常強(qiáng)制退出 C、System.exit(

11、) D、onStop() 25.我們都知道Hanlder是線程與Activity通信的橋梁,如果線程處理不當(dāng),你的機(jī)器就會(huì)變得越慢,那么線程銷毀的方法是(A) A、 onDestroy() B、onClear() C、onFinish() D、onStop()26.下列關(guān)于Android的Asset目錄下的文件說法不正確的是(D)A.不能通過R文件直接訪問Asset目錄資源B.Asset目錄可以新建文件夾C.Asset目錄一般存放一些二進(jìn)制文件D.通過AssetManager提供的方法可以修改里面的文件27.以下對(duì)Activity的生命周期方法描述錯(cuò)誤的是(A)A. onResume階段,用戶

12、不能與Activity交互B. Onstop階段,原Activity 變得不可見 ,被下一個(gè)activity覆蓋了C. onDestory階段,這是activity被干掉前最后一個(gè)被調(diào)用方法D. onPause階段, 到這一步是可見但不可交互 的B、28.關(guān)于ContenValues類說法正確的是(A)A、他和Hashtable比較類似,也是負(fù)責(zé)存儲(chǔ)一些名值對(duì),但是他存儲(chǔ)的名值對(duì)當(dāng)中的名是String類型,而值都是基本類型B、他和Hashtable比較類似,也是負(fù)責(zé)存儲(chǔ)一些名值對(duì),但是他存儲(chǔ)的名值對(duì)當(dāng)中的名是任意類型,而值都是基本類型C、他和Hashtable比較類似,也是負(fù)責(zé)存儲(chǔ)一些名值對(duì),

13、但是他存儲(chǔ)的名值對(duì)當(dāng)中的名,可以為空,而值都是String類型D、他和Hashtable比較類似,也是負(fù)責(zé)存儲(chǔ)一些名值對(duì),但是他存儲(chǔ)的名值對(duì)當(dāng)中的名是String類型,而值也是String類型29.在android中使用SQLiteOpenHelper這個(gè)輔助類時(shí),可以生成一個(gè)數(shù)據(jù)庫(kù),并可以對(duì)數(shù)據(jù)庫(kù)版本進(jìn)行管理的方法可以是(B) A、getWriteDatabase()B、getReadableDatabase()C、getDatabase()D、getAbleDatabase()30.下面在AndroidManifest.xml文件中注冊(cè)BroadcastReceiver方式正確的(A) A

14、、 B、 android:name=vider.action.NewBroad/ C、 D、 android:name=vider.action.NewBroad/ 2 簡(jiǎn)答題1. 簡(jiǎn)述apk安裝卸載的原理。APK安裝可以通過以下四種方式:1. 系統(tǒng)應(yīng)用安裝,開機(jī)時(shí)完成系統(tǒng)應(yīng)用的檢查,沒安裝就安裝,安裝就跳過,無安裝界面。2. 網(wǎng)絡(luò)下載應(yīng)用安裝,通過market應(yīng)用完成,無安裝界面。3. ADB工具安裝,無安裝界面4. 通過SD卡來安裝apk,有安裝界面,由packageinstaller.apk應(yīng)用處理安裝及卸載過程的界面。應(yīng)用安裝涉及到如下幾個(gè)目

15、錄:system/app 系統(tǒng)自帶的應(yīng)用程序,無法刪除data/app 用戶程序安裝的目錄,有刪除權(quán)限data/data 存放應(yīng)用程序的數(shù)據(jù)Data/dalvik-cache 將apk中的dex文件安裝到dalvik-cache目錄下(dex文件是dalvik虛擬機(jī)的可執(zhí)行文件,其大小約為原始apk文件大小的四分之一)安裝過程:復(fù)制APK安裝包到data/app目錄下,解壓并掃描安裝包,把dex文件(Dalvik字節(jié)碼)保存到dalvik-cache目錄,并data/data目錄下創(chuàng)建對(duì)應(yīng)的應(yīng)用數(shù)據(jù)目錄。 卸載過程:刪除安裝過程中在上述三個(gè)目錄下創(chuàng)建的文件及目錄。2. 簡(jiǎn)述Android應(yīng)用程

16、序結(jié)構(gòu)是哪些? Android應(yīng)用程序結(jié)構(gòu)是: Linux Kernel(Linux內(nèi)核)、Libraries(系統(tǒng)運(yùn)行庫(kù)或者是c/c+核心庫(kù))、Application Framework(開發(fā)框架包)、Applications (核心應(yīng)用程序)3.安卓如何做屏幕適配?1)android有H、L、M、X、XX四個(gè)不同的文件夾存放不同分辨率的圖片,系統(tǒng)會(huì)自動(dòng)加載2) 偏移量d的設(shè)置可以在values-hpdi,values-mdpi,values-ldpi三種文件夾中的dimens.xml文件進(jìn)行設(shè)置4.如何將一個(gè)Activity設(shè)置成窗口的樣式。 在AndroidManifest.xml 中定

17、義Activity的地方一句話android:theme=android:style/Theme.Dialog或android:theme=android:style/Theme.Translucent就變成半透明的5.在多線程編程這塊,我們經(jīng)常要使用Handler,Thread和Runnable這三個(gè)類,請(qǐng)簡(jiǎn)述他們之間的關(guān)系。Android的CPU分配的最小單元是線程,Handler一般是在某個(gè)線程里創(chuàng)建的,因而Handler和Thread就是相互綁定的,一一對(duì)應(yīng)。而Runnable是一個(gè)接口,Thread是Runnable的子類。所以說,他倆都算一個(gè)進(jìn)程。HandlerThread顧名思義

18、就是可以處理消息循環(huán)的線程,他是一個(gè)擁有Looper的線程,可以處理消息循環(huán)。與其說Handler和一個(gè)線程綁定,不如說Handler是和Looper一一對(duì)應(yīng)的。最后需要說明的是,在UI線程(主線程)中: mHandler=new Handler();mHandler.post(new Runnable()void run()/執(zhí)行代碼.);這個(gè)線程其實(shí)是在UI線程之內(nèi)運(yùn)行的,并沒有新建線程。常見的新建線程的方法是:Thread thread = new Thread();thread.start();HandlerThread thread = newHandlerThread(string

19、);thread.start();6.AIDL的全稱是什么?如何工作?能處理哪些類型的數(shù)據(jù)?AIDL的英文全稱是Android Interface Define Language當(dāng)A進(jìn)程要去調(diào)用B進(jìn)程中的service時(shí),并實(shí)現(xiàn)通信,我們通常都是通過AIDL來操作的A工程:首先我們?cè)趎et.blogjava.mobile.aidlservice包中創(chuàng)建一個(gè)RemoteService.aidl文件,在里面我們自定義一個(gè)接口,含有方法get。ADT插件會(huì)在gen目錄下自動(dòng)生成一個(gè)RemoteService.java文件,該類中含有一個(gè)名為RemoteService.stub的內(nèi)部類,該內(nèi)部類中含有

20、aidl文件接口的get方法。說明一:aidl文件的位置不固定,可以任意然后定義自己的MyService類,在MyService類中自定義一個(gè)內(nèi)部類去繼承RemoteService.stub這個(gè)內(nèi)部類,實(shí)現(xiàn)get方法。在onBind方法中返回這個(gè)內(nèi)部類的對(duì)象,系統(tǒng)會(huì)自動(dòng)將這個(gè)對(duì)象封裝成IBinder對(duì)象,傳遞給他的調(diào)用者。其次需要在AndroidManifest.xml文件中配置MyService類,代碼如下: 為什么要指定調(diào)用AIDL服務(wù)的ID,就是要告訴外界MyService這個(gè)類能夠被別的進(jìn)程訪問,只要?jiǎng)e的進(jìn)程知道這個(gè)ID,正是有了這個(gè)ID,B工程才能找到A工程實(shí)現(xiàn)通信。說明:AIDL并

21、不需要權(quán)限B工程: 首先我們要將A工程中生成的RemoteService.java文件拷貝到B工程中,在bindService方法中綁定aidl服務(wù) 綁定AIDL服務(wù)就是將RemoteService的ID作為intent的action參數(shù)。 說明:如果我們單獨(dú)將RemoteService.aidl文件放在一個(gè)包里,那個(gè)在我們將gen目錄下的該包拷貝到B工程中。如果我們將RemoteService.aidl文件和我們的其他類存放在一起,那么我們?cè)贐工程中就要建立相應(yīng)的包,以保證RmoteService.java文件的報(bào)名正確,我們不能修改RemoteService.java文件 bindServ

22、ice(newInten(net.blogjava.mobile.aidlservice.RemoteService),serviceConnection, Context.BIND_AUTO_CREATE); ServiceConnection的onServiceConnected(ComponentName name, IBinderservice)方法中的service參數(shù)就是A工程中MyService類中繼承了RemoteService.stub類的內(nèi)部類的對(duì)象。三 程序分析題1.現(xiàn)在已經(jīng)在Activity的布局文件main.xml中創(chuàng)建了id為Progressbar1的進(jìn)度條,和id

23、為button1的按鈕,請(qǐng)寫出實(shí)現(xiàn)以下功能的代碼:1)在Activity頁(yè)面顯示這個(gè)按鈕和進(jìn)度條;2)點(diǎn)擊按鈕后,使用AsyncTask更新進(jìn)度條的進(jìn)度。import android.app.Activity; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.w

24、idget.ProgressBar; public class MyActivity extends Activity private ProgressBar mProgressBar = null; private Button myButton = null; /* Called when the activity is first created. */ Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.m

25、ain); mProgressBar = (ProgressBar)findViewById(R.id.Progressbar1); myButton = (Button)findViewById(R.id.button1); myButton.setOnClickListener(new BtnClickListener(); private class BtnClickListener implements OnClickListener public void onClick(View arg0) / TODO Auto-generated method stub new myAsync

26、().execute(); private class myAsync extends AsyncTask int duration = 0; int current = 0; Override protected Void doInBackground(Void. params) do Log.d(handleMessage,id:+Thread.currentThread().getId()+ name:+Thread.currentThread().getName(); current+=10; try publishProgress(current); /這里的參數(shù)類型是 AsyncT

27、ask中的Integer決定的,在onProgressUpdate中可以得到這個(gè)值去更新UI主線程,這里是異步線程 Thread.sleep(1000); if(mProgressBar.getProgress() = 100) break; catch (Exception e) while (mProgressBar.getProgress() = 100); return null; Override protected void onProgressUpdate(Integer. values) super.onProgressUpdate(values); System.out.println(values0); mProgressBar.setProgress(values0); Log.d(updateThre

溫馨提示

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

評(píng)論

0/150

提交評(píng)論