Android筆試題大全(持續更新中)
一、選擇題
1. 下列程式碼的執行結果是:( B )
public class Test3{
public static void main(String args[]){
System.out.print(100%3);
System.out.print(",");
System.out.println(100%3.0);
}
}
A、1,1
B、1,1.0
C、1.0,1
D、1.0,1.0
2. 下列哪些語句關於記憶體回收的說明是正確的? ( B )
A、程式設計師必須建立一個執行緒來釋放記憶體
B、記憶體回收程式負責釋放無用記憶體
C、記憶體回收程式允許程式設計師直接釋放記憶體
D、記憶體回收程式可以在指定的時間釋放記憶體物件
3. Math.round(11.5)等於多少(). Math.round(-11.5)等於多少( C ).
A、11 ,-11
B、11 ,-12
C、12 ,-11
D、12 ,-12
4. 下面不是Android四大元件之一的:( B )
A、Activity
B、Intent
C、Service
D、ContentProvider
5. android 中下列屬於Intent的作用的是( C )
A、實現應用程式間的資料共享
B、是一段長的生命週期,沒有使用者介面的程式,可以保持應用在後臺執行,而不會因為切換頁面而消失
C、可以實現介面間的切換,可以包含動作和動作資料,連線四大元件的紐帶
D、處理一個應用程式整體性的工作
6. 下面關於BroadcastReceiver錯誤的是 ( B )
A、BroadcastReceiver有兩種註冊方式,靜態註冊和動態註冊。
B、BroadcastReceiver必須在AndroidMainfest檔案中宣告
C、BroadcastReceiver的使用,一定有一方傳送廣播,有一方監聽註冊廣播,onReceive方法才會被呼叫。
D、廣播發送的Intent都是隱式啟動。
7. 在手機開發中常用的資料庫是( A )
A、SQLite3
B、Oracle
C、Sql Server
D、Db23
8. Service中如何實現更改Activity介面元素 ( B )
A、通過把當前activity物件傳遞給service物件
B、通過向Activity傳送廣播
C、通過Context物件更改Activity介面元素
D、可以在Service中,呼叫Activity的方法實現更改介面元素
9. 關於ContenValues類說法正確的是( A )
A、他和Hashtable比較類似,也是負責儲存一些名值對,但是他儲存的名值對當中的 名是String型別,而值都是基本型別
B、他和Hashtable比較類似,也是負責儲存一些名值對,但是他儲存的名值對當中的 名是任意型別,而值都是基本型別
C、他和Hashtable比較類似,也是負責儲存一些名值對,但是他儲存的名值對當中的 名,可以為空,而值都是String型別
D、他和Hashtable比較類似,也是負責儲存一些名值對,但是他儲存的名值對當中 的名是String型別,而值也是String型別
10. 下面關於Android dvm的程序和Linux的程序,應用程式的程序說法正確的是( D )
A、DVM指dalivk的虛擬機器.每一個Android應用程式都在它自己的程序中執行,不一定擁有一個獨立的Dalvik虛擬機器例項.而每一個DVM都是在Linux 中的一個程序,所以說可以認為是同一個概念.
B、DVM指dalivk的虛擬機器.每一個Android應用程式都在它自己的程序中執行,不一定擁有一個獨立的Dalvik虛擬機器例項.而每一個DVM不一定都是在Linux 中的一個程序,所以說不是一個概念.
C、DVM指dalivk的虛擬機器.每一個Android應用程式都在它自己的程序中執行,都擁有一個獨立的Dalvik虛擬機器例項.而每一個DVM不一定都是在Linux 中的一個程序,所以說不是一個概念.
D、DVM指dalivk的虛擬機器.每一個Android應用程式都在它自己的程序中執行,都擁有一個獨立的Dalvik虛擬機器例項.而每一個DVM都是在Linux 中的一個程序,所以說可以認為是同一個概念.
11. 下列對SharedPreferences存、取檔案的說法中不正確的是( C )
A、屬於移動儲存解決方案
B、sharePreferences處理的就是key-value對
C、讀取xml檔案的路徑是/sdcard/shared_prefs/
D、資料的儲存格式是xml
12. 使用AIDL 完成遠端 service 方法呼叫下列說法不正確的是?( A )
A、aidl 對應的介面名稱不能與 aidl 檔名相同
B、aidl 的檔案的內容類似 java 程式碼
C、建立一個 Service,在服務的 onBind(Intent intent)方法中返回實現了 aidl 介面的物件
D、aidl 對應的介面的方法前面不能加訪問許可權修飾符
13. 關於JSON和XML說法,錯誤的是( B )
A、JSON的速度要遠遠快於XML
B、JSON對資料的描述性比XML好
C、JSON相對於XML來講,資料的體積小
D、JSON和XML同樣擁有豐富的解析手段
14. 下列不屬於補間動畫相關類的是( B )
A、TranslateAnimation
B、FrameAnimation
C、RotateAnimation
D、AlphaAnimation
15. 關於Handler的說法不正確的是( A )
A、它實現不同程序間通訊的一種機制
B、它避免了在新執行緒中重新整理UI的操作
C、它採用佇列的方式來儲存Message
D、它實現不同執行緒間通訊的一種機制
二、填空題
1. java.io包中的__和__類主要用於對物件(Object)的讀寫。
答案:ObjectInputStream ObjectOutputSteam
2. android 中service的實現方法是:__和___。
答案:startService ,bindService
3. 當啟動一個Activity並且新的Activity執行完後需要返回到啟動它的Activity來執行的回撥函式是_____。
答案:startActivityResult()
4. 程式執行的結果是:____。
public class Example{
String str=new String("good");
char[]ch={'a','b','c'};
public static void main(String args[]){
Example ex=new Example();
ex.change(ex.str,ex.ch);
System.out.print(ex.str+" and ");
Sytem.out.print(ex.ch);
}
public void change(String str,char ch[]){
str="test ok";
ch[0]='g';
}
}
答案:good and gbc
三、簡答程式設計題
1. 請簡述下Android的資料儲存方式。
答:共有五種資料儲存方式。
1.SharedPreferences方式
2.檔案儲存方式
3.SQLite資料庫方式
4.內容提供器(Content provider)方式
5. 網路儲存方式
2. 請簡述下ContentProvider是如何實現資料共享的。
答:建立一個屬於你自己的Content provider或者將你的資料新增到一個已經存在的Content provider中,前提是有相同資料型別並且有寫入Content provider的許可權。
3. 什麼是Intent,如何使用?
答: Android基本的設計理念是鼓勵減少元件間的耦合,因此Android提供了Intent (意圖) ,Intent提供了一種通用的訊息系統,它允許在你的應用程式與其它的應用程式間傳遞Intent來執行動作和產生事件。使用Intent可以啟用Android應用的三個核心元件:活動、服務和廣播接收器。
通過startActivity() orstartActivityForResult()啟動一個Activity;
通過 startService() 啟動一個服務,或者通過bindService() 和後臺服務互動;
通過廣播方法(比如 sendBroadcast(),sendOrderedBroadcast(),sendStickyBroadcast())發給broadcast receivers
4. Activity、Service、BroadcastReceiver的作用。
答:Activity:Activity是Android程式與使用者互動的視窗,是Android構造塊中最基本的一種,它需要為保持各介面的狀態,做很多持久化的事情,妥善管理生命週期以及一些跳轉邏輯
Service:後臺服務於Activity,封裝有一個完整的功能邏輯實現,接受上層指令,完成相關的指令,定義好需要接受的Intent提供同步和非同步的介面
BroadCast Receiver:接受一種或者多種Intent作觸發事件,接受相關訊息,做一些簡單處理,轉換成一條Notification,統一了Android的事件廣播模型
5. 橫豎屏切換時Activity的生命週期
答:切換時的生命週期跟清單檔案裡的配置有關係。
不設定Activity的android:configChanges時,切屏會重新呼叫各個生命週期預設首先銷燬當前activity,然後重新載入
設定Activity android:configChanges=”orientation|keyboardHidden|screenSize”時,切屏不會重新呼叫各個生命週期,只會執行onConfigurationChanged方法。 通常在遊戲開發, 螢幕的朝向都是寫死的。
6. handler機制的原理
答:andriod提供了 Handler 和 Looper 來滿足執行緒間的通訊。Handler 先進先出原則。Looper類用來管理特定執行緒內物件之間的訊息交換(Message Exchange)。
1)Looper: 一個執行緒可以產生一個Looper物件,由它來管理此執行緒裡的Message Queue(訊息佇列)。
2)Handler: 你可以構造Handler物件來與Looper溝通,以便push新訊息到Message Queue裡;或者接收Looper從Message Queue取出)所送來的訊息。
3) Message Queue(訊息佇列):用來存放執行緒放入的訊息。
4)執行緒:UI thread 通常就是main thread,而Android啟動程式時會替它建立一個Message Queue。