1. 程式人生 > >Android筆試題大全(持續更新中)

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。