自己總結的安卓基礎最全題庫,期末成績99分。廢話不多說,直接上題庫。
每章總結(老師給的課件后面的習題,重點看!!!填空題答案在題后面):
第一部分 Android 概述
單選題
Android安裝包文件簡稱APK,其后綴名是(A)
A、 apk
B、 exe
C、 txt
D、 app
Android 工程中存放各種程序資源的目錄是(C)
A、 src
B、 gen
C、 res
D、 bin
Android項目中的布局文件放在哪個目錄下(A)
A、 res/layout
B、 res/value
C、 assets
D、 res/drawable
在創建Android工程時,填寫的Minimum Required SDK是(B)
A、 匹配的目標版本
B、 程序最低兼容的版本
C、 使用哪個SDK版本編譯程序
D、 SDK的主題
在下列選項中,關於Android工程中的assets目錄的說法正確的是(B)
A、 存放使用到的圖片資源
B、 主要存放一些文件資源,這些文件會被原封不動的打包到APK文件中
C、 存放字符串、顏色、數組等常量數據
D、 存放與UI相應的布局文件
判斷題
Android 工程中gen目錄是自動生成的,主要有一個R.java文件,該文件可手動修改 (×)
Linux內核層為Android設備的各種硬件提供了底層的驅動,如顯示驅動、音頻驅動等 (√)
Android操作系統並不是開源的 (×)
Android系統是基於Linux平台開發的 (√)
創建程序時,填寫的Package Name表示項目名稱 (×)
Android 工程中AndroidManifest.xml文件是整個程序的配置文件 (√)
SDKManager.exe是Android SDK的管理器,雙擊它可以看到所有可下載的Android SDK版本 (√)
Android是Google公司基於Linux平台開發的手機及平板電腦操作系統 (√)
Android系統采用分層架構,由高到低分為4層,依次是應用程序層、應用程序框架層、核心類庫和Linux內核 (√)
填空題
創建程序時,填寫的Application Name表示 _______應用名稱
在Android項目程序開發完成后中,必須_____ _____正式的Android安裝文件,才能發布到互聯網上讓用戶下載使用。打包成
Android 工程中src目錄下存放____ ____文件 所有Java代碼
第二部分 Android UI開發初階
單選題
下列表示Toast較長時間顯示的是(A)。
A、 Toast.LENGTH_LONG
B、 Toast.LONG
C、 Toast.LENGTH_SHORT
D、 Toast.SHORT
在相對布局文件中,把控件顯示在另外一個控件的右側使用的屬性是(A)
A、 layout_toRightOf
B、 layout_toLeftOf
C、 layout_toStartOf
D、 layout_toEndOf
在幀布局中的子控件默認是()對齊的。(B)
A、 右上角
B、 左上角
C、 左下角
D、 右下角
Android相對布局中,使控件相對父控件底部對齊使用的屬性是(A)。
A、 android:layout_alignParentBottom
B、 android:layout_alignBottom
C、 android:layout_alignBaseline
D、 android:layout_alignParentTop
在下列選項中,用於給Activity指定主題的屬性是(C)
A、 icon
B、 label
C、 theme
D、 style
Android UI開發中,如果TableLayout的第一個TableRow有兩個控件,第二個TableRow有三個控件,那這個TableLayout就有(C)列。
A、1
B、2
C、3
D、4
在下列選項中,用於給控件指定主題的屬性是(C)
A、 icon
B、 label
C、 theme
D、 style
絕對布局的標簽名稱是(D)
A、 FrameLayout
B、 LinearLayout
C、 RelativeLayout
D、 AbsoluteLayout
在相對布局文件中,把控件與另外一個控件的下邊使用的屬性是(C)
A、 layout_above
B、 padding
C、 layout_below
D、 layout_margin
在下列選項中,設置GridLayout中的某控件占3行的是(B)
A、 android:rowSpan=“3”
B、 android:layout_rowSpan=“3”
C、 android:layout_columnSpan=“3”
D、 android:layout_column=“3”
Android UI開發中,設置Activity的()屬性可以使Activity顯示為對話框樣式。(A)
A、 android:theme="@android:style/Theme.Dialog"
B、 android:style="@android:style/Theme.Dialog"
C、 android:theme="@android:theme/Theme.Dialog"
D、 android:style="@android:theme/Theme.Dialog"
Android UI開發中,設置線性布局為垂直顯示需修改的屬性的(A)
A、 android:orientation=“vertical”
B、 android:orientation=“horizontal”
C、 android:layout_centerHorizontal=“true”
D、 android:layout_centerVertical=“true”
Android UI開發中,如何設置GridLayout列數為4(A)。
A、 android:columnCount=“4”
B、 android:layout_columnCount=“4”
C、 android:column=“4”
D、 android:stretchColumns=“4”
在Android UI開發中,常見的刮刮卡是通過()實現的。(A)
A、 FrameLayout
B、 LinearLayout
C、 RelativeLayout
D、 TableLayout
樣式文件是在()目錄下創建的。(D)
A、 colors
B、 dimens
C、 strings
D、 styles
在網格布局中,設置列數的屬性是(B)
A、 column
B、 columnCount
C、 layout_columnCount
D、 stretchColumns
在下列選項中,設置線性布局方向的屬性是(A)
A、 orientation
B、 gravity
C、 layout_gravity
D、 padding
在布局文件中,給Button指定單擊事件響應方法的屬性是(A)
A、 onClick
B、 hint
C、 enabled
D、 focusable
Android相對布局中,要使A控件在B控件的下方,A控件需添加的屬性是(C)
A、 android:layout_above
B、 android:layout_alignBaseline
C、 android:layout_below
D、 android:layout_alignBottom
Android UI開發中,TableLayout的stretchColumns屬性表示(D)
A、 TableLayout的列數
B、 TableLayout的行數
C、 TableLayout最多能加入的列數
D、 拉伸指定列填充滿TableLayout
在下列選項中,關於TableRow標簽的說法正確的是(C)
A、 在GridView里面表示一行
B、 是五種布局的一種
C、 是表格布局里面表示一行的標簽
D、 在listView里面表示一行
在線性布局文件中,把方向設置為水平方的屬性是(B)
A、 vertical
B、 horizontal
C、 fill_vertical
D、 fill_horizontal
放入絕對布局中的控件需要通過___ ___兩個屬性指定其准確的坐標值(D)
A、 android:width和android:height
B、 android:layout_width和android:layout_height
C、 android:x和android:y
D、 android:layout_x和android:layout_y
Android UI開發中,在GridLayout中如何設置某控件占3行(B)
A、 android:layout_columnSpan=“3”
B、 android:layout_rowSpan=“3”
C、 android:rowSpan=“3”
D、 android:layout_column=“3”
在下列選項中,表示Toast較短時間顯示信息的是(C)。
A、 Toast.LENGTH_LONG
B、 Toast.LONG
C、 Toast.LENGTH_SHORT
D、 Toast.SHORT
判斷題
在Android UI開發中,通常情況下使用主題定義一個界面或者整個軟件界面的風格,使用樣式定義控件的風格。(√)
Android UI開發中,線性布局默認為水平顯示。 (√)
在Activity代碼中同樣也可以引用自定義主題,只需要在Activity類onCreate()方法內添加setTheme()方法即可。(√)
Android中的網格布局使用GridLayout控件表示(√)。
Toast.makeText(context,text,time)必須在調用了show()方法后才能把信息顯示出來。(√)
Android UI開發中,如果一個應用中使用了主題,同時應用下的View也使用了樣式,那么當主題和樣式中的屬性發生沖突時,主題的優先級高於樣式。(×)
Android UI開發中,文本框可以在界面上顯示文字,通常作為提示信息展示。(√)
當用@string/xxx方式引用一個文本資源時,Android系統會首先判斷手機設置的語言和地區,然后通過這些信息去對應values目錄下strings.xml文件,引用其中的內容。(√)
幀布局在界面上是一幀一幀顯示的。 (√)
國際化Internationalization這個單詞的首字母“I”和尾字母“N”之間有18個字符,因此國際化被簡稱為I18N。(√)
Android 代碼中加入Toast.makeText(Context,Text,Time);即可顯示Toast。(×)
Android UI開發中,相對布局通常有兩種形式,一種是相對於容器而言的,一種是相對於控件而言的。(√)
樣式中的標簽是用來聲明屬性值的。 (×)
TextView控件通常用於在界面上顯示文字信息。(×)
理論上絕對布局可以完成任何的布局設計,且靈活性很大,所以開發中推薦使用絕對布局。(×)
TableLayout可以將視圖按照行、列進行排列。 (×)
相對布局中的控件都是按照相對位置擺放的。 (√)
絕對布局靈活性很大, 可以完成任何的布局設計,所以開發中推薦使用絕對布局。(×)
在線性布局文件中,如果把方向設置為水平方向,控件會擺放在同一行。(√)
填空題
_ ________控件可以輸入文字,且可以通過inputType屬性控制輸入的內容只能是數字或者字母等。EditText
當主題和樣式中的屬性發生沖突時,主題的優先級要____ ____樣式。低於
Android UI開發中,網格布局是________新增的布局,它實現了控件的交錯顯示,能夠避免因布局嵌套對設備性能的影響,更利於自由布局的開發。_Android 4.0
Android開發中,想讓軟件支持簡體中文、美式英語兩種環境,需要在res目錄下新建兩個values文件夾,分別命名為________。_values-zh-rCN、values-en-rUS
Android UI開發中,線性布局主要有兩種形式,一種是水平線性布局,一種是 _____垂直線性布局
___ ____是Android布局中最簡單的一種,為每個加入其中的控件創建一個空白區域(稱為一幀,每個控件占據一幀)_幀布局
Android UI開發中,TableLayout的行數由______對象控制的__TableRow_
________是應用到整個Activity和Application的樣式。_Theme _
在Android系統中,線性布局使用__________控件表示。_
Android系統中,___ _____用於定義布局顯示在界面上的風格樣式和主題
Toast.makeText(Context,Text,Time)中的“Time”表示顯示時長,該屬性有特定的值,Toast.LENGTH_LONG表示較長時間顯示,____ _____表示較短時間顯示Toast.LENGTH_SHORT
主題與樣式在代碼結構上是一樣的,不同之處在於主題的引用要在___ _文件中引用。AndroidManifest.xml
Android有自己的國際化規范和方法,布局中所有文字資源只有通過_____ _方式引用才能起到效果R.string.<string_name>
在清單文件中,標簽中的andorid:theme屬性,代表的是___ ____主題的樣式,而標簽中是改變______主題的樣式Application、Activity
Android系統中,___ _____用於定義控件的風格_style
在Activity代碼中同樣也可以引用自定義主題,只需要在Activity類onCreate()方法內添加_________方法即可。setTheme()
______需要通過指定x、y坐標來控制每一個組件的位置,放入該布局的組件需要通過android:layout_x和android:layout_y兩個屬性指定其准確的坐標值,並顯示在屏幕上。絕對布局
Toast.makeText(context,text,time)中的text是___ ______顯示文本消息
在___ _____控件中可以輸入文字,並且可以通過inputType屬性控制輸入的內容只能是數字或者字母等。_EditText
網格布局的標簽是____ _ GridLayout______
相對布局的標簽是__RelativeLayout_________
幀布局的標簽是 FrameLayout_______
國際化Internationalization這個單詞的首字母“I”和尾字母“N”之間有18個字符,因此國際化被簡稱為___ __ I18N__
表格布局的標簽是___ ____ TableLayout__
第03章 Activity
單選題
在下列選項中,設置ProgressBar的最大進度的方法是(A)
A、 setMax()
B、 setProgress()
C、 setCurrentProgress ()
D、 setTotalProgress()
Android使用()的方式來管理Activity的實例(A)
A、 任務棧
B、 任務堆
C、 隊列
D、 任務列
下面代碼采用的是()啟動Activity(C)
Intent intent = new Intent();
intent.setAction(“cn.itscast.xxx”);
startActivity(intent);
A、 顯示意圖
B、 顯式意圖
C、 隱式意圖
D、 隱示意圖
onActivityResult()方法有三個參數,其中()表示在返回數據時傳入結果碼(B)
A、 requestCode
B、 resultCode
C、 data
D、 result
在startActivityForResult方法表示請求碼的參數是(A)
A、 requestCode
B、 resultCode
C、 data
D、 intent
Android中Intent傳遞類對象時,該類對象需實現()或Parcelable接口(D)
A、 Copyings接口
B、 Copying接口
C、 Serializables接口
D、 Serializable接口
多個RadioButton要實現單選,需要包裹在哪一個控件里(C)
A、 RatingBar
B、 RatingBars
C、 RadioGroup
D、 RadioGroups
在下列選項中,用來設置Activity的啟動模式的屬性是(B)
A、 android:launch
B、 android:launchMode
C、 android:launchMethod
D、 android:launchProperty
()啟動模式與standard類似,不同的是,當啟動的Activity已經位於棧頂時,則直接使用它不創建新的實例(B)
A、 singleTask
B、 singleTop
C、 singleTask和 singleTop
D、 singleInstance
Activity在()狀態時處於屏幕最前端,它是可見、有焦點的,可以與用戶進行交互?(B)
A、 啟動狀態
B、 運行狀態
C、 暫停狀態
D、 停止狀態
啟動系統相機使用的action是(A)
A、 android.media.action.IMAGE_CAPTURE
B、 android.media.action. IMAGES_CAPTURE
C、 android.media.action. VIDEO_CAPTURE
D、 android.media.action.VIDEOS_CAPTURE
下列不是onActivityResult()方法參數的是(D)
A、 requestCode
B、 resultCode
C、 data
D、 result
沒有明確指定組件名的Intent稱為(C)
A、 顯示意圖
B、 顯式意圖
C、 隱式意圖
D、 隱示意圖
( )啟動模式是指,每次啟動該Activity時,系統會這個Activity的實例作為一個任務壓入任務棧的棧頂,每次銷毀一個Activity時,系統會從任務棧中把這個Activity實例對應的任務移除。(C)
A、singleTask
B、singleTop
C、standard
D、singleInstance
當Activity的啟動模式指定為(),每次啟動該Activity時,系統首先會檢查棧中是否存在該活動的實例,如果發現已經存在則直接使用該實例,並將當前Activity之上的所有Activity出棧,如果沒有發現則創建一個新的實例(A),
A、 singleTask
B、 singleTop
C、 standard
D、 singleInstance
Android采用()的方式來管理Activity的實例(A)
A、 任務棧
B、 任務堆
C、 隊列
D、 任務列
在下列選項中,不能使用Intent傳遞的數據類型是(B)
A、 把大基本數據類型及其數組
B、 Map
C、 Parcelable
D、 Serializable
在下列選項中,用來設置Activity的啟動模式的屬性是(B)
A、 android:launch
B、 android:launchMode
C、 android:launchMethod
D、 android:launchProperty
在下列選項中,關於onActivityResult方法中的參數描述錯誤的是(D)
A、 requestCode,表示在啟動Activity時傳遞的請求碼
B、 resultCode,表示在返回數據時傳入結果碼
C、 data,表示攜帶返回數據的Intent
D、 data,表示啟動Activity時傳遞的Intent
下列能打開系統相機的方法是(C)
A、 顯示意圖
B、 顯式意圖
C、 隱式意圖
D、 隱示意圖
Activity銷毀時執行執行方法是(D)
A、 onStart()
B、 onResume()
C、 onPause()
D、 onDestroy()
下列選項中不能通過Intent傳遞的是(C)
A、“數據”
B、2
C、 對象obj
D、實現Serializable接口的對象obj
Activity在()狀態是對用戶來說仍然可見,但它無法獲取焦點,用戶對它操作沒有響應。(C)
A、 啟動狀態
B、 運行狀態
C、 暫停狀態
D、 停止狀態
在下列選項中, 可以獲得Intent中String類型參數的方法是(B)
A、 getExtraString(string)
B、 getStringExtra(string)
C、 getStringPut(string)
D、 getPutString(string)
Activity通過()方法可以設置它的布局文件(B)
A、 setContentViews()
B、 setContentView()
C、 setLayoutView()
D、 setLayoutViews()
兩個RadioButton要實現單選需要包裹在()中(B)
A、 RadioGroups
B、 RadioGroup
C、 RatingBar
D、 RatingBars
Activity通過()方法可以設置它的布局文件,並把視圖顯示在界面上。(B)
A、 setLayoutView()
B、 setContentView()
C、 setLayoutViews()
D、 setContentViews()
(C)是指在開啟組件時,不需要直接指定目標組件的名稱,而是通過指定一組動作、數據、類型等屬性,讓系統從清單文件中匹配指定的組件並開啟它。
A、 顯示意圖
B、 顯式意圖
C、 隱式意圖
D、 隱示意圖
Activity的布局文件放在哪個目錄下(A)
A、 res/layout
B、 res/layouts
C、 res/xml
D、 res/values
開啟當前應用中的Activity使用(B)
A、 顯示意圖
B、 顯式意圖
C、 隱式意圖
D、 隱示意圖
Activity獲取焦點時執行方法是(B)
A、 onStart()
B、 onResume()
C、 onPause()
D、 onDestroy()
判斷題
Activity的生命周期分為五種狀態,分別是啟動狀態、運行狀態、暫停狀態、停止狀態和銷毀狀態。(×)
當Activity處於運行狀態時,Android會盡可能地保持它的運行,即使出現內存不足的情況,Android也會先殺死棧底部的Activity,來確保可見的Activity正常運行(√)
Activity默認的啟動模式是standard,在不指定啟動模式的情況下,Activity使用的都是standard模式。(√)
棧是一種“先進先出”的數據結構。(×)
當Activity處於銷毀狀態時,將被清理出內存。(√)
ProgressBar通常用於訪問網絡展示loading對話框以及下載文件時顯示的進度。它有兩種表現形式,一種是水平的,另一種是環形的(√)
使用Intent傳遞數據只需調用putExtra()方法將想要存儲的數據存在Intent中即可(√)
在用戶注冊案例中展示用戶信息Activity可以通過getIntent()方法獲取到Intent對象,然后通過該對象的getStringExtra()方法拿到輸入的用戶名(√)
Activity默認的啟動模式是standard,在不指定啟動模式的情況下,Activity使用的都是standard模式。(√)
Activity可以不用在AndroidManifest.xml文件中注冊就可以運行(×)
顯示意圖,即啟動Activity時不需要指定Activity的名稱。(×)
創建一個Activity必須繼承自android.app.Activity或者其子類(√)
關閉Activity的界面時會執行onPause、onStop、onDestroy方法。(√)
Activity不是Context的子類。(×)
Activity的啟動狀態很短暫,一般情況下,當Activity啟動之后便會進入運行狀態。(√)
顯式意圖,即啟動Activity時不需要指定Activity的名稱。(×)
ProgressBar有兩種表現形式,一種是水平的,另一種是環形的。(√)
standard是Activity默認的啟動模式,在不指定Activity啟動模式的情況下,所有Activity使用的都是standard這種模式(√)
在目標Activity中,通常使用setResult方法設置返回數據。(×)
standard是Activity默認的啟動模式,在不指定Activity啟動模式的情況下,所有Activity使用的都是standard這種模式(√)
通常一個應用程序對應一個任務棧,默認情況下每啟動一個Activity都會入棧,並處於棧頂位置。(√)
啟動系統相機使用的action是android.media.action.VIDEO_CAPTURE。(×)
啟動系統相機使用的action是android.media.action.IMAGE_CAPTURE。(√)
使用Intent傳遞數據時,可以使用putExtra()方法把參數封裝到Intent中。(√)
Android中Intent傳遞類對象提供了兩種方式一種是 通過實現Serializable接口傳遞對象,一種是通過實現Parcelable接口傳遞對象(×)
在用戶注冊案例中展示用戶信息Activity可以通過getIntent()方法獲取到Intent對象,然后通過該對象的getStringExtra()方法得到輸入的用戶名。(√)
當用startActivityForResult()啟動activity B時,可以在onActivityResult()方法接收activity B回傳的數據(√)
使用Intent不能傳遞Parcelable類型的對象。(×)
填空題
通過__ _____方法可以獲取到Intent對象getIntent
Activity的啟動模式有四種,分別是standard、singleTop、和singleInstance singleTask
Activity的startActivityForResult()方法接收兩個參數,第一個參數是Intent,第二個參數是__ ______,用於在判斷數據的來源_請求碼
_____ ____可以用來開啟Activity,同樣它也可以用來在Activity之間傳遞數據Intent對象
一個對象從創建到銷毀的過程被稱為該對象的_____ ______生命周期
Andorid提供了一個_____方法,來實現回傳數據startActivityForResult()
____ _____通常用於訪問網絡展示loading對話框以及下載文件時顯示的進度_ProgressBar
_____ __是Android程序各個組件進行交互的一種重要方式,它不僅可以指定當前組件要執行的動作,還可以在不同組件之間進行數據傳遞Intent
采用____ _______意圖可以啟動系統的相機隱式
_____ ___是Android應用程序的四大組件之一,它負責管理Android應用程序的用戶界面Activity
Android中Intent尋找目標組件的方式分為兩種,分別是___顯示意圖_____和__隱式意圖_______
Activity的生命周期中分為三種狀態,分別是運行狀態、____暫停狀態______和停止狀態
Activity從啟動到完全出現在用戶面前會執行onCreate(),____onStart()_____,onResume()三個方法
_____ _____就是一個對象從創建到銷毀的過程,每一個對象都會經過這個過程生命周期
通過_____ ___方法可以獲取到Intent對象getIntent
____ProgressBar____控件通常用於顯示進度信息。
當Activity處於___ _____狀態時,Android會盡可能地保持它的運行,即使出現內存不足的情況,Android也會先銷毀棧底的Activity,來確保當前Activity正常運行。_運行
通常一個應用程序對應一個任務棧,默認情況下每啟動一個Activity都會入棧,並處於______位置。棧頂
Activity的啟動模式有四種,分別是standard、singleTop_、singleTask和singleInstance
Activity對用戶來說仍然可見,但它無法獲取焦點,用戶對它操作沒有響應,此時它就處於____ __暫停狀態
打開Activity的界面時會執行onCreate,onStart,___onResume()_____三個方法。
在Activity生命周期的方法中, ________方法是在Activity實例對象被創建后用來初始化這個實例對象的_onCreate()
在Android中通常使用______傳遞數據。Intent__
意圖分為兩類,分別是_____ _和_______顯示意圖__隱式意圖
在Activity中使用___ _______方法開啟目標Activity,並期待目標Activity返回數據。_starActivityForResult
在Activity中使用___________方法接收目標Activity返回的數據。onActivityResult
創建____ ___時需要繼承父類android.app.Activity或者其子類。Activity
___ __的作用是激活組件和傳遞參數。Intent
04-數據存儲
選擇題
sharedPreferences讀取數據時,其中有一個方法是getString(key, defValue),該方法中的defValue參數是什么( C)。
A、 key所對應的value值
B、 無做用
C、 是當用getString得到數據時如果沒有得到key值所對應的value值,就給定一個默認的值。
D、 key值
在SharedPreferences的方法中,使用()方法可以得到一個編輯器Editor對象,然后通過這個Editor對象存儲數據。(C)
A、 editor()
B、 getEditor()
C、 edit()
D、 getEdit ()
在Activity中,可以得到/data/data/com.itheima.savetofile/info.txt路徑的輸入流的方法是 (C)
A、 openFileInput()
B、 openFilesInput()
C、 openFileOutput()
D、 openFilesOutput()
在下列選項中,Android中的五大存儲數據方式不包括(D)
A、 文件
B、 SQLite數據庫
C、 SharedPreferences
D、 Map
E、 網絡
Android中判斷CheckBox控件是否選中的方法是( D)。
A、 isLogin()
B、 isBoolean()
C、 onClick()
D、 isChecked()
Android中使用serializer對象生成xml 文檔開頭的方法是(A)。
A、 startDocument
B、 startTag
C、 endTag
D、 endDocument
Android獲取到SharedPreferences對象sp后,保存數據正確的邏輯是( B)。
A、 sp.edit();
B、 sp.edit().putString(“name”,”zhangsan”).commit();
C、 sp.edit().putString(“name”,”zhangsan”);
D、 sp.edit().put(“name”,”zhangsan”).commit();
Android中使用xmlPullParser解析器解析xml,判斷解析到文件末尾的方法是(B)。
A、 XmlPullParser.END_TAG
B、 XmlPullParser.END_DOCUMENT
C、 XmlPullParser.END_TAG_DOCUMENT
D、 XmlPullParser.END_ATTRIBUTE
在下列選項中,不屬於XmlPullParser的事件類型的是(E)
A、 END_DOCUMENT
B、 START_TAG
C、 END_TAG
D、 START_DOCUMENT
E、 END_TEXT
在QQ登錄案例中,獲得保存在SharedPreferences中的賬號密碼,調用的方法是(A)
A、 getString()
B、 getStringExtra ()
C、 getStringValue()
D、 getValue()
在下列選項中,SD卡的根目錄是(B )
A、/mnt
B、/mnt/sdcard
C、/data
D、/data/data
在XmlSerializer的方法中,向XML文件中寫一個開始標簽的方法是(B)
A、 startDocument
B、 startTag
C、 text
D、 endTag
以下哪個選項不屬於openFileOutput方法與 getSharedPreferences方法的文件操作模式參數( D)。
A、 Context.MODE_PRIVATE;
B、 Context.MODE_APPEND;
C、 Context.MODE_WORLD_READABLE;
D、 Context.MODE_WORLD;
在Editor的方法中,用於存儲String類型參數的方法是(D)
A、 set()
B、 setString()
C、 put()
D、 putString()
Android中使用xmlPullParser解析器解析xml, 獲取解析事件類型的方法是( C) 。
A、 getDocument()
B、 getDocumentTag()
C、 getEventType()
D、 getAttribute()
在XmlPullParser的方法中,初始化解析器的方法是(C)
A、 setInput()
B、 setOutput()
C、 getEventType()
D、 setEventType()
在下列選項中,關於openFileInput()方法接收的參數,描述正確的是(C)
A、 一個輸入流對象
B、 一個目錄對象
C、 /data/data/com.itheima.savetofile/目錄下一個文件的名稱
D、一個輸出流對象
Android中初始化SharedPreferences,以下正確的是( D)。
A、 SharedPreferences sp = new SharedPreferences();
B、 SharedPreferences sp = SharedPreferences.getDefault();
C、 SharedPreferences sp = SharedPreferences.Factory();
D、 SharedPreferences sp = getSharedPreferences(“config”, MODE_PRIVATE);
在XmlPullParser的方法中,獲得標簽體內容的方法是(C)
A、 getName()
B、 next()
C、 nextText()
D、 getEventType()
在SharedPreferences的方法中,用於獲得String類型參數的方法是(A)
A、 getString()
B、 getStringExtra()
C、 getStringValue()
D、 getValue()
在QQ登錄案例中,顯示上次用戶輸入的賬號密碼的代碼,需要寫在(B)方法中。
A、 onStart()
B、 onCreate()
C、 onDestroy()
D、 onStop()
在Environment類中,用來獲得SD根目錄方法的是(B )
A、 getDataDirectory()
B、 getExternalStorageDirectory()
C、 getExternalStorageState()
D、 getDownloadCacheDirectory()
Android中開啟事務的方法正確的是(B )
A、 db.startTransaction()
B、 db.beginTransaction()
C、 db.endTransaction()
D、 intent.startTransaction()
在android中對數據庫的表進行查詢操作用SQLiteDatabase類中的那兩個方法進行查詢(C )
A、 insert()和rawQuery()
B、 query()和execSQL()
C、 query()和rawQuery()
D、 query()和update()
在android中對數據庫做增刪改查有兩種方式分別是SQLiteDatabase這個類中的哪幾個方法 (B ).
A、 第一種方式execSQL()和rawQuery()方法操作,第二種方式直接提供封裝好的insert()、delete()、update()和query() 這四個方法操作;
B、 第一種方式execSQL()方法操作,第二種方式直接提供封裝好的insert()、delete()、update()和query() 這四個方法操作
C、 兩種方式都是用這個方法execSQL()
D、 兩種方式都是提供封裝好的insert()、delete()、update()和query() 這四個方法操作;
Android系統中使用的數據庫是(D )。
A、 Oracel
B、 SQLServer
C、 MySQL
D、 SQLite
Cursor中的()方法用於移動光標到下一行。(A)
A、 moveToNext()
B、 moveToFirst()
C、 moveToLast()
D、 moveToPrevious()
關於操作SQLite數據庫,不正確的說法是( C).
A、 SQLiteOpenHelper類用來創建數據庫和更新數據庫
B、 SQLiteDatabase類是用來操作數據庫的
C、 在每次調用SQLiteDatabase的getWritableDatabase()方法時,會執行SQLiteOpenHelper的onCreate方法。
D、 當數據庫版本發生變化時,可以自動更新數據庫結構
SQLiteOpenHelper中的()方法用於創建或打開一個只讀的數據庫。(C)
A、 onCreate
B、 onUpgrade
C、 getReadableDatabase
D、 getWritableDatabase
關於Android中sqlite3工具介紹不正確的是(D )
A、 sqlite3工具是一個命令行工具
B、 在使用sqlite3工具需要先開啟模擬器或者真機
C、 使用sqlite3工具應該進入到dos下進行操作
D、 sqlite3工具是一個收費的查看數據庫的工具
關於Android中sqlite3工具使用正確的是(D )
A、 adb sqlite3
B、 ls -l sqlite3
C、 sqlite3 cache
D、 sqlite3 person.db
在下列選項中,存放sqlite3命令行工具的目錄是(B)
A、 sdk/platform-tools
B、 sdk/tools
C、 sdk/platforms
D、 sdk/build-tools
在下列選項中,關於SQLiteOpenHelper的主要作用描述正確的是(D)
A、 刪除數據庫表中的數據
B、 修改數據庫表中的數據
C、 通過onCreate()方法和onUpgrade()方法管理數據庫版本
D、 管理數據庫的事務
在SQLiteDatabase的方法中,開啟數據庫事務的方法是(A)
A、 beginTransaction()
B、 startTransaction()
C、 getTransaction()
D、 setTransactionSuccessful()
為了讓數據庫幫助類TestDBHelper具有管理數據庫版本的功能,需要讓它繼承的類是(A)
A、 SQLiteOpenHelper
B、 SQLiteDateBase
C、 CursorFactory
D、 DateBaseFactory
事務操作完成后一定要使用()方法關閉事務(C)
A、 close()
B、 end()
C、 endTransaction()
D、 以上說法都不對
在下列選項中,打開SQLite數據庫的工具是(C)
A、 open
B、 sqlite
C、 sqlite3
D、 cat
判斷題
ContentProvider並不能實現數據存儲。(×)
在/data/data/包名/cache目錄下可以cache軟件的緩存數據,當清除緩存時數據就會刪除(√)
XML是文件存儲的一種形式。(√)
在openFileOutput()方法中,接收的第一個參數表示/data/data/com.itheima.savetofile/目錄下的一個文件名,用於指定存儲數據的文件。(√)
Android中數據存儲方式只有一種。(×)
Android中用 isChecked( ) 方法用來判斷CheckBox控件是否選中?(√)
解析數據之前必須先初始化解析器XmlPullParser(√)
Android 中獲取到sp對象 SharedPreferences sp = new SharedPreferences();(×)
SharedPreferences是使用.properties文件存數數據的。(√)
Android中數據只能存儲到sd卡上。(×)
要將數據序列化,首先要做的是創建與XML相對應的序列化器(XmlSerializer)。(√)
Android 中xmlPullParser解析原理是基於事件進行解析。(√)
序列化數據之前必須先初始化序列化器XmlSerializer。(√)
在QQ登錄案例中,存儲賬號密碼數據的文件是在data/data/包名/shared_prefs目錄下。 (√)
Android中的五大存儲數據方式包括文件、SQLite數據庫、SharedPreferences、contentProvider、網絡。(√)
Android 中我們可以通過Xml.newSerializer( )方式獲取xml序列化對象。(√)
Android中使用openFileOutput(String name,int mode)方法獲取到文件輸出流時, 第二個參數mode常用模式有4種。(√)
創建XmlSerializer serializer = new XmlSerializer(×);
SQLite是遵守ACID關聯式的數據庫管理系統。(√ )
Android 中獲取到SQLiteDatabase實例db后,可以通過db.beginTransaction()開啟事務(√ )
Android中獲取到SQLiteDatabase類實例后,可以對數據庫進行增刪改查操作.(√ )
Android 中sqlite3工具是命令行查看數據庫的工具(√ )
Cursor的moveToPosition方法用於移動光標到指定位置。(√ )
getWritableDatabase()方法用於創建或打開一個讀寫的數據庫。( √)
db.beginTransaction()用於開啟數據庫的事務。(√ )
關於Android中操作數據庫, SQLiteOpenHelper類是用於操作數據庫的.( ×)
SQLite支持 NULL、INTEGER、REAL(浮點數字)、TEXT(字符串文本)和BLOB(二進制對象)五種數據類型。( √)
Android中,通常先使用sqlite3命令行工具打開數據庫,然后做增刪改查的操作。( √)
創建一個數據庫幫助類TestDBHelper,需要繼承父類SQLiteOpenHelper后才具有管理數據庫版本的功能。( √)
SQLite數據庫的事務通常是在一組業務邏輯操作開始之前開啟,在業務邏輯操作完成之后結束。( √)
填空題
Android中sqlite3工具的作用是___管理數據庫____;
____ _是一個數據庫訪問類,該類封裝了一系列數據庫操作的API,可以對數據進行增刪改查操作。SQLiteDatabase
Android系統中所使用的數據庫是__ _____ SQLite
在Android中使用的數據庫為___ ,它是一個輕量級的嵌入式數據庫。SQLite
在操作SQLite數據庫時___ __是用於操作數據庫的SQLiteDatabase
SQLiteOpenHelper是一個_____類,該類用於創建數據庫和數據庫版本更新。抽象
在操作SQLite數據庫時,___ ____類是用於創建數據庫和更新數據庫的SQLiteOpenHelper
Android中開啟事務首先____調用___然后通過___ __開啟事務SQLiteDatabase beginTransaction()
____ _是指SQLite數據庫中的一組數據庫操作要么同時成功要么同時失敗。SQLite事務操作
在Android中,___ ____是用於操作數據庫的增刪改查的。SQLiteDatabase
Android中,通常使用_____命令行工具操作SQLite數據庫。sqlite3
Android中如何獲取到SharedPreferences實例對象_____ getSharedPreferences()______
Android中數據存儲常用目錄是___ ______/sdcard/Android/data//cache
Android中用使用___ ___解析器來解析xml文件XmlPullParser
Android中_____ __方法用來判斷CheckBox控件是否選中? isChecked()
Android中把數據存儲到sd卡對應的目錄是_____ _____ Environment.getExternalStorageState()_
在存儲用戶信息案例中,使用_______方法得到/data/data/com.itheima.savetofile/info.txt路徑的輸出流。Environment.getExternalStorageDirectory()
可以使用____ _____把數據序列化到XML格式的文件上。XmlPullParser _
Android中常見數據存儲方式有______文件存儲、sharePreferences、SQLite數據庫、ContentProvider、網絡存儲____
在Android中有_____5____種存儲數據的方式。
Android中使用openFileOutput()方法去獲取文件輸出流時,openFileOutput(String name,int mode) 中 mode模式有哪幾種____MODE_PRIVATE ,MODE_APPEND ,MODE_WORLD_READABLE ,MODE_WORLD_WRITEABLE_____
在Activity中,可以使用____ ___方法可以打開/data/data/包名/files/a.txt文件的輸出流對象。openFileInput()
在Android中,通常使用_____存儲軟件設置的參數。__Properties文件
使用文件存儲數據時,文件存儲在軟件的_______目錄下_data/data_
第05章 UI進階
1.關於BaseAdapter說法錯誤的是(D )
A、BaseAdapter是自定義的數據適配器
B、BaseAdapter是抽象的類 我們主要實現getCount方法和getView方法
C、BaseAdapter的getCount()方法的作用是返回Listview一共有多少個條目顯示出來
D、BaseAdapter不是抽象的 可以直接使用
2.關於Listview下列說法正確的是( D)
A、Listview的條目沒有點擊事件
B、BaseAdapter的getCount方法返回每個條目的id對象
C、若listview當前能顯示10條,一共有100條數據,則產生了100個view
D、Listview必須通過Adapter來提供數據
3.關於Fragment介紹錯誤的是( C).
A、在Android3.0版本開始提供了Fragment
B、Fragment主要應用到平板上
C、Fragment技術只能應用到3.0之后的系統上.
D、Fragment可以理解成是Activity的一部分.
4.下列控件中,用於以列表形式展示數據的是(B )。
A、GridView
B、ListView
C、TextView
D、EditText
5.關於SimpleAdapter說法正確的是(B ).
A、SimpleAdapter是抽象類
B、SimpleAdapter數據適配器 每個item顯示的內容用map來封裝
C、Listview顯示數據不可以使用simpleAdapter來顯示
D、SimpleAdapter開發中用不到
6.在BaseAdapter的方法中,根據位置得到條目的ID的方法是(C)
A、getView()
B、getItem()
C、getItemId()
D、getCount()
7.在BaseAdapter的方法中,根據位置返回一個條目的View的方法是(A)
A、getView()
B、getItem()
C、getItemView()
D、getItemId()
8.關於BaseAdapter說法錯誤的是(C)
A、BaseAdapter是抽象類,我們主要實現getCount()方法和getView()方法
B、BaseAdapter是自定義的數據適配器
C、BaseAdapter不是抽象類,可以直接使用
D、BaseAdapter的getCount()方法的作用是返回ListView一共有多少個條目顯示出來
9.以下Fragment說法錯誤的是( D).
A、Fragment(碎片)是一種可以嵌入在Activity中的UI片段,它能讓程序更加合理地利用大屏幕空間,因而Fragment在平板上應用的非常廣泛.
B、Fragment與Activity十分相似,它能包含布局,同時也具有自己的生命周期。
C、Fragment在Android 3.0版本才被引入
D、Fragment的生命周期函數比Activity少很多
10.在BaseAdapter的方法中,用來返回ListView顯示條目個數的方法是(D)
A、getViewCount()
B、getItemCount()
C、getItems()
D、getCount()
11.在下列選項中,用來給ListView填充數據的方法是(A)
A、setAdapter()
B、setDefaultAdapter()
C、setBaseAdapter()
D、setView()
12.在下列選項中,把List集合中的Map類型數據填充在ListView上,使用的數據適配器是(D)
A、DefaultAdapter
B、ArrayAdapter
C、BaseAdapter
D、SimpleAdapter
13.在下列選項中,把數組中的數據填充在ListView上的數據適配器是(B)
A、DefaultAdapter
B、ArrayAdapter
C、BaseAdapter
D、SimpleAdapter
14.自定義一個數據適配器MyAdatper,需要讓它繼承的類是(C)
A、DefaultAdapter
B、ParentAdapter
C、BaseAdapter
D、BasicAdapter
判斷題
1.Fragment(碎片)是一種可以嵌入在Activity中的UI片段,它能讓程序更加合理地利用大屏幕空間.(V)
2.Android中BaseAdapter的getItemId()方法作用是返回Listview一共有多少條目需要被顯示(X)
3.Android中數組適配器ArrayAdapter顯示數組的內容非常方便.(V)
4.Android中BaseAdapter的getView方法作用是返回Listview每個條目具體顯示的內容(V)
5.Android 中ListView控件顯示數據和TextView一樣(X)
6.自定義數據適配器類時,繼承的父類是DefaultAdapter。(X)
7.使用V4包中的Fragment,通過getSupportFragment獲取到Fragment的管理者.(V)
8.BaseAdapter中的getItem( )方法作用是根據位置得到條目對象。(V)
9.ListView通常用於在界面上顯示一個垂直滾動的列表。(V)
10.ArrayAdapter通常用來把數組中的數據填充在ListView上。(V)
填空題
1.Fragment技術在Android【】版本開始被引入3.0
2.Android中Listview顯示一個數組的內容,我們最好用哪個【】適配器ArrayAdapter
3.Android中BaseAdapter中的getCount( )方法作用是【獲取數據集中的列表項的個數】
4.Fragment(碎片)是一種可以嵌入在【】中的UI片段,它能讓程序更加合理地利用大屏幕空間. Activity
5.Android中BaseAdapter中的getView( )方法作用是【】獲取用於顯示相應位置的數據View
6.Android中的Listview是以【】的形式展示數據. 可滾動的列表
7.Android中SimpleAdapter數據適配器繼承【】類BaseAdapter
8.Android中Listview顯示數據需要【】適配器把數據映射到ListView
9.BaseAdapter中的getView()方法作用是【獲取用於顯示相應位置的數據View】。
10.Fragment【】生命周期方法是用來加載Fragment的View. onCreatView()
11.使用V4包中的Fragment,【】獲取到Fragment的管理者. getSupportFragment
12.在Android中,通常使用【】把數組中的數據填充在ListView上。ArrayAdapter
13.在Android中, 需要使用【】給ListView填充數據。適配器
14.在Android中, 通常使用【】把List集合中的Map類型數據填充在ListView上。SimpleAdapter
15.在Android中,通常使用【】控件在界面上顯示一個垂直滾動的列表。ListView
06-內容提供者
在ContentProvider中ContentUris的作用是干什么(C )。
A、 用於獲取Uri路徑后面的ID部分
B、 增刪改查的方法都在這個類中
C、 用於添加URI的類
D、 根本就用不到這個類,沒關系
利用內容解析者查詢短信數據時uri怎么寫( A)。
A、 Uri uri = Uri.parse(“content://sms”);
B、 Uri uri = Uri.parse(“content://sms/data”);
C、 Uri uri = Uri.parse(“content://sms/contact”);
D、 Uri uri = Uri.parse(“sms/”);
Android中創建內容提供者要繼承( B)。
A、 ContentData
B、 ContentProvider
C、 ContentObserver
D、 ContentDataProvider
在Android中的Activity種通過下面哪個方法來得到ContentResolver的實例對象。( B
A、 new ContentResolver
B、 getContentResolver()
C、 newInstance()
D、 ContentUris.newInstance()
若要實現對系統聯系人的增刪改查,需要使用的系統ContentProvider的Uri為( C)。
A、 Contacts.Photos.CONTENT_URI
B、 Contacts.People.CONTENT_URI
C、 Contacts.Phones.CONTENT_URI
D、 Media.EXTERNAL_CONTENT_URI
ContentProvider中的(C)方法根據傳入的Uri查詢指定條件下的數據。
A、 delete
B、 insert
C、 query
D、 update
定義一個ContentProvider過程中,需要增加匹配的uri,請問在UriMatcher.addURI(“youAuthority”,”item/”,1)語句中井號代表(A)。
A、 某個字段
B、 表名
C、 匹配任意URI
D、 id
當觀察到的Uri代表的數據發生變化時,會觸發ContentObserver中的(C)方法。
A、 onCreate()
B、 notifyChange()
C、 onChange()
D、 以上說法都不對
短信的內容提供者是(C)
A、 ContactProvider
B、 MessageProvider
C、 SmsProvider
D、 TelephonyProvider
在下列選項中,聯系人信息內容提供者的主機名是(D)
A、 contact
B、 com.android.contacts
C、 com.android.provider.contact
D、 com.android.provider.contacts
下面關於ContentProvider描述錯誤的是(C )。
A、 ContentProvider可以暴露數據
B、 ContentProvider用於實現跨程序共享數據
C、 ContentProvider不是四大組件
D、 ContentProvider通過Uri的形式對外提供數據
在下列選項中,關於內容提供者的說法錯誤的是(D)
A、 ContentProvider 是一個抽象類,只有繼承后才能使用
B、 內容提供者只有在AndroidManifest.xml文件中注冊后才能運行
C、 內容提供者為其它應用程序提供了統一的訪問數據庫的方式
D、 內容提供者不是抽象類
如果要調用現成的 ContentProvider,獲得如下(B )對象才能調用其方法進行增刪查改。
A、 CursorLoader
B、 ContentResolver
C、 Cursor
D、 ContentProvider
下面哪些功能需要用ContentProvider來實現(A)。
A、 讀取系統中的短信內容
B、 建立一個數據庫
C、 開機后自動啟動一個程序
D、 播放一段音樂
短信內容提供者的主機名是(B)
A、 sms
B、 com.android.sms
C、 smsProvider
D、 com.android.smsProvider
在讀取聯系人信息案例中,沒有操作的表是(D)
A、 raw_contacts
B、 data
C、 mimetypes
D、 contacts
在Provider的節點中,用來指定內容提供者的主機名的屬性是(A)
A、 android:name
B、 android:authorities
C、 android:process
D、 android:label
可以在Activity中得到ContentResolver實例對象的方法是(B)
A、 new ContentResolver()
B、 getContentResolver()
C、 newInstance()
D、 ContentUris.newInstance()
在下列選項中,關於ContentResolver的說法錯誤的是(D)
A、 ContentResolver通過uri匹配到內容提供者
B、 通過ContentResolver可以在其它應用程序中訪問內容提供者
C、 ContentResolver的增刪改查方法與目標內容提供者的增刪改查方法是一一對應
D、 ContentResolver不需要通過uri匹配到內容提供者
自定義內容觀察者時,繼承的類是(B)
A、 BaseObserver
B、 ContentObserver
C、 BasicObserver
D、 DefaultObserver
在下列選項中,關於content provider的功能說話正確的是(A)
A、 讀取系統中的短信內容
B、 建立一個數據庫
C、 開機后自動啟動一個程序
D、 播放一段音樂
在Activity中,獲得ContentResolver對象的方法是(A)
A、 getContentResolver()
B、 getResolver()
C、 getContentResolvers()
D、 getResolvers()
判斷題
Uri是由scheme、authorites、path三部分組成。(√ )
Uri是指統一資源標示符。(√ )
ContentProvider與ContentResolver相互配合使用的。(√ )
path部分代表資源(或者數據),這個部分是不可改變的。(× )
內容提供者主要功能是實現跨程序共享數據的功能。( √)
ContentProvider中的getType()方法是用來獲取當前Uri路徑指定數據的類型。( √)
provider中的android:authorities代表了訪問本provider的路徑,這里的路徑不是唯一的。(× )
provider中的android:name代表是繼承於ContentProvider類的的全路徑名稱。( √ )
Android中創建內容提供者需要繼承【ContentProvider】類。( √)
ContentResolver的notifyChange(Uri uri,ContentObserver cob)方法中,參數ContentObserver表示數據發生變化時指定具體的觀察者接收消息。( √)
Android中的ContentResolver主要作用是獲取通過內容提供者暴露出來的數據。( ×)
Android中使用內容解析者查詢聯系人數據庫信息的時候我們只要關心2張表就可以了。(× )
利用內容觀察者可以監聽短信數據庫的變化,當短信數據庫發生變化的時候會執行內容觀察者的onChange()方法。( √)
ContentProvider可以將數據暴露給其他程序。(√ )
Android中通過內容解析者查詢短信數據庫的內容時,不需要加入讀短信的權限.(× )
內容提供者為其他應用程序提供了統一的訪問數據庫的方式,可以讓其他應用程序來調用。( √)
Android中的ContentResolver是Android的四大組件之一。(×)
Android中的短信數據庫的內容我們可以直接通過內容解析者進行查詢.(×)
Android中創建內容提供者要繼承ContentObserver。(×)
聯系人信息是存放在數據庫的sms表中的。(√ )
內容提供者只有在AndroidManifest.xml文件中注冊后,才能運行。( √)
Android 中的ContentResolver 查詢數據是通過url來獲取內容提供者暴露的數據。(√ )
讀取短息數據時,是通過內容提供者讀取的。(× )
在短信接收器案例中,自定義的短信內容提供者SmsContentObserver類,繼承了ContentObserver類。(√ )
注冊內容觀察者是通過ContentResolver的registerContentObserver()方法注冊的。(√ )
ContentResolver的增刪改查方法與目標內容提供者的增刪改查方法不是一一對應的。( ×)
在短信接收器案例中,短信內容提供者的數據發生變化時,會觸發onChange()方法的調用。(√ )
ContentResolver是通過Uri匹配內容提供者的。(√ )
填空題
為了解析Uri對象,Android系統提供了一個輔助工具類_____用於匹配Uri。UriMatcher
Android中通過ContentResover.query()查詢短信數據庫的時候,第一個Uri參數如何寫___ ____ contentprovider
內容觀察者是通過觀察____來觀察數據庫的變化_消息中心__
_____是用來觀察指定Uri所代表的數據。消息中心
利用內容解析者讀取短信數據庫內容時,短信數據庫_____表主要用來存儲短信信息_SmsInfo_
使用___ ____可以操作其他應用的數據。ContentResolver
resolver.registerContentObserver()方法用於__ _____。注冊內容觀察者
創建UriMatcher對象時調用UriMatcher(int code),參數通常使用UriMatcher.NO_MATCH,表示路徑不滿足條件返回____-1___。
當ContentObserver觀察到指定Uri代表的數據發生變化時,就會觸發ContentObserver的_____方法。onChange()
內容提供者把私有的數據給暴露出來,我們通過_____來進行查詢數據_ContentResolver_
創建一個內容提供者類AccountContentProvider,需要讓它繼承父類___ ___ ContentProvider_
在Android中,是通過____ ___讀取聯系人信息的。ContentResolver
注冊provider時需要指定兩個屬性___android.name____和android:authorities。
短信數據是存放在___ ___表中的。_SmsInfo
Android中通過內容提供者來讀取聯系人信息,__ ____表用來保存聯系人信息的. _SmsInfo
在短信接收器案例中,注冊短信內容觀察者時,使用的到Uri是____。onChange_
__主要是用來觀察內容提供者里面數據的變化情況_ContentObserver。
在Android中,通常使用____ ___調用內容提供者。消息中心
第07章 廣播
選擇題
關於BroadcastReceiver的說法不正確的是(D ).
A、 廣播接收器是android四大組件之一
B、 對有序廣播,系統會根據接收者聲明的優先級別按順序逐個執行接收者
C、 接收者聲明的優先級別在的android:priority屬性中聲明,數值越大優先級別越高
D、 在配置文件manifest中配置接收器叫做動態注冊
要發送一個廣播,需要實現sendBroadcast方法,假設其中intent=new Intent(“com.itheima.myandroid”),那么com.itheima.myandroid (B ).
A、 是接收者activity的名字
B、 與接收廣播的程序的配置文件中過濾器中的名字相同
C、 與定義的receiver的android:name相同
D、 以上都不對
注冊一個短信到來的廣播事件需要在清單文件配置什么權限(C ).
A、
B、
C、
D、
Android中廣播分為(B )種.
A、1
B、2
C、3
D、4
繼承BroadcastReceiver會重寫(A )方法。
A、 OnReceiver()
B、 onUpdate()
C、 onCreate()
D、 onStart()
廣播接收者需要在清單文件配置(A )節點
A、 receiver
B、 broadReceiver
C、 service
D、 contentProvider
關於sendBroadcast()方法說法正確的是( B).
A、 該方法是發送一條有序廣播
B、 該方法是發送一條無序廣播
C、 該方法即是發送有序廣播也可以發送無序廣播
D、 以上說法都不正確
關於abortBroadcast說法正確的是(D)
A、 該方法的作用是發送有序廣播
B、 該方法的作用是用於攔截無序廣播
C、 發送一條有序廣播
D、 通過該方法可以終止有序廣播
Android中定義廣播接收者要繼承( A).
A、 BroadcastReceiver
B、 BroadCast
C、 Receiver
D、 BroadcastReboot
在清單文件中注冊了NEW_OUTGOING_CALL,代碼中獲取到廣播事件的方法是(D ).
A、 getAction()
B、 getActionCall()
C、 getMethod()
D、 getOutCall()
手機注冊android.intent.action.BOOT_COMPLETED廣播事件,說法正確的是( B)
A、 定義該廣播接收者不需要在清單文件里面配置
B、 手機重啟的廣播事件需要添加相應的權限
C、 不需要任何的權限
D、 該廣播事件會很浪費時間
關於短信攔截的廣播事件說法錯誤的是(C ).
A、 監聽用戶的短信到來的廣播事件在高版本ADT里該事件找不到了
B、 需要注冊 權限
C、 在國內國外都可用隨意注冊這樣廣播事件
D、 以上說法都正確
注冊外撥電話的廣播事件需要加的權限是(C ).
A、 不需要加權限
B、
C、
D、
(A)廣播是當應用程序關閉后,如果接收到其他應用程序發出的廣播,那么該程序會自動重新啟動。
A、 常駐型廣播
B、 非常駐型廣播
C、 以上兩種都可以
D、 以上說法都不對
關於廣播接收者說法錯誤的是(D ).
A、 Android中定義廣播接收者要繼承BroadCastReceiver
B、 Android中定義廣播接收者的目的之一是方便我們開發者進行開發
C、 Android系統中內置了很多系統級別的廣播
D、 Android中定義廣播這個組件意義不是很大
關於有序廣播和無序廣播說法正確的是( A).
A、 有序廣播可以被攔截 數據可以被修改,無序廣播數據不可以被攔截,數據不可以被修改
B、 有序廣播和無序廣播類似
C、 有序廣播不可以被攔截
D、 無序廣播是按照優先級進行發送
有序廣播可以通過( )方法攔截廣播. ( D.
A、 abort( )
B、 abortReceiver( )
C、 Receiver( )
D、 abortBroadcast( )
Ip撥號器中我們把ip號碼通過sharedPreferences保存起來,以下說法錯誤的是(D ).
A、 通過上下文來初始化sharedPreferences
B、 使用sharedPreferences需要獲取sharedPreferences的編輯器.
C、 sharedPreferences保存數據后實際上生成了一個xml文件
D、 使用sharedPreferences初始化后可以直接保存數據.
在清單文件中,注冊廣播時使用的節點是( C)。
A、
B、
C、
D、
自定義BroadcastReceiver時在androidManifest中用哪個標簽定義(A )
A、 receiver
B、 activity
C、 application
D、 uses-sdk
對於一些特殊的廣播事件,比如屏幕鎖屏和解鎖,以下說法正確的是(A ).
A、 對於這樣的廣播事件,需要采用動態代碼的方式進行注冊,在清單文件注冊不生效
B、 直接在清單文件里面配置相應的動作就可以
C、 對文件操作的權限
D、 設置程序開機第一啟動的權限
setResultData()方法的作用是( A);
A、 修改廣播接收者的數據
B、 修改數據並往下傳遞
C、 設置廣播接收者的數據
D、 以上都不對
注冊外撥電話的廣播事件對應的action是( A).
A、 android_intent.action.NEW_OUTGOING_CALL
B、 android_intent.action.NEW_CALL
C、 android_intent.action.OUTGOINT_CALL
D、 android_intent.action.OUTGOINT_CALL_DATA
msBroadCastReceiver = new SmsBroadCastReceiver();
IntentFilter intentFilter = new IntentFilter(“android.provider.Telephony.SMS_RECEIVED”);
BroadCastReceiverActivity.this.registerReceiver(smsBroadCastReceiver, intentFilter);
請閱讀以上代碼,下面說法不正確的是( D)
A、 以上代碼進行的是廣播的動態注冊過程,當程序退出后這個廣播接收器將不能再接收到任何廣播
B、 以上代碼分別建立了一個廣播接收器和一個意圖過濾器
C、 以上代碼進行的是廣播的動態注冊過程,如果得到廣播意圖的Action,則此接收器可以接收任何的廣播
D、 以上代碼進行了廣播的注冊過程,即使本程序退出后這個廣播接收器仍能再接收發送的廣播
25) BroadcastReceiver廣播中有幾種注冊方式( B).
A、 一種
B、 兩種
C、 三種
D、 四種
26) 下列關於廣播接收者,描述錯誤的是( C)。
A、 廣播接收者是四大組件之一
B、 廣播接收者必須要在清單文件中注冊
C、 廣播接收者無需注冊就可以監聽廣播事件
D、 廣播接收者創建時需要繼承BroadcastReceiver
27) 在android中android:permission="android.permission.RECEIVE_BOOT_COMPLETED"權限是干什么的( D).
A、 沒什么用
B、 在數據庫增刪改查時用的權限
C、 對文件操作的權限
D、 設置程序開機第一啟動的權限
判斷題
Android中定義廣播接收者,定義一個類要繼承BroadCastReceiver類.( √)
有序廣播配置優先級對應的屬性是property.( ×)
配置手機重啟的廣播事件不需要加額外的權限.( ×)
Android中廣播接收者事件可以在清單文件里面注冊,也可以通過代碼的方式注冊.( √ )
Android中通過sendBroadCast方法發送無序廣播( √)
廣播接收者不在清單文件中注冊也能接收廣播。(√ )
手機重啟對應的廣播事件是BOOT_COMPLETED.( √ )
代碼注冊廣播需要調用registerReceiver方法.( √)
Android程序中,廣播只有一種即無序廣播.( × )
攔截有序廣播的對應的方法是abortBroadcast().(√ )
Android中廣播接收者必須在清單文件里面注冊(× )
BroadcastReceiver廣播中有2種注冊方式.( √ )
注冊外撥電話的廣播事件時不需要加額外的權限.( × )
廣播分有序廣播和無序廣播.( √ )
注冊系統短信到來的廣播事件不需要接收短信的權限.( × )
通過sendOrderBroadCast發送有序廣播可以指定一個最終的廣播接收者.( √)
有序廣播和無序廣播都可以被攔截.( × )
廣播接收者只能監聽來自程序的廣播,不能監聽來自系統的廣播。( ×)
注冊系統短信到來的廣播事件需要加接收短信的權限.( √)
一個廣播事件可以有多個廣播接收者接收。( √)
發送自定義廣播可以通過sendbroadCast方法進行發送(√ )
Android系統內置了很多廣播,例如手機開機完成會發送一條廣播。( √)
Android中廣播分為有序廣播和無序廣播2種.( √ )
有序廣播和無序廣播都可以被攔截.( ×)
注冊外撥電話的廣播事件對應的action是android_intent.action.NEW_OUTGOING_CALL .( √ )
Android中所有廣播接收事件必須都在清單文件注冊.( ×)
填空題
___方法可以用來攔截有序廣播,終止廣播__abortBroadcast()
Android中發送有序廣播和無序廣播分別對應哪兩個方法___ abortBroadcast()____,sendOrderedBroadcast()___.
有序廣播配置優先級需要在清單文件配置___ __屬性. android:priority
代碼注冊廣播需要調用___registerReceiver()____方法,解除廣播需要調用___unregisterReceiver()____方法。
sendBroadCast是發送___無序____廣播.
注冊系統短信到來的廣播事件類型的action是___android.permission.RECEIVE_SMS____.
攔截有序廣播的方法是______. abortBroadcast()_
在Android系統中,廣播分為___有序____廣播和___無序____廣播
BroadcastReceiver廣播中有___2____種注冊方式.
注冊廣播有兩種方式,常駐型廣播與__非常駐型廣播_____。
開機自動運行android程序的廣播在android的manifest文件中添加的action屬性是___ antion android:name=” android.intent.action.BOOT_COMPLETED”____.
____ ___方法是發送有序廣播. sendOrderedBroadcast()
Android中定義廣播接收者要繼承__ ___類. BroadcastReceiver
手機重啟對應的廣播事件是____antion android:name=” android.intent.action.BOOT_COMPLETED”____.
注冊系統短信到來的廣播事件需要加入的權限是___ __. android .permission.RECEIVE_SMS
廣播是一種運用在應用程序之間__ ____的機制。_消息傳遞
在清單文件中注冊了NEW_OUTGOING_CALL,代碼中獲取到廣播事件的方法是____._getOutCall()
__ ___是用於過濾、接收並響應廣播的一類組件。廣播接收者
Android清單文件配置廣播接收者需要配置____ ___節點receive
注冊外撥電話的廣播事件是__ antion android:name=” android.intent.action.NEW_OUTGOING_CALL_____
第08章 服務
選擇題
關於AIDL說法正確的是(A )
A、 AIDL語言是java語言的演變
B、 IPC全稱是Interface process communication,AIDL語言可以解決進程間通信
C、 AIDL語言語法復雜,學習成本高
D、 以上說法都不正確
Context.startService方式的service生命周期下面正確的描述是( A).
A、 啟動時 onCreate() –> onStart()
B、 停止時,onStop()–> onDestroy()
C、 啟動時 onCreate()–>onStart()->onResume()
D、 停止時,onStop()
以下關於Service的說法,正確的是( C)
A、 Service是可以與用戶直接交換
B、 每個Service class可以在AndroidManifest.xml文件中有相應的< service>聲明,也可以不聲明直接使用
C、 Service是Android四大組件之一
D、 Service只能通過startService方式開啟
關於Service和Thread的區別說法,不正確的是(B ).
A、 service默認運行在聲明它的應用進程的主線程中。
B、 service里可以執行密集運算或阻塞操作
C、 可以在Service里創建一個Thread
D、 當有耗時或阻塞的操作時應該在其中創建一個線程.
關於MediaPlayer說法正確的是(A )
A、 MediaPlayer只能播放音頻文件
B、 MediaPlayer播放音頻文件必須放到Service里面
C、 MediaPlayer既可以播放音頻文件也可以播放視頻文件
D、 以上說法都不正確
以startService開啟服務以下說法正確的是( A)
A、 startService方式開啟服務,服務一旦被開啟,服務就會在后台長期運行
B、 服務開啟后只能關機后才能關閉服務
C、 服務不需要在清單文件里注冊
D、 服務停止時會調用onStop()
android中綁定一個service的方法是哪個( A).
A、 bindService()
B、 startService()
C、 unBindService()
D、 onBind()
通過bindService方式開啟服務,服務生命周期是(C )
A、 onCreate()—onStart()—onBind()—onDestroy()
B、 onCreate()—onBind()—onDestroy()
C、 onCreate()—onBind()—onUnBind()—onDestroy()
D、 onCreate()—onStart()—onBind()—onUnBind()—onDestroy()
關於遠程服務和本地服務說法正確的是(C ).
A、 遠程服務是在Tomcat服務器上的服務
B、 本地服務和遠程服務一樣
C、 AIDL是用來解決進程間通信的語言
D、 以上都不正確
把播放音樂的操作放到Service里以下說法正確的是(D ).
A、 可以提供運行效率
B、 播放音樂的操作必須放入到服務里
C、 在Service里更安全
D、 放到服務里目的是提升進程的優先級,不容易被系統回收
關於IPC說法正確的是( A)
A、 IPC全稱是Inner process communication指進程間通信
B、 IPC全稱是Interface process communication
C、 進程間通信指的是在一個應用內進行通信
D、 以上說法都不正確
以下關於服務的生命周期說法正確的是(B )
A、A.服務的生命周期和Activity一樣
B、服務的創建會執行onCreate()
C、啟動時 onCreate()–>onStart()->onResume()
A、 通過startService方式開啟服務,首先會調用onCreate 和 onStart方法
通過bindService方法來啟動一個Service那么服務的生命周期正確的是( C).
A、 onCreate()—onStart()—onBind()—onDestroy()
B、 onCreate()—onBind()—onDestroy()
C、 onCreate()—onBind()—onUnbind()—onDestroy()
D、 onCreate()—onStart()—onBind()—onUnBind()—onDestroy()
以下關於Service的說法,不正確的是(B)。
A、 Service是沒有用戶可見的界面,不與用戶交互
B、 每個Service class可以在AndroidManifest.xml文件中有相應的< service>聲明,也可以不聲明直接使用
C、 Service可以通過 Context.startService()來啟動
D、 Service可以通過Context.bindService()來啟動
關於服務的創建說法錯誤的是( D).
A、 Android中創建服務需要繼承Service類
B、 Android 中的服務需要在清單文件配置
C、 Android 中的服務可以理解成是在后台運行且沒有界面的activity
D、 Android中定服務能做的事情完全可以開一個子線程替代
關於AIDL描述錯誤的是(D ).
A、 AIDL全稱是Android interface definition Language
B、 AIDL出現目的是解決進程間通信
C、 AIDL定義接口的源代碼必須以.aidl結尾
D、 AIDL語言就是java語言的演變
判斷題
Android中想要創建一個服務,定義一個類繼承Service,並需要在清單文件中注冊.(√ )
通過bind方式開啟服務,服務被成功綁定后會調用服務的onBind方法。(√ )
通過startService方式開啟服務,首先會調用OnCreate方法,多次調用startService方法只會調用onStart()方法.(× )
通過bindService方式開啟服務和通過startService方式開啟服務,服務的生命周期一樣.( × )
IPC全稱是Inner process communication叫進程間通信( ×)
服務只有一種開啟方式即startService().(× )
Android中服務的生命周期和Activity的生命周期一樣.( × )
AIDL語言是用來解決進程間通信( √)
通過startService()方式開啟服務首先會調用服務的onCreate方法,然后調用服務的OnStartCommand方法,當開啟服務的Activity退出時,會執行服務的onDestroy方法。(√ )
創建一個Service,需要在清單文件中進行配置( √)
Android中服務可以理解成是在后台長期運行並且沒有界面的activity.( √ )
遠程服務和本地服務都運行在同一個進程中.( ×)
遠程服務是指運行在Tomcat上的服務( ×)
AIDL 全稱是Android interface definition language叫Android接口定義語言.( √ )
Android中服務是四大組件之一.( √)
我們把播放音樂操作最后放到Service里進行操作.( √ )
Android中創建服務組件需要繼承Service類。(√ )
填空題
通過bindService方式開啟服務,服務的生命周期是____onCreate()->onBind()->onUnBind()->onDestroy()___.
Android進程間通信(IPC)可以通過____AIDL___技術來進行通信
通過Context.startService()方式開啟服務后在,再次調用開啟服務的方法會執行服務生命周期的___onStartCommand()____方法.
IPC的全稱是___ Inter-Process Communication____.
創建一個Service,需要在_____文件中進行配置. 清單
服務可以通過___startService____方法和_____bindService__方法來開啟服務.
通過bindService方式開啟服務后,當服務的調用者關閉后需要對服務進行解綁服務,解綁服務調用的方法是_____.onUnBind()
我們把播放音樂操作最后放到_____里進行操作. Service
本地服務和遠程服務通過_____來實現服務的通信_AIDL_
Android中創建服務需要繼承____ ___類. Service
通過bindService方式開啟服務,服務被綁定成功后調用服務的_____方法. onBind()
采用startService()方法開啟服務,肯定會調用____ 方法。onCreat_
通過bindService方式開啟的服務,____ ___方法可以進行解綁服務. onUnBind
在Android中,用於管理后台服務的控件是__ ____。_Service
采用____ ___方法開啟服務后,多次調用該方法,只會執行onStart方法. startService
Android中服務需要在清單文件中配置___ ____節點. service
Android中有____StartService()___方式開啟服務和___bindService()____方式開啟服務.
下面是書本上的課后習題以及答案
1.1 習題
一、 填空題
1、 Android 是 Google 公司基於__Linux____平台開發的手機及平板電腦的___操作系統___。
2、 Android 系統采用分層架構,由高到低依次為___應用程序層___、應用程序框架層、核心類庫___和___Linux 內核。
3、 ADB 的常見指令中,用於開啟 ADB 服務的是 adb start-server____。
4、 在 Android 程序中,src 目錄用於放置程序的___ java 代碼文件___。
5、 Android 程序開發完成后,如果要發布到互聯網上供別人使用,需要將程序___ 打包成.apk 文件___。
二、 判斷題
1、 Android 實際上就是一個手機( ×)。
2、 WCDMA 是中國自己獨自制定的 3G 標准,中國移動使用的就是這種標准(×)。
3、 Android 第 1 個版本 Android1.1,是 2008 年 9 月發布的(√)。
4、 gen 目錄是自動生成的,主要有一個 R.java 文件,該文件可手動修改(× )。
5、 AndroidManifest.xml 文件是整個程序的配置文件( √)。
三、選擇題
1、 隨着智能手機的發展,移動通信技術也在不斷地升級,目前傳輸最快的通信技術是(D
A、 1G B、2G C、3G D、4G
2、 ADT Bundle 中包含了三個重要組成部分,分別是(ABC )。
A、 Eclipse B、SDK C、SDK Manager.exe D、ADB
3、 應用程序層是一個核心應用程序的集合,主要包括(B )。
A、 活動管理器 B、短信程序 C、音頻驅動 D、Dalvik 虛擬機
4、 ADB 的常見指令中“列出所有設備”的指令是(C )。
A、 adb uninstall B、 adb install C、adb device D、adb emulator –avd
5、 創建程序時,填寫的 Application Name 表示(A )。
A、 應用名稱 B、項目名稱 C、項目的包名 D、類的名字 )。
四、 簡答題
1、 請簡要說明 Android 體系結構中每個層的功能
答:Android 體系結構總共包含四層,分別是:
應用程序層:設備上安裝的軟件應用都屬於這一層
應用程序框架層:包含應用 API
核心類庫:包含系統庫和運行環境,系統庫包含了底層 C 代碼;運行環境包含了 Java
的核心庫和 Dalvik 虛擬機
Linux 內核:提供 Android 的底層驅動。
2、 請簡要說明 ADB Bundle 開發工具中 SDK 的作用。
答:SDK 包含了 Android 的 API 源代碼、各種工具、示例工程、用到的各種資源模板等。
五、 編程題
1、編寫任意一個 Android 程序並運行起來。
1.2 習題一、填空題
1、 Android 中的布局分為六種,分別是__RelativeLayout____、LinearLayout、TableLayout、GirdLayout、FrameLayout__和___AbsoluteLayout。
2、 Android 相對布局中,表示“是否跟父布局左對齊”的屬性是___android:layout_alignParentLeft。
3、 線性布局主要有兩種形式,一種___水平___線性布局,一種是____豎直__線性布局。
4、 創建 Android 程序時,默認使用的布局是___RelativeLayout___。
5、 LogCat 區域中有 V、D、I、W 和 E 五個字母,其中 V 代表____顯示全部信息__、D 代表____顯示調試信息__、I 代表
顯示一般信息、W 代表___顯示警告信息___、E 代表___顯示錯誤信息___。
二、 判斷題
1、 相對布局中 android:layout_alignRight 屬性表示“與指定控件右對齊”( √ )。
2、 Toast 的作用是顯示一些提示信息( √)。
3、 TableRow 必須要設置 layout_width 和 layout_height 屬性(×)。
4、 幀布局中可以添加多個控件,這些控件會重疊的在屏幕左上角顯示(√)。
5、 Android 程序中是不支持國際化的(×)。
三、 選擇題
1、 以下屬性中,哪個屬性可以“在指定控件左邊”是(D )
A、 android:layout_alignLeft B、android:layout_alignParentLeft
C、android:layout_left D、android:layout_toLeftOf
2、 表格布局中 android:layout_column 屬性的作用是指定(B )。
A、 行數 B、列數 C、總行數 D、總列數
3、 實際開發中刮刮樂游戲的布局是按照(C )布局寫的。
A、 相對布局 B 線性布局 C 幀布局 D 絕對布局
4、 網格布局是 Android(D )新增的布局。
A、3.0 B、3.1 C、3.2 D、4.0
5、 相對布局中,“是否跟父布局底部對齊”是屬性(B )。
A、 android:layout_alignBottom B、android:layout_alignParentBottom
C、android:layout_alignBaseline D、android:layout_below
四、 簡答題
1、 請簡述一下如何在程序中使用 Toast。
使用 Toast 可以直接調用 Tosast 的靜態方法:
Toast.makeText(this, text, duration).show();
也可以創建出 Toast 對象,如:
Toast toast = new Toast(this);
toast.setText(“提示信息”);
toast.show();
2、 請說明布局有幾種類型,每種類型的作用。
答:一共有六種布局,它們的作用分別是:
RelativeLayout:相對於其他控件或者容器決定控件的位置;
LinearLayout:使控件以豎直或者水平方向排列;
TableLayout:使控件以表格形式排列;
GirdLayout:能使控件交錯顯示,能夠避免因布局嵌套對設備性能的影響,更利於自由
布局的開發;
FrameLayout:使控件按照創建順序在屏幕的左上角重疊顯示;
AbsoluteLayout:通過絕對的坐標控制控件擺放的位置。
3、 請編寫一個用戶登錄界面,界面中必須要有文本提示信息(TextView),編輯框(EditText),按鈕(Button),分別用於顯示“用戶名”、“密碼”,輸入用戶名、密碼,登錄功能。
4、 自定義一個樣式,使用這個樣式將界面中的背景色修改,並且美化界面中的文字信息。
1.3 習題
一、 填空題
1、 Activity 生命周期的三種狀態分別是__運行狀態____、暫停狀態____和___停止狀態_。
2、 Activity 的四種啟動模式是__ standard____、singleTop、singleTask___和___singleInstance。
3、 Android 中 Intent 尋找目標組件的方式有兩種___隱式 Intent___和____顯示 Intent__。
4、 Activity 生命周期中“回到前台,再次可見時執行”時調用的方法是__ onRestart()。
5、 要在 Activity 中實現數據回傳,則需要使用__ startActivityForResult()方法開啟另一個 Activity。
二、 判斷題
1、 Activity 是 Android 應用程序的四大組件之一(√)。
2、 Intent 一般只用於啟動 Activity 不能開啟廣播和服務(× )。
3、 Intent 可以用來開啟 Activity,同樣它也可以用來在 Activity 之間傳遞數據(√ )。
4、 Activity 默認的啟動模式是 singleTop 模式(× )。
5、 在數據傳遞時,如果需要獲取返回的數據,需要使用 onActivityResult()方法(√ )。
三、 選擇題
1、 一個應用程序默認會包含(A )個 Activity。
A、1 個 B、5 個 C 、10 個 D、若干個
2、 下列方法中,Activity 第一次啟動到關閉不會執行的是( D)。
A、 onCreate() B、onStart() C、onResume() D、onRestart()
3、 下列組件中,不能使用 Intent 啟動的是(D )。
A、 Activity B、啟動服務 C、廣播 D 內容提供者
4、 startActivityForResult()方法接收兩個參數,第一個是 Intent,第二個是(C )。
A、 resultCode B、request C、requestCode D、data
5、 下列關於 Activity 的描述,錯誤的是( C)。
A、 Activity 是 Android 的四大組件之一
B、 Activity 有四種啟動模式
C、 Activity 通常用於開啟一個廣播事件
D、 Activity 就像一個界面管理員,用戶在界面上的操作是通過 Activity 來管理。
四、 簡答題
1、 請簡要說明 Activity 四種啟動模式的區別。
1、四種啟動模式分別是:
Standard:每當啟動一個新的 Activity,它就會進入任務棧,並處於棧頂的位置,對於使
用 standard 模式的 Activity,系統不會判斷該 Activity 在棧中是否存在,每次啟動都會創
建一個新的實例。
SingleTop:與 standard 類似,不同的是,當啟動的 Activity 已經位於棧頂時,則直接使
用它不創建新的實例。如果啟動的 Activity 沒有位於棧頂時,則創建一個新的實例位於
棧頂。
SingleTask:創建的 Activity 只存在一個實例。已經存在則直接使用該實例,並將當前
Activity 之上的所有 Activity 出棧,如果沒有發現則創建一個新的實例。
singleInstance:啟動一個新的任務棧管理 Activity
2、 請簡要說明 Activity 的三種狀態以及不同狀態使用的方法。
2、Activity 三種狀態分別是:
運行狀態:該狀態下可以對界面進行操作
暫停狀態:界面可見但不具有焦點無法點擊
停止狀態:界面不可見,一般在停止狀態時保存數據以防止程序被系統強制殺死。
五、 編程題
1、 請編寫一個程序,通過隱式意圖打開系統中的瀏覽器。
2、 請編寫一個數據傳遞的小程序,要求在第一個界面輸入姓名、年齡,第二個界面上面顯示“恭喜您!來到這個世界 n 年!”。
1.4 習題
一、 填空題
1、 序列化是將對象狀態轉換為 可保持或傳輸___的過程。
2、 Android 中的文件可以存儲在___內存___和___SD 卡___中。
3、 通常情況下,解析 XML 文件有三種方式,分別為 DOM_、SAX、PULL。
4、 SharedPreferences 是一個輕量級的存儲類,主要用於存儲一些應用程序的____ 配置參數__。
5、 Android 中的數據存儲方式有五種,分別是____文件__、Sharedpreferences、Sqlite、網絡、和___ContentProvider。
二、 判斷題
1、 SharedPreferences 本質上是一個 XML 文件,以 Map<Object,Object>形式存入文件中( √)。
2、 文件存儲是通過 I/O 流的形式把數據存儲到文檔中( √)。
3、 XML 文件只能用來保存本地數據,不能在網絡中傳輸( ×)。
4、 ContentProvider 表示內容提供者,用於顯示程序中的數據( ×)。
5、 當用戶將文件保存至 SD 卡時,需要在清單文件中添加權限"android.permission.
WRITE_EXTERNAL_STORAGE"(√ )。
三、 選擇題
1、 下列文件操作權限中,指定文件內容可以追加的是( C)。
A、 MODE_PRIVATE B、MODE_WORLD_READABLE C、MODE_APPEND D、MODE_WORLD_WRITEABLE
2、 下列代碼中,用於獲取 SD 卡路徑的是(D )。
A、 Environment.getSD ();
B、 Environment.getExternalStorageState();
C、 Environment.getSDDirectory();
D、 Environment.getExternalStorageDirectory();
3、 下列選項中,關於文件存儲數據的說法錯誤的是(D )。
A、 文件存儲是以流的形式來操作數據的
B、 文件存儲可以將數據存儲到 SD 卡中
C、 文件存儲可以將數據存儲到內存中
D、 Android 中只能使用文件存儲數據
1、下列選項中,關於 XML 序列化和解析描述合理的是(ABD )。
A、 DOM 解析會將 XML 文件的所有內容以文檔樹方式存放在內存中
B、 在序列化對象時,需要使用 XmlSerialize 序列化器,即 XmlSerializer 類
C、 XmlSerializer 類的 startDocument()方法用於寫入序列號的開始節點
D、 XmlSerializer 類的 setOutput()方法用於設置文件的編碼方式
5、如果要將程序中的私有數據分享給其他應用程序,可以使用的是(C )。
A、文件存儲 B、SharedPreferences C、ContentProvider D、SQLite
四、 簡答題
1、 請簡述 Android 系統中的五種數據存儲方式各自的特點。
1、五種存儲方式各自的特點分別是:
文件存儲:可以存儲較大文件,以 IO 流形式傳輸數據。
Sqlite:占用內存小,所有文件都存放在單一文件中。
網絡:通過網絡將數據傳輸到服務器存儲,避免了客戶端的安全隱患。
Sharedpreference:使用方便,可以存儲配置信息,以鍵值對的形式存於內存中
ContentProvider:提供自身暴漏的數據給第三方應用使用,統一了數據訪問格式,以數據庫
形式保存數據。
2、 請簡述 SharedPreferences 如何存儲數據。
使用 Sharedpreference 儲存數據時因為它本身沒有寫文件的功能,因此需要使用 Editor 對象
將數據存入內存,比如:
SharedPreferences sp = getSharedPreferences(“config”, 0);
Editor editor = sp.edit();
editor.putString(“a”, “a”);
editor.commit();
五、 編程題
1、 請自定義一個 XML 文件,並將 XML 文件中的內容解析出來。
2、 請編寫一個短信草稿箱的程序,要求用戶在文本編輯框中輸入短信內容后,點擊“保存短信” 按鈕,將短信保存在 SharedPreferences 中。
1.5 習題
一、填空題
1、 ListView 常用的適配器有三種,分別是___BaseAdapter__、SimpleAdapter___和___ArrayAdapter。
2、 創建數據庫以及數據庫版本更新需要繼承____ SQLiteOpenHelper__。
3、 SQLite 創建時調用___onCreate()方法,升級時調用___onUpgrade()方法。
4、 要查詢 SQLite 數據庫中的信息需要使用 Cursor___接口,使用完畢后調用___close()關閉。
5、 創建 ListView 的布局界面必須通過 Id____屬性才能使數據顯示在界面上。
二、判斷題
1、 SQLite 數據庫使用完后不需要關閉,不影響程序性能( ×)。
2、 使用 ListView 顯示較為復雜的數據時最好用 ArrayAdapter 適配器(× )。
3、 SQLite 即支持 Android 的 API 又支持 SQL 語句進行增刪改查操作( √)。
4、 使用 BaseAdapter 控制 ListView 顯示多少條數據是通過 getView()方法設置(× )。
5、 SQLite 支持 NULL、INTEGER、REAL、TEXT 和 BLOB 五種數據類型( √)。
三、選擇題
1、 使用 SQLite 數據庫進行查詢后,必須要做的操作是(AC )。
A、 關閉數據庫 B、直接退出 C、關閉 Cursor D、使用 quit 函數退出
2、 關於適配器的說法正確的是(B )。
A、 它主要用來存儲數據 B、它主要用來把數據綁定在組件上
C、它主要用來存儲 XML 數據 D、它主要用來解析數據
3、 使用 SQLiteOpenHelper 類的( )方法可以創建一個可寫的數據庫對象。(B )
A、 getDatabase() B、getWriteableDatabase()
C、getReadableDatabase() D、getAbleDatabase()
4、 下下列命令中,屬於 SQLite 下的命令是(C )。
A、 shell B、push C、quit D、keytool
5、 下列關於 ListView 使用的描述中,不正確的是(B )。
A、 要使用 ListView,則必須使用 Adapter 進行數據適配
B、 要使用 ListView,該布局文件對應的 Activity 必須繼承 ListActivity
C、 ListView 中每一項的視圖布局既可以使用內置的布局,也可以使用自定義的布局方式
D、 要實現 ListView 的條目點擊,就需要實現 OnItemClickListener 接口
四、簡答題
1、 請簡要說明 SQLite 數據庫創建的過程。
1、首先創建一個類繼承 SQLiteOpenHelper,重寫 onCreate()方法並在該方法中創建表,使用創
建出的 SQLiteOpenHelper 的子類對象的 getWritableDatabase()方法獲得一個可讀寫的數據庫
對象。
2、 請簡要說明 BaseAdapter 適配器四個抽象方法以及它們的具體作用。
四個抽象方法分別是:
getCount:得到 Item 的總數
getItem:根據 position 得到某個 Item 的對象
getItemId:根據 position 得到某個 Item 的 id
getView:得到相應 position 對應的 Item 視圖,position 當前 Item 的位置,convertView
復用的 View 對象。
五、編程題
1、 請使用 ListView 顯示 10 行數據在界面上,分別用三種適配器實現。
2、 請創建一個 fruit.db 表,在表中存入五種水果信息,並將這些信息顯示到 ListView 控件中。
1.6 習題
一、填空題
1、 ContentProvider 匹配 Uri 需要使用的類是 UriMatcher__。
2、 使用內容觀察者時,調用____ onChange()方法可以得到數據變化的信息。
3、 ContentProvider 提供了對數據增刪改查的方法,分別為_ insert___、delete__、update___和___query。
4、 ContentProvider 用於___ 保存___和____檢索__數據,是 Android 中不同應用程序之間共享數據的接口。
5、 在應用程序中,使用 ContentProvider 暴露自己的數據,通過___ContentResolver___對暴露的數據進行操作。
二、判斷題
1、 ContentProvider 所提供的 Uri 可以隨便定義( ×)。
2、 ContentResolver 可以通過 ContentProvider 提供的 Uri 進行數據操作(√)。
3、 ContentObserver 觀察指定 Uri 數據發生變化時,調用 ContentProvider 的 onChange 方法( √)。
4、 使用 ContentRsolver 操作數據時,必須在清單文件進行注冊(× )。
5、 ContentProvider 與 Activitry 一樣,創建時首先會調用 onCreate()方法(√ )。
三、選擇題
1、 下列選項中,屬於 Android 中四大組件的是(AC )。
A、 Activity B、ContentReceiver C、Service D、ContentObserver
2、 下列關於 ContentResolver 的描述,錯誤的是(C )。
A、 可以操作數據庫數據 B、操作其他應用數據必須知道包名
C、不能操作 ContentProvider 暴露的數據 D、可以操作 ContentProvider 暴露的數據
3、 下列關於內容提供者的描述,正確的是(ACD )。
A、 提供的 Uri 必須符合規范 B、可以提供本應用所有數據供別人訪問
C、必須在清單文件注冊 D、authorities 屬性必須和包名一致
4、 繼承 ContentProvider 類必須重寫它的什么方法(AB )。
A、 delete() B、insert() C、onStart() D、onUpdate()
5、 下列關於內容觀察者的說法,正確的是(C )。
A、 可以觀察任何數據 B、觀察其他應用數據需要權限
C、只能觀察到指定 Uri 的數據 D、觀察其他應用數據必須在清單文件注冊
四、簡答題
1、 請簡要說明 ContentProvider 對外共享數據的好處。
通過 ContentProvider 共享數據統一了數據訪問方式,使用起來更規范,通過數據庫存儲並指
定了 URI,只有通過特定 URI 才能訪問數據,使數據更安全。
2、 請簡要說明 ContentProvider、ContentResolver 和 ContentObserver 之間的聯系。
ContentProvider 可以共享自己的數據給外部應用訪問,要訪問 ContentProvider 暴漏的數據就
要用到 ContentResolver。而 ContentObserver 就相當於中間人的角色,它可以事實監聽
ContentProvider 的 數 據 是 否 發 生 變 化 , 如 果 發 生 變 化 就 會 觸 發 onChange() 方 法 ,
Contentresolver 可以在 onChange()方法中查詢的哪些數據發生了變化再對數據進行操作。
五、編程題
1、 使用 ContentProvider 管理聯系人信息,將聯系人信息展示在界面上。
2、 獲取系統圖庫的信息,使用 ContentProvider 制作本地圖片查看器。
1.7 習題
一、填空題
1、 廣播接收者有在清單文件,使用___ receiver___注冊。
2、 終止廣播需要使用___ abortBroadcast()方法。
3、 廣播的發送有兩種形式,分別為_ 有序廣播__和___無序廣播___。
4、 代碼注冊廣播需要使用___ registerReceiver___方法,解除廣播需要使用___unregisterReceiver___方法。
5、 指定發送有序廣播的方法是___ sendOrderedBroadcast()。
二、判斷題
1、 每一個廣播只能有一個廣播接收者接收(× )。
2、 廣播接收者是四大組件之一,必須要在清單文件中注冊(√)。
3、 一個清單文件中只能注冊一個廣播接收者( ×)。
4、 可以在 BroadcastReceiver 的 onReceive 方法中處理耗時復雜的業務( ×)。
5、 廣播接收者注冊后必須要手動關閉(× )。
三、選擇題
1、 繼承 BroadcastReceiver 會重寫哪一個方法(A )。
A、 onReceiver() B、onUpdate() C、onCreate() D、onStart()
2、 關於廣播的作用,說法正確的是(AC )。
A、 它主要用來接收系統發布的一些消息的 B、它可以進行耗時的操作
C、它可以啟動一個 Activity D、廣播接收者不需要注冊
3、 下列方法中,用於發送一條有序廣播的是(B )。
A、 startBroadcastReceiver() B、sendOrderedBroadcast()
C、sendBroadcast() D、sendReceiver()
4、 在清單文件中,注冊廣播時使用的節點是( C)。
A、 B、 C、 D、
5、 關於 BroadcastReceiver 說法不正確的是(B )。
A、 用於接收系統或程序中的廣播事件
B、 一個廣播事件只能被一個廣播接收者所接收
C、 對有序廣播,系統會根據接收者聲明的優先級別按順序逐個執行接收者
D、 接收者聲明的優先級別在 android:priority 屬性中聲明,數值越大優先級別高
四、簡答題
1、請說明注冊廣播有幾種方式,這些方式有何優缺點。 2、請簡要說明接收系統廣播時哪些功能需要使用權限。
1、 注冊廣播有兩種方式。
非常駐型廣播:這種廣播依賴於注冊廣播的組件的生命周期,例如,在 Activity 中注冊
廣播接收者,當 Activity 銷毀后廣播也隨之被移除。
常駐型廣播:當應用程序關閉后,如果接收到其他應用程序發出的廣播,那么該程序
會自動重新啟動。但是 4.0 以上的系統中如果安裝了應用但是沒有打開過,當有廣播發
出時應用也接收不到廣播信息。
2、 撥打電話:
發送短信:
設備開機:
< uses-permission android:name=android.permission.RECEIVE_BOOT_COMPLETED />
電池電量低:
五、編程題
1、 請編寫程序,監控手機電量,當電量小於百分之 15 時進行提示。
2、 請編寫程序,根據關鍵詞過濾經常接收到的騷擾短信。
1.8 習題
一、 填空題
1、 在創建服務時,必須要繼承___ Service___類。
2、 綁定服務時,必須要實現服務的___ onBind()方法。
3、 在清單文件中,注冊服務時應該使用的節點為 。
4、 服務的開啟方式有兩種,分別是____ startService()和___bindService()。
5、 在進行遠程服務通信時,需要使用_ AIDL____接口。
二、 判斷題
1、 以綁定方式開啟服務后,服務與調用者沒有關系(× )。
2、 服務的界面可以設置的很美觀( ×)。
3、 以綁定方式開啟服務后,當界面不可見時服務就會被關閉(× )。
4、 在服務中可以處理長時間的耗時操作( √)。
5、 服務不是 Android 中的四大組件,因此不需要在清單文件中注冊(× )。
三、 選擇題
1、 使用 startService()方法啟動服務時,執行的生命周期方法有(ABD )。
A、 onCreate() B、onDestory() C、onResume() D、onStartCommand()
2、 下列選項中,屬於綁定服務的特點的是( ABC)。
A、 以 bindService()方法開啟 B、調用者關閉后服務關閉
C、必須實現 ServiceConnection() D、使用 stopService()方法關閉服務
3、 Service 與 Activity 的共同點是( AC)。
A、 都是四大組件之一 B、都有 onResume()方法
C、都需要注冊 D、都可以自定義美觀界面
4、 下列方法中,不屬於 Service 生命周期的中的是(AC )。
A、 onResume() B、onStart() C、onStop() D、onDestory()
5、 關於 Service 生命周期的 onCreate()和 onStart()方法,說法正確的是(BD )。
A、 如果 Service 已經啟動,將先后調用 onCreate()和 onStart()方法
B、 當第一次啟動的時候先后調用 onCreate()和 onStart()方法
C、 當第一次啟動的時候只會調用 onCreate()方法
D、 如果 Service 已經啟動,只會執行 onStart()方法,不再執行 onCreat()方法
四、 簡答題
1、 請簡要說明使用 AIDL 訪問遠程服務的步驟。
1、使用 AIDL 接口實現通信的步驟如下:
在需要被調用的服務的項目中創建 AIDL 接口;
創建相應的服務
創建第二個項目用於調用服務。將服務中的 aidl 接口拷貝到第二個項目中,包名要和服
務中的包名一致。
2、 請簡要說明 Service 的幾種啟動方式以及他們特點
服務兩種啟動方式,分別是:
Start 方式啟動:服務與調用者沒有絕對關聯,當調用者關閉后服務還會一直在后台運行。
Bind 方式啟動:服務與調用者的生命周期所關聯,當調用者關閉時,服務也會關閉。
五、 編程題
1、 請編寫程序,要求當程序關閉 10 秒鍾后重啟該程序。
2、 請編寫兩個程序,一個作為服務端,一個作為客戶端,在客戶端中訪問服務端程序時傳入 int 值參數,參數必須大於 500 才能訪問。