第1章 Android基礎入門
習題
一、 填空題
2. Android底層是基於【Linux 】操作系統的。
3. Android系統采用分層架構,由高到低分別為應用程序層、應用程序框架層、【核心類庫
】、【Linux內核】。
5. Android工程中src目錄下存放【Java】文件。
二、 判斷題
1. Android是Google公司基於Linux平台開發的手機及平板電腦操作系統。 √
4. 在創建Android工程時,填寫的Package Name表示工程的名稱。×
5. Android 工程中AndroidManifest.xml文件是整個程序的配置文件。√
三、 選擇題
4. 下列關於Android起源的說法中,錯誤的是( A )。
A.Android1.5被稱為甜甜圈 B.Android是第一個真正為手機打造的開放性系統
C.Android本意指“機器人” D.Android最初由Andy Rubin開發的
5. 下列選項中不屬於Android體系結構的是( D )。
A.應用程序層 B.應用程序框架層
C.核心類庫 D.WindowManager;
四、 簡答題
1. 請簡要說明Android程序結構中AndroidManifest.xml的功能?
該文件是整個項目的配置文件,在程序中定義的四大組件都需要在這個文件里注冊,另外還可以在這個文件中給應用程序添加權限聲明,也可以重新指定創建項目時程序最低兼容的版本和最高版本。在清單文件配置的信息會配置到Android系統中,當程序運行時,系統會先找到清單文件中配置的信息然后根據設置的信息打開相應的組件。
第2章 Android UI開發
習題
一、 填空題
1. 網格布局使用的標簽是【GridLayout 】。
3. 在Android系統中,線性布局使用【 LinearLayout 】控件表示。
5. 在【EditText】控件中可以輸入文字,並且可以通過inputType屬性控制輸入的內容只能是數字或者字母等。
二、 判斷題
1. 相對布局中的控件都是按照相對位置擺放的。√
2. Android UI開發中,相對布局通常有兩種形式,一種是相對於容器而言的,一種是相對於控件而言的。√
3. Android UI開發中,線性布局默認為垂直顯示。×
4. TableLayout可以將視圖按照行、列進行排列。√
5. 幀布局在界面上是一幀一幀顯示的。√
三、 選擇題
1. 在下列選項中,設置GridLayout中的某控件占3行的是(B )。
A.android:rowSpan="3" B.android:layout_rowSpan="3"
C.android:layout_columnSpan="3" D.android:layout_column="3"
2. 在Android UI開發中,常見的刮刮卡是通過( A )實現的。
A.FrameLayout B.LinearLayout C.RelativeLayout D.TableLayout
3. Android相對布局中,使控件相對父控件底部對齊使用的屬性是( A )。
A.android:layout_alignParentBottom B.android:layout_alignBottom
C.android:layout_alignBaseline D.android:layout_alignParentTop
4. 在下列選項中,設置線性布局方向的屬性是( A )。
A.orientation B.gravity C.layout_gravity D.padding
5. Android UI開發中,TableLayout的stretchColumns屬性表示(D )。
A.TableLayout的列數 B.TableLayout的行數
C.TableLayout最多能加入的列數 D.拉伸指定列填充滿TableLayout
第3章 Activity
習題
一、 填空題
1. 通過【getIntent() 】方法可以獲取到Intent對象。
2. 【ProgressBar】控件通常用於顯示進度信息。
3. 在Android中通常使用【Intent 】傳遞數據。"
5. 打開Activity的界面時會執行onCreate,onStart,【onResume】 三個方法。
二、 判斷題
1. 在目標Activity中,通常使用setResult方法設置返回數據。√
2. 使用Intent不能傳遞Parcelable類型的對象。×
3. 啟動系統相機使用的action是android.media.action.VIDEO_CAPTURE。×
4. Activity必須在AndroidManifest.xml文件中注冊才能運行。√
5. 使用Intent傳遞數據只需調用putExtra()方法將想要存儲的數據存在Intent中即可。√
三、 選擇題
1. 在下列選項中,Activity獲得焦點時執行方法是( B )。
A. onStart() B. onResume() C. onPause() D. onDestroy()
2. 在下列選項中,設置ProgressBar的最大進度的方法是( A )。
A. setMax() B. setProgress() C. setCurrentProgress () D. setTotalProgress()
3. Android使用( A )的方式來管理Activity的實例。
A. 任務棧 B. 任務堆 C. 隊列 D. 任務列
4. 在下列選項中, 重新打開最小化的Activity界面時執行的方法是(A )。
A. onRestart、onResume B. onCreate、onStart
C. onRestart、onStart D. OnPause、 onDestroy
5. 下列不是onActivityResult()方法參數的是( D )。
A. requestCode B. resultCode C. data D. result
第4章 數據存儲
習題
一、 填空題
1. 在Android中有【五】種存儲數據的方式。
2. Android中常見數據存儲方式有【ContentProvider、SQLite、文件存儲、SharedPreferences、網絡存儲】。
3. 使用文件存儲數據時,文件存儲在軟件的【/data/data/包名/files/】目錄下。
5. 在Activity中,可以使用【openFileOutput()】方法可以打開/data/data/包名/files/a.txt文件的輸出流對象。
二、 判斷題
1. Android中數據存儲方式只有一種。×
2. Android中數據只能存儲到sd卡上。×
3. 在/data/data/包名/cache目錄下可以cache軟件的緩存數據,當清除緩存時數據就會刪除。√
4. 在Android中存儲數據時,可以使用SQL Server數據庫。×
5. Android中使用openFileOutput(String name,int mode)方法獲取到文件輸出流時, 第二個參數mode常用模式有4種。√
三、 選擇題
1. 在下列選項中,Android中的五大存儲數據方式不包括(D)。
A.文件 B.SQLite數據庫 C.SharedPreferences D.Map
4. Android中使用openFileOutput(String name,int mode)方法獲取到文件輸出流時, 第二個參數mode常用模式有( A )。
A. MODE_PRIVATE B. MODE_APPEND
C. MODE_WORLD_READABLE D. MODE_WORLD_WRITEABLE
四、 簡答題
1. 請簡要寫出如何使用SharedPreferences存儲數據。
第1步:得到SharedPreferences對象
SharedPreferences sp = this.getSharedPreferences("info", Context.MODE_PRIVATE);
第2步:獲得SharedPreferences的編輯器
Editor editor = sp.edit();
第3步:使用editor存儲數據
editor.putString("name", username);
第4步:提交保存數據
editor.commit();
第5章 SQLite數據庫
習題
一、 填空題
2. 在Android中, 需要使用【數據適配器】給ListView填充數據。
3. BaseAdapter中的getCount( )方法作用是【返回ListView顯示的條目個數 】。
4. Android中,通常使用【sqlite3】命令行工具操作SQLite數據庫。
5. Android中用到的數據庫是【SQLite】
二、 判斷題
2. 關於Android中操作數據庫, SQLiteOpenHelper類是用於操作數據庫的。×
3. 使用SQLiteDatabase的execSQL()方法可以實現數據庫表增刪改的操作。√
4. ListView通常用於在界面上顯示一個垂直滾動的列表。√
5. Android 中ListView控件顯示數據和TextView一樣。×
三、 選擇題
2. 在下列選項中,用來給ListView填充數據的方法是( A )。
A. setAdapter() B. setDefaultAdapter() C. setBaseAdapter() D. setView()
3. 在下列選項中,用於查詢數據的方法是( C )。
A. update B. insert C. query D. delete
5. Android系統中使用的數據庫是( D )。
A. Oracel B. SQLServer C. MySQL D. SQLite
四、 簡答題
1. 請簡要寫出如何使用ListView在界面顯示數據列表。
1、在布局文件中使用控件ListView
<ListView android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/lv" />
2、在代碼中聲明並初始化ListView對象
ListView lv = (ListView) findViewById(R.id.lv);
3、給ListView填充數據
lv.setAdapter(new MyAdapter());
4、自定義數據適配器類,繼承BaseAdapter類,實現其中的getCount()方法和getView()方法。
第6章 內容提供者
習題
一、 填空題
1. 在短信接收器案例中,注冊短信內容觀察者時,使用的到Uri是【Content://sms/】。
2. 在Android中,通常使用【ContentResolver】調用內容提供者。
3. 創建一個內容提供者類AccountContentProvider,需要讓它繼承父類【ContentProvider】。
4. Android中通過內容提供者來讀取聯系人信息,【data】表用來保存聯系人信息的。
5. 內容觀察者是通過觀察【指定的Uri】來觀察數據庫的變化。
二、 判斷題
1. ContentResolver是通過Uri匹配內容提供者的。√
2. 聯系人信息是存放在數據庫的sms表中的。×
3. Uri是指統一資源標示符。√
4. Android中創建內容提供者要繼承ContentObserver。×
5. Android中的內容觀察者是Android的四大組件之一。×
三、 選擇題
1. 短信的內容提供者是( C )。
A. ContactProvider B. MessageProvider
C. SmsProvider D. TelephonyProvider
2. 可以在Activity中得到ContentResolver實例對象的方法是( B )。
A. new ContentResolver() B. getContentResolver()
C. newInstance() D. ContentUris.newInstance()
3. 利用內容解析者查詢短信數據時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/”)
4. 在Provider的節點中,用來指定內容提供者的主機名的屬性是( B )。
A. android:name B. android:authorities C. android:process D. android:label
5. 在下列選項中,關於內容提供者的說法錯誤的是( D )。
A. ContentProvider 是一個抽象類,只有繼承后才能使用。
B. 內容提供者只有在AndroidManifest.xml文件中注冊后才能運行。
C. 內容提供者為其它應用程序提供了統一的訪問數據庫的方式。
D. 內容提供者不是抽象類。
四、 簡答題
1. 請簡要介紹一下Android中內容提供者的作用。
內容提供者主要作用是實現對外共享數據,其他應用可以通過內容解析者來訪問通過內容提供者暴露出來的數據。
在Android開發中,經常需要訪問其他應用程序的數據。例如,使用支付寶轉賬時需要填寫收款人的電話號碼,此時就需要獲取到系統聯系人的信息。獲取訪問系統短信的信息,為了實現這種跨程序共享數據的功能,Android系統提供了一個組件叫做內容提供者。
第7章 廣播接收者
習題
一、 填空題
1. sendBroadCast是發送【 無序 】廣播。
2. 【abortBroadcast()】方法可以用來攔截有序廣播,終止廣播。
3. 采用代碼【registerReceiver 】方式可以動態的注冊廣播接收者。
4. 廣播分【 有序 】廣播和【無序 】廣播。
5. 注冊系統短信到來的廣播事件類型的action是【android:name="android.provider.Telephony.SMS_RECEIVED"】。
二、 判斷題
1. 注冊系統短信到來的廣播事件不需要接收短信的權限。×
2. 有序廣播和無序廣播都可以被攔截。×
3. 有序廣播配置優先級對應的屬性是property。√
4. 發送自定義廣播可以通過sendbroadCast()方法進行發送。√
5. 代碼注冊廣播需要調用registerReceiver()方法。√
三、 選擇題
1. 關於sendBroadcast()方法說法正確的是( B )。
A. 該方法是發送一條有序廣播 B. 該方法是發送一條無序廣播
C. 該方法即是發送有序廣播也可以發送無序廣播 D. 以上說法都不正確
2. 關於有序廣播和無序廣播說法正確的是( A )。
A. 有序廣播可以被攔截,數據可以被修改,無序廣播數據不可以被攔截,數據不可以被修改。
B. 有序廣播和無序廣播類似。
C. 有序廣播不可以被攔截。
D. 無序廣播是按照優先級進行發送。
3. Android中定義廣播接收者要繼承( A )。
A. BroadCastReceiver B. BroadCast C. Receiver D. BroadCastReboot
4. 有序廣播可以通過以下( D )方法攔截廣播。
A. abort( ) B. abortReceiver( ) C. abortReceiver( ) D. abortBroadcast( )
5. 注冊一個短信到來的廣播事件需要在清單文件配置什么權限( C )。
A. <uses-permission android:name="android.permission.SMS"/>
B. <uses-permission android:name="android.permission.SEND_SMS"/>
C. <uses-permission android:name="android.permission.RECEIVE_SMS"/>
D. <uses-permission android:name="android.permission.RECEIVE_SEND_SMS"/>
四、 簡答題
1. 請簡要說明有序廣播和無序廣播的區別
無序廣播是一種完全異步執行的廣播,在廣播發出去之后,所有監聽了這個廣播事件的廣播接收器幾乎都會在同一時刻接收到這條廣播,他們之間沒有任何先后順序可言,這種廣播的效率會比較高,但同時意味着它是無法被截斷的。
有序廣播則是一種同步執行的廣播,在廣播發出之后,同一時刻只會有一個廣播接收器能夠接收到這條消息,當這個廣播接收器中的邏輯執行完畢后,廣播才會繼續傳遞。所以此時的廣播接收器是有先后順序的,並且可以被攔截。
第8章 服務
習題
一、 填空題
1. Android進程間通信(IPC)可以通過【 AIDL 】技術來進行通信。
2. 通過bindService方式開啟的服務,【unbindService()】方法可以進行解綁服務。
3. Android中有【startService()】方式開啟服務和【bindService()】方式開啟服務。
4. 在Android中,用於管理后台服務的控件是【Service】。
5. 采用startService()方法開啟服務,肯定會調用【onCreate()】方法。
二、 判斷題
1. 遠程服務是指運行在Tomcat上的服務。×
2. AIDL用於解決進程間通信問題。√
3. Android中服務的生命周期和Activity的生命周期一樣。×
4. Android中服務是四大組件之一。√
5. Android中創建服務組件需要繼承Service類。√
三、 選擇題
1. 通過bindService方式開啟服務,服務生命周期是( C )。
A. onCreate()àonStart()àonBind()àonDestroy()
B. onCreate()àonBind()àonDestroy()
C. onCreate()àonBind()àonUnBind()àonDestroy()
D. onCreate()àonStart()àonBind()àonUnBind()àonDestroy()
2. 以startService開啟服務以下說法正確的是( A )。
A. startService方式開啟服務,服務一旦被開啟,服務就會在后台長期運行。
B. 服務開啟后只能關機后才能關閉服務。
C. 服務不需要在清單文件里注冊。
D. 服務停止時會調用onStop()。
3. 關於Service和Thread的區別說法,不正確的是( B )。
A. service默認運行在聲明它的應用進程的主線程中。
B. service里可以執行密集運算或阻塞操作。
C. 可以在Service里創建一個Thread。
D. 當有耗時或阻塞的操作時應該在其中創建一個線程。
4. 關於AIDL描述錯誤的是( D )。
A. AIDL全稱是Android interface definition Language。
B. AIDL出現目的是解決進程間通信。
C. AIDL定義接口的源代碼必須以.aidl結尾。
D. AIDL語言就是java語言的演變。
5. 關於服務的創建說法錯誤的是( D )。
A. Android中創建服務需要繼承Service類。
B. Android中的服務需要在清單文件配置。
C. Android中的服務可以理解成是在后台運行且沒有界面的activity。
D. Android中定服務能做的事情完全可以開一個子線程替代。
四、 簡答題
1. 請簡要介紹一下服務的生命周期的回調函數
onCreate():第一次創建服務時執行的方法。
onDestory():服務被銷毀時執行的方法。
onStartCommand():客戶端通過調startService(Intent service)顯式啟動服務時執行該方法。
onBind():客戶端通過調用bindService(Intent,Service,int)啟動服務時執行該方法。
onUnbind():客戶端調unBindService(ServiceConnection conn)斷開服務時執行的方法。
第9章 網絡編程
習題
一、 填空題
1. Andoid中使用【 XmlPullParser 】方式進行xml的解析。
2. 在進行多線程下載時,用到的隨機文件存儲的類是【RandomAccessFile】。
3. 采用post方式提交數據原理是【是以流的形式把數據寫給服務器 】。
4. Androi中線程之間傳遞消息使用的是【Message】對象。
5. HTTP協議中,數據提交方式有兩種,分別是【Get】和【Post】。
二、 判斷題
1. 多線程下載請求服務器資源返回的狀態碼是206。√
2. 使用httpclient方式只能進行post方式提交。×
3. BitmapFactory位圖工廠類可以直接將流轉換為bitmap格式。√
4. Android客戶端訪問網絡發送HTTP請求只可以使用HttpUrlConnection。×
5. RandomAccessFile類的實例支持對隨機訪問文件的讀取和寫入。×
三、 選擇題
1. 多線程下載設置Range頭信息代表( A )。
A. 代表告訴服務器每個線程下載的開始位置和結束位置。
B. 代表告訴服務器線程下載的開始位置。
C. 代表告訴服務器下載的結束位置。
D. 以上都不正確。
2. 以下是Android中用於xml解析方式的是( C )。
A. SAX B. DOM C. XmlPullParser D. Juint
3. 關於Android中消息機制說法正確的是( B )。
A. Handler只能用來發送消息。
B. Handler是用來發送消息和處理消息的。
C. MessageQueue是用來收集消息並主動發送消息。
D. Looper是主消息的循環器.Looper是由handler創建的。
4. 做網絡圖片查看器的時候,需要把獲取的流信息轉換為( C )。
A. String B. int C. Bitmap D. text
5. 關於HttpClient使用說法錯誤的是( A )。
A. 獲取HttpClient實例可以直接new HttpClient()。
B. 獲取到HttpClient實例client后,想執行get請求,client.execute(httpGet),然后封裝HttpGet。
C. 使用HttpClient方式進行post請求需要封裝HttpPost實例。
D. UrlEncodedFormEntity是將提交給服務器參數進行編碼的類。
四、 簡答題
1. 簡單介紹一下get方式和post方式提交數據的區別。
GET方式是以實體的方式得到由請求URL所指向的資源信息,它向服務器提交的參數跟在請求URL后面。使用GET方式訪問網絡URL的長度是有限制的。HTTP協議規定GET方式請求URL的長度不超過4k。但是IE瀏覽器GET方式請求URL的長度不能超過1k,為了兼容,因此 GET方式請求URL的長度要小於1K。
POST方式用來向目的服務器發出請求,要求它接受被附在請求后的實體。它向服務器提交的參數在請求后的實體中,它提交的參數是瀏覽器通過流的方式直接寫給服務器的。此外,POST方式對URL的長度是沒有限制的。
第10章 高級編程
習題
一、 填空題
1. 【 Canvas 】類代表畫布,通過該類提供的方法,可以繪制各種圖形(如矩形、圓形、線條等)。
2. Android中【Paint】類代表畫筆,用來描述圖形的顏色和風格,如線寬、顏色、透明度和填充效果等信息。
3. MeidiaPlayer播放視頻使用【SurfaceView】組件進行顯示視頻。
4. 使用VideoView播放視頻,設置從指定位置開始播放的方法是【seekTo()】。
5. Fragment【OnCreateView()】生命周期方法是用來加載Fragment的View。
二、 判斷題
1. 在Android中,補間動畫會改變控件真實的坐標。×
2. 用SoundPool播放出來的效果和MediaPlayer播放出來的效果一樣。×
3. Fragment是在Android3.0被引入的,如果想兼容低版本的手機可以使用V4包中的Fragment。√
4. Fragment的生命周期和Activity的生命周期完全一樣。×
5. Android對圖像進行顏色方面的處理,通過使用ColorMatrix來實現。√
三、 選擇題
1. 下列選擇中,關於Canvas類說法錯誤的是( C )。
A. Canvas代表畫布 。
B. Canvas可以繪制各種各樣的圖形,如矩形。
C. Canvas和Paint作用一樣。
D. Canvas有一個方法drawRect(Rect r ,Paint paint),表示畫出一個指定矩形。
2. 下列選項中,關於Bitmap類描述正確的是( C )。
A. Bitmap類表示畫筆 B. Bitmap類代表畫布
C. Bitmap類是最常用的繪圖類 D. Bitmap類表示位圖工廠
3. 以下MeidiaPlayer的( A )方法是用於設置播放音頻文件的位置
A. setDataSource() B. prepareData() C. start() D. prepareDataSource()
4. 以下Fragment說法錯誤的是( D )。
A. Fragment(碎片)是一種可以嵌入在Activity中的UI片段,它能讓程序更加合理地利用大屏幕空間,因而Fragment在平板上應用的非常廣泛。
B. Fragment與Activity十分相似,它能包含布局,同時也具有自己的生命周期。
C. Fragment在Android 3.0版本才被引入。
D. Fragment的生命周期函數比Activity少很多。
5. 以下Fragment的( D )方法是為Fragment創建視圖(加載布局)時調用。
A. onCreate() B. onCreateView() C. onActivityCreate() D. onAttach()
四、 簡答題
1. 簡單介紹一下使用MediaPlayer播放視頻文件的步驟。
1)定義SurfaceView組件。最好在布局文件中實現。
2)創建MediaPlayer對象,並為其加載要播放的視頻。
3)將所播放的視頻畫面輸出到SurfaceView中。使用MediaPlayer對象的setDisplay方
法,可以將所播放的視頻畫面輸出到SurfaceView。
4)調用MediaPlayer對象的相應方法控制視頻的播放。播放play,暫停,pause,停止stop。