國立空中大學 105 學年度下學期期末考試題【正參】72
科目:行動裝置應用設計與開發 共 3 頁 一、選擇題﹙80%,每題 5 分﹚
1. ( c ) 一個 Android 應用可以含有多少個 Activity? (a).1 (b).3 (c).多 (5-1-1)
2. ( d ) Android Studio 透過下列哪一種功能來達到 Activity 之間的切換執行? (a).fragment (b).activity (c).bundle (d).intent (5-2-2)
3. ( a ) 在 Activity 的生命週期各階段所執行的動作中,下列哪一項在順序上位於最前面?
(a).onCreate( ) (b).onStart( ) (c).onPause( ) (d).onRestart( ) (5-1-2)
4. ( b ) 下列有關於行動裝置資料庫的描述,何者是錯誤的? (a).行動裝置資料庫的資料儲存是永久 性的 (b).行動裝置資料庫的資料無法以一筆一筆資料紀錄的方式進行處理 (c).行動裝置資 料庫的資料可以透過 app 進行處理 (6-1-1)
5. ( c ) 下列有關於行動裝置上資料庫應用的描述,何者是錯誤的? (a).處理的資料量通常不會非常 大 (b).資料的運算通常不會非常複雜 (c).資料都來自網路上的伺服器 (6-1-3)
6. ( c ) 6.0 版的權限管理,不包含下列何者? (a).一般權限 (b).危險權限 (c).特殊權限 (6-1-4) 7. ( a ) 建立 SQLite 資料庫時,若資料庫已經存在則開啟資料庫,是哪一個函式?
(a).openOrCreateDatabase (b).openDatabase (c).CreateDatabase (6-3-4-1)
8. ( c ) 下列哪一項不是行動裝置支援多媒體應用的必備規格或是功能? (a).麥克風 (b).鏡頭 (c).
藍牙通訊 (7-1-1)
9. ( b ) Android 音訊的處理需要使用哪個類別? (a).MPlayer (b).MediaPlayer (c).MidiPlayer (7-2-1)
10. ( c ) 下列哪一項是 Android Studio 中用來處理視訊的元件? (a).OutputBufferedStream (b).setAudioStreamType (c).VideoView (7-3-1)
11. ( b ) 以下有關於行動裝置感應器(sensor)的描述,哪一項是錯誤的? (a).裝置可以將感測的變化量 轉為數值 (b).行動裝置支援所有的感應功能 (c).若未支援特定的感應功能,則無法取得資料 (8-1-1)
12. ( c ) 有關 Android 座標系統,何者不正確? (a).採用 OpenGL ES (b).向右、向上與向前為正向 (c).
螢幕右下角為原點 (8-2-1-1)
13. ( a ) 以下有關於陀螺儀感應器(Gyroscope sensor)的描述,哪一項是錯誤的? (a).values[1]代表沿 X 軸旋轉的弧度 (b).順時針旋轉為負值 (c).記載行動裝置沿 X 軸、Y 軸與 Z 軸旋轉的弧度 (8-3-1-1)
14. ( c ) 下列有關於應用程式介面(API, application program interface)的描述,哪一項是錯誤的? (a).
可以促成程式碼的再用(reuse) (b).可以節省開發的時間 (c).需要花錢購買,而且價格高 (9-1-1)
15. ( b ) Google 地圖的應用程式中需要使用下列何者? (a).GoogleMap 金鑰 (b). API 金鑰 (c).SHA-1 憑證指紋 (9-2-1-2)
16. ( c ) 申請 Google Map API 使用的金鑰時所需要的憑證指紋可以透過下列哪一個指令來產生並取 得? (a).pgp (b).keygen (c).keytool (9-2-1-2)
二、簡答與程式﹙20%,每題 10 分﹚
1. 使用 Google Map 包含哪些的準備工作? (10%) 解答:(9-2-1-1)
建立專案時要選擇新增 Google Maps Activity。
連線到 https://console.developers.google.com 申請 API key。
在專案的 google_maps_api.xml 檔案中輸入申請到的 API key。
開發測試時實機必須上網。
2. 請寫出下列程式碼
(1). 我們建立一個新的專案,使用 Basic Activity,因此會產生主活動 MainActivity.java,在畫面中有一 個按鈕。當我們按下按鈕,會切換到第二個活動的畫面。第二個活動定義在 SecondActivity.java,
畫面中也有一個按鈕,當我們按下按鈕便可以返回到主活動的畫面。
請寫出「主活動」與「第二個活動」中按下按鈕後所執行的程式碼。 (5%)
解答:(5-3-1) 主活動
public void onClick(View v){
Intent intent=new Intent();
intent.setClass(MainActivity.this,SecondActivity.class);
startActivity(intent);
} 第二個活動
public void onClick(View v){
finish();
}
(2). 以下的程式碼先建立 SQLite 的資料表 StockRecord,然後執行 SQL 的 INSERT 指令將兩筆紀錄輸 入到資料表中,二筆資料分別是(台積電, 2330)以及(鴻海, 2317)。
請完成空格方框中的程式碼。 (5%)
public class MainActivity extends AppCompatActivity { private SQLiteDatabase db = null;
private final static String CREATE_TABLE = "CREATE TABLE StockRecord (_id INTEGER PRIMARY KEY, stock_name TEXT, stock_number TEXT)";
ListView listviewDB;
… …
Cursor cursor;
@Override
protected void onCreate(Bundle savedInstanceState) {
…
…
db =openOrCreateDatabase("Stock.db", MODE_PRIVATE, null);
try{
db.execSQL(CREATE_TABLE);
}catch (Exception e){
}
cursor=retrieveAllData();
setupAdapter(cursor);
}
解答:(6-3-3)
db.execSQL("INSERT INTO StockRecord (stock_name,stock_number) values ('台積電',’2330’)");
db.execSQL("INSERT INTO StockRecord (stock_name,stock_number) values ('鴻海',’2317’)");