Java講義

Size: px
Start display at page:

Download "Java講義"

Transcription

1 Android 講義 目錄 第一章 android 的第一次接觸...3 第一節 Windows 7 安裝 Android SDK 開發環境...3 第一項安裝 jdk...3 第二項設定 jdk 的環境變數...4 第三項安裝 Android SDK...8 第四項安裝 eclipse...11 第五項在 eclipse 安裝 ADT plugin...13 第二節建立 AVD 模擬環境...17 第三節 eclipse 環境設定...22 第四節建立第一個 android 專案...25 第五節擷取 android 裝置的畫面...34 第二章猜數字比大小...37 第一項建立專案...37 第二項建立介面佈面檔...37 第三項主程式...38 第三章使用 WebView 建立程式...41 第一項修改 AndroidManifest.xml 檔案...41 第二項修改 main.xml...42 第三項建立 mainwebview.xml...43 第四項建立 Activity 主程式...43 第五項建立 golink01 程式...45 第六項建立 golink 第四章音樂播放程式...47 第一節最陽春的音樂播放程式...47 第一項建立空白的新專案...47 第二項加入 MediaPlayer 物件...47 第二節改善這個程式...49 第一項瞭解 Activity 的生命週期...49 第二項離開程式時也能停止音樂的播放...52 第三項按下播放按鈕才開始播放...52 第五章 SQLite 資料庫

2 第一節使用 SharedPreferences...56 第一項介面佈局檔...56 第二項建立主程式的內容 儲存偏好設定...56 第三項驗證儲存偏好的動作...58 第四項建立主程式的內容 提取偏好設定...58 第二節簡單使用 SQLite...60 第一項介面佈局檔...60 第二項建立 SQLiteOpenHelper 的子類別...60 第三項修改主程式...61 第四項驗證看看 sqlite3 指令...64 第五項顯示資料表內容...65 第六章 GPS 服務...67 第一節設定 manifest 的使用授權項目...67 第二節建立介面佈局檔...68 第三節建立連結資料庫的 dbhelper...73 第四節建立主程式...74 第五節建立第二個程式 列出歷史資料...80 第一項佈景主題...80 第二項主程式...81 第七章 service...84 第一節建立 MediaPlayer Server...84 第一項修改 androidmanifest.xml 檔案...84 第二項建立 MediaPlayService.java...85 第三項建立主程式

3 第一章 andr oid 的第一次接觸 android 的開發環境 建議使用 jdk eclipse android sdk 的整合開發環境 以下 就分別 來安裝這三個環境 開始 android 的程式設計 第一節 Windows 7 安裝 Android SDK 開發環境 第一項 安裝 jdk 1. 首先 請分別下載 jdk eclipse android-sdk 以下範例統一放置於 D:\apps 目錄裡 2. 請先雙按 jdk 程式 開始安裝動作 安裝過程請按 Next 繼續即可 3

4 3. 安裝完成後 請按 Close 關閉 jdk 第二項 設定 jdk 的環境變數 4. 開啟 Windows 檔案總管 找到 jdk 的安裝目錄 以現有的例子來看 由 C:\Program Files\ 目錄下會找到 Java 的資料夾 底下會有 jdk 與 jre 二個資料夾 請點 選開啟 jdk 的資料夾 再點開其中的 bin 資料夾 這個位置 就是 java 與 javac 執行檔所存放的位置 請將上方網址列選取 按右鍵複製下來 以這個例子來看 複製的位置是 C:\Program Files\Java\jdk1.7.0_07\bin 4

5 5. 在 電腦 / 右鍵 / 內容 6. 點選左方的 進階系統設定 5

6 7. 點選到 進階 標籤頁 再按 環境變數 8. 在下方的 系統變數 這裡 點選 Path 按 編輯 6

7 9. 在 變數值 的最後面 先輸入 ; 半形的分號 再按 Ctrl + V 貼上 將我們前 面所複製的 C:\Program Files\Java\jdk1.7.0_07\bin 位置貼到這裡 完成後 按 確 定 關閉對話框 10. 按下 系統變數 下方的 新增 在對話框的 變數名稱 的欄位裡輸入 JAVA_HOME 在 變數值 的欄位裡輸入 C:\Program Files\Java\jdk1.7.0_07 這個位置是 jdk 的安裝位置 和我們剛才貼到 path 的位置相 比較 只差在 bin 的目錄 如果沒有做這個動作 接下來的 android SDK 就無法安裝哦 7

8 11. 開始 命令提示字元 後 可以分別執行 java -version javac -version 這裡 要能正常顯示版本號碼 第三項 安裝 Android SDK 12. 接下來要安裝 android SDK 在該壓縮檔上按 右鍵 / 7-Zip / 解壓縮至此 8

9 13. 進入解壓縮的 android-sdk-windows 資料夾 雙按執行 SDK Manager.exe 程式 14. 執行這個動作時 請儘量以有線網路連線 勾選要安裝的 android SDK 以這裡為例 最上方的 Tools 一定要勾選 再來就選最 新的版本 我通常還會再勾選 Android 2.1 或 Android 的版本 勾選完成後 請按右下方的 Install xx packages 按鈕 9

10 15. 選擇 Accept All 按 Install 開始安裝 依網路環境連線速率不同 請耐心等待一 些時間 16. 大致的動作和前項說明相同 分別將 C:\android-sdk-windows\tools C:\androidsdk-windows\platform-tools 這二個路徑加到系統環境變數的 Path 項目裡 10

11 第四項 安裝 eclipse 17. 前項 android SDK 安裝完成後 我們要來進行 eclipse 的設定動作 首先 在 eclipse 按 右鍵 / 7-Zip / 解壓縮至此 18. 進行 eclipse 的目錄 雙按執行 eclipse.exe 程式 11

12 19. 指定 eclipse 的工作目錄 我是將它指向到 D:\eclipseWorkspace 如果再勾選 Use this as the default and do not ask again 的話 之後開啟 eclipse 就不會再問我 們這個問題了 按 OK 繼續 20. 這是 eclipse 開啟後的畫面 12

13 第五項 在 eclipse 安裝 ADT plugin 21. 執行 Help / Install New Software 22. 按下右方的 Add 13

14 23. 分別在 Name 輸入 ADT Plugin 在 Location 輸入 勾選這二個選項 按 Next 繼續 14

15 25. 按 Next 繼續 15

16 26. 這裡選擇 I accept the terms of the license agreements 按 Finish 開始安裝動作 27. 按 OK 完成安裝動作 28. 可以開始我們的 android 程式開發工作囉 16

17 第二節 建立 AVD 模擬環境 29. android 程式設計的初期 還不需要實際的裝置 我們可以使用模擬環境來測試 執行 Window / AVD Manager 30. 在這個對話框的標題 就知道 AVD 表示 Android Virtual Device 按右方的 New... 17

18 31. 對話框裡請輸入以下內容 Name 欄位請輸入 AVD2.1 這裡可以自行修正 主要能知道它的版本即可 Target 欄位請選擇 Android 2.1 API Level 7 由於我們前面只安裝 與 2.1 版本的 API 因此這裡應該也只會有這二種類型 如果要使用 版本所提供的 API 這裡就必須選擇相對應的項目 這裡還會看到有 google API 這在後面的例子 會用到 有需要時再建立新的 AVD 即可 SD Card 欄位我設定 256 MB 即可 Skin 欄位請選擇 Built-in 的 HVGA 這個解析度暫時就夠了 其它幾個的解 析度比較高 暫時還不需要 各欄位都設定好之後 按 Create AVD 建立 18

19 32. 只要能在這裡看到我們剛才所建立的 AVD2.1 基本上就表示己經建立完成 我們可以來 測試看看 請點選我們剛才建立的 AVD2.1 再按 Start 按 Launch 繼續 19

20 34. 啟動 AVD 需要一些時間 看到這個視窗 表示我們有一個模擬的 android 裝置可以使用 使用滑鼠按住 AVD 裡的桌面 左右拖曳就可以切換不同的視景 35. 操作上就和真的很類似 用滑鼠將底下的頁籤拉上來 就可以看到各個應用程式 20

21 36. 如果要將 AVD 轉成橫向 可以按 Ctrl + F11 切換 再按一次又可以切換為直向 21

22 第三節 eclipse 環境設定 在正式開發之前 我們先做幾個簡單的環境設定 37. 執行 Window / Preferences 38. 展開 General / Editors / Text Editors 勾選右方的 Show line numbers 可以使 程式碼編輯器顯示行號 22

23 39. 選擇 General / Workspace 在 Text file encoding 這裡 選擇 Other 的 UTF8 可以將 eclipse 裡的程式碼 預設為 utf-8 編碼 將來程式碼移植到不同的系統 可 以正常顯示而不會變成亂碼 23

24 40. 另外 如果將來撰寫程式碼 覺得文字太小 可以在 General / Appearance / Colors and Fonts 這裡設定字型和字型大小 24

25 第四節 建立第一個 android 專案 41. 在 eclipse 裡的程式 大多以專案的型式處理 因此 我們要先建立一個專案 才能在專 案裡再建立程式 請先點選 File / New / Project 42. 選擇 Android / Android Project 按 Next 25

26 43. 在上方的 Project Name 欄位輸入 android001 這是專案名稱 你可以自己設定 專 案名稱的制定有一些共通的規定 建議使用英文 由於我們在練習過程 因此我可能會 再加個流水號 按 Next 繼續 26

27 44. 選擇 Android 2.1 再按 Next 繼續 這裡必須配合 AVD 的環境 因此暫時先使用 Android 2.1 做為開發環境 這個動作 請依你自己的需求選擇 一般來說 選擇 Android 2.1 的話 將近 98% 以上的 android 裝置是可以執行我們的程式的 如果選擇比較新的版本 提供的功 能可能比較多 介面比較華麗 但也比較佔用系統資源 如果你的電腦效率不算很 好的話 建議選擇 Android 2.1 的版本即可 27

28 45. 這裡的各個欄位 請分別填入資料如下 Application Name 欄位應該會預設顯示 Android001 這是我們剛才輸入的專案 名稱 Package Name 欄 位 可 以 自 行 輸 入 這 裡 的 例 子 是 輸 入 為 tw.idv.kingbig.android.test001 這是依建議將網域名稱倒過來輸入 這種方式 很像網域名稱的管理方式 主要的目的是希望全世界 android 開發人員所建立的套 件是唯一的 不會和其他人建立的套件重覆 如果沒有的話 就自行虛擬一個也可 以 勾 選 的 Create Activity 欄 位 就 用 預 設 值 即 可 這 裡 是 用 [Application Name] + Activity 的方式產生的 如果要自行修改也可以 Min SDK Versin 欄位也使用預設值即可 這裡選擇的 7 表示最基本的執行需 求是 Android 2.1 的版本 各欄位設定完成 按 Finish 即可 28

29 46. 新增專案之後 在左方會顯示剛才所新增的專案資料夾 雙按可以將它展開 47. 在專案資料夾底下的 src 資料夾 會有一個 Package Name 欄位所輸入的資料夾 再展 開後 就會看到主程式 在 android 裡的程式 我們稱為 Activity 它還是和 java 一樣 是一個純文字檔案 按 Ctrl + F11 可以執行程式 讓我們試試看 執行第一個專案 29

30 48. 每一個專案 第一次執行時 都會顯示以下視窗 以 android 專案來說 選最上方的 Android Application 再按 OK 鈕繼續 49. 啟動 AVD 需要一些時間 顯示以下視窗的話 將有鎖的圖案拖曳到右方 就可以看到 android 桌面 30

31 50. 顯示第一個專案的執行結果 它在跟我們 say hello 31

32 51. 在 eclipse 的左方 是一個 Package Explorer 以下的視窗內容 我將幾個比較重要 常 用的資料夾展開 分別說明如下 A. src 資料夾 在這個資料夾底下還會有一個 Package Name 的 資 料 夾 在 Package Name 資料夾之下 就是原始程式 也就是 android 的 Activity 目前只有一個 Activity 隨著我們所撰寫的程式功能增加 Activity 的 數量也會越來越多 B. bin 資 料夾 當 我們 按 Ctrl + F11 執 行程 式 eclipse 會將程式編譯為可以在 android 執行 的 apk 檔案 也就是說 只要我們將這個 apk 檔案存放到 android 狀置 就可以執行囉 C. res 資料夾 這是資源存放的資料夾 可以當 作專案裡所有 Activity 可以調用資源的資源池 這裡又可以細分為幾個 以下分別獨立說明 D. res / values 資料夾 就是一個定義 宣告字 串變數的檔案 我們可以將程式裡會使用到 的字串 全部放在這裡宣告 這種做法有個 好處 像是多國語系 或是我們要修改語句 表達的內容 只要來這裡修改就可以 將來 程式的維護更新的工作會方便很多 E. res / layout 資料夾 這是專問負責版面排版 控制的功能 每個 Activity 都有需要在 android 裝置上顯示文字框 訊息框 按鈕...等 都需要控制這些元件擺放的位置 就需要在這裡透過一個 xml 檔案負責各個元件位置的管理 F. res / drawable 資料夾 這裡是存放圖像檔案的 實際上會看到這裡細分為三個資料 夾 分別表示高解析度 中等解析度 低解析度的圖像檔案資源池 如果有圖檔 影像需要跟著程式一起打包的 就放在這裡 G. AndroidManifest.xml 檔案 這不是資料夾 是一個 xml 檔案 這個檔案很重要 前 面說明過 src 資料夾裡是存放 Activity 檔案 但是在這裡專案裡 有那些 Activity 是 可 以 執 行 的 必 須 在 AndroidManifest.xml 檔 案 裡 宣 告 過 的 才 算 數 沒 有 在 AndroidManifest.xml 裡宣告的 Activity 是無法執行的 另外 我們使用 Android 程式 可能都會先說明會需要使用到裝置的網路 GPS 記憶卡...等 也都必須在這裡先 宣告過 Android 裝置才會允許 Activity 存取裝置上的功能 以上的說明很重要 可以讓我們對整個 android 專案結構有個概念上的認識 如果 可以 請再重頭閱讀一篇 相信後續開發 android 程式時 會變的簡單許多 32

33 52. 前項簡單的說明了在 eclipse 環境 所看到各個資料夾的作用 應該還記得 我們將 eclipse 的工作目錄設定在 D:\eclipseWorkspace 資料夾 在這裡 我們和檔案總管 裡的 D:\eclipseWorkspace 實際資料夾的結構互相對照 會發現大部份的架構是相同 的 只有 Package Name 在檔案總管理 會建立為多層的資料夾結構 這也是為了將來 開發多個專案後 能夠有條理 而且方便管理的方式 瞭解 eclipse 與 Windows 檔案總 管的資料夾對照的關係 要存放資源檔案 也可以從這裡著手囉 33

34 第五節 擷取 android 裝置的畫面 不論是實際的 android 裝置 或是 AVD 的虛擬裝置 如果我們需要擷取影像 都可以依照以 下的方式處理 53. 連 結 android 裝 置 或 是 啟 動 AVD 可 以 執 行 Window / Open Perspective / DDMS 切換 eclipse 的操作視景 如 果 在 Window / Open Perspective 沒 有 直 接 看 到 DDMS 視 景 的 話 請 按 Window / Open Perspective / Other 再由對話框選擇 DDMS 視景即可 34

35 54. 在左方的 Devices 頁籤 會看到一個照相機的 icon 點按一下 55. 系統會顯示 Device Screen Capture 對話框 按 Refresh 鈕可以將 android 裝置上的畫面 重新擷取更新過來 按 Save 就可以將擷取的畫面存檔 35

36 56. 我在 AVD 上按退出鈕 退出了應用程式回到 android 的桌面 我又按了 Refresh 鈕 重 新擷取 AVD 桌面的圖案 如果擷取畫面的動作完成 可以按 Done 關閉對話框 57. 要 從 DDMS 的 視 景 回 到 android 開 發 環 境 的 視 景 也 就 是 java 的 視 景 請 執 行 Window / Open Perspective / Java 58. 也可以直接按最右上方的 DDMS 與 Java 直接切換不同的視景 36

37 第二章 猜數字比大小 這個程式是個簡單的遊戲 目要是由電腦亂數產生一個 1~99 之間的數字 由我們來猜猜這 個數字是多少 我們猜數字時 電腦會回應我們 要再大一些 或者是再小一些 藉此提示 我們猜到最後的那個數字 第一項 建立專案 請依前面介紹的動作 建立一個新的 Android 專案 專案名稱就隨便設定為 a01 第二項 建立介面佈面檔 我們使用最基本的介面就可以 建立以下幾個元件 1. 一個輸入文字框(EditText) 提供使用者可以輸入數字 2. 一個按鈕(Button) 在前一個 EditText 欄位輸入數字之後 按下按鈕 由系統判斷數 是否正確 或者是顯示提示文字 3. 三個文字顯示框(TextView) 輔助使用者測猜數字使用 一個要顯示使用者猜測數字 區間的最小值 另一個是顯示最大值 另一個顯示是否猜中數字 參考如下 <?xml version="1.0" encoding="utf 8"?> <LinearLayout xmlns:android=" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center_horizontal" android:orientation="vertical" > <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:inputtype="number" android:text="50" android:textsize="20sp" /> <Button 37

38 android:layout_width="match_parent" android:layout_height="wrap_content" android:text="比大小" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="最小值" android:textsize="20sp" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="最大值" android:textsize="20sp" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="繼續加油" android:textsize="20sp" /> </LinearLayout> 第三項 主程式 參考如下 package tw.a01; import android.app.activity; import android.os.bundle; import android.view.view; import android.widget.button; import android.widget.edittext; 38

39 import android.widget.textview; public class A01GuessNumber extends Activity { EditText et01; Button bt01; TextView tv01; TextView tv02; TextView tv03; Integer pcnum; Integer a02=0; //計算猜了幾次 public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.mainguessnumber); setupviewcomponent(); private void setupviewcomponent() { et01 = (EditText) findviewbyid(r.id.et01); bt01 = (Button) findviewbyid(r.id.bt01); tv01 = (TextView) findviewbyid(r.id.tv01); tv02 = (TextView) findviewbyid(r.id.tv02); tv03 = (TextView) findviewbyid(r.id.tv03); // pcnum=(int) (Math.random()*99+1); tv03.settext(tv03.gettext() + pcnum.tostring()); tv01.settext("0"); tv02.settext("100"); bt01.setonclicklistener(bt01click); Button.OnClickListener bt01click = new Button.OnClickListener() { public void onclick(view v) { 39

40 int a01; String s01=""; a02=a02+1; a01=integer.parseint(et01.gettext().tostring()); if (a01>pcnum) { s01="再小一些"; tv02.settext(et01.gettext().tostring()); else if (a01<pcnum) { s01="再大一些"; tv01.settext(et01.gettext().tostring()); else if (a01==pcnum) { s01="恭禧你猜到了~~ 總共猜了 " + a02 + " 次! 再重玩一 次!!"; a02=0; setupviewcomponent(); tv03.settext(s01); ; 40

41 使用 WebV iew 建立程式 第三章 請先安裝好 Android 的開發環境 建立一個專案 接下來看看我們使用簡單的 WebView 就 能建立一個很實用的程式哦 第一項 修改 AndroidManifest.xml 檔案 <?xml version="1.0" encoding="utf 8"?> <manifest xmlns:android=" package="tw.idv.kingbig.browserintent" android:versioncode="1" android:versionname="1.0" > <uses sdk android:minsdkversion="7" /> <uses permission android:name="android.permission.internet" /> <application > <activity android:name=".browserintentactivity" > <intent filter > <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent filter> </activity> <activity android:name=".golink01" </activity> <activity 41

42 android:name=".golink02" </activity> </application> </manifest> 第二項 修改 main.xml <?xml version="1.0" encoding="utf 8"?> <LinearLayout xmlns:android=" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="文字 1" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="文字 2" /> </LinearLayout> </LinearLayout> 42

43 第三項 建立 mainwebview.xml <?xml version="1.0" encoding="utf 8"?> <LinearLayout xmlns:android=" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" > <WebView android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1.0" /> </LinearLayout> 第四項 建立 Activity 主程式 package tw.idv.kingbig.browserintent; import android.app.activity; import android.content.intent; import android.os.bundle; import android.view.view; import android.widget.button; public class BrowserIntentActivity extends Activity android.view.view.onclicklistener { /** Called when the activity is first created. */ private Button golink01button; private Button golink02button; implements public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); findviews(); 43

44 private void findviews() { golink01button = (Button)findViewById(R.id.golink01_button); golink01button.setonclicklistener(this); golink02button = (Button)findViewById(R.id.golink02_button); golink02button.setonclicklistener(this); ; public void onclick(view v) { switch (v.getid()) { case R.id.golink01_button: Intent igolink01 = new Intent(this, golink01.class); startactivity(igolink01); break; case R.id.golink02_button: Intent igolink02 = new Intent(this, golink02.class); startactivity(igolink02); break; 44

45 建立 golink01 程式 第五項 package tw.idv.kingbig.browserintent; import android.app.activity; import android.os.bundle; import android.view.view; import android.webkit.webview; public class golink01 extends Activity android.view.view.onclicklistener { /** Called when the activity is first created. */ private WebView webview; implements public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.mainwebview); findviews(); private void findviews() { webview=(webview) findviewbyid(r.id.web_view); openbrowser(); ; private void openbrowser() { String s01=new String(" Act=2300&MP=24"); webview.getsettings().setjavascriptenabled(true); webview.loadurl(s01); public void onclick(view v) { 45

46 建立 golink02 第六項 package tw.idv.kingbig.browserintent; import android.app.activity; import android.os.bundle; import android.view.view; import android.webkit.webview; public class golink02 extends Activity android.view.view.onclicklistener { /** Called when the activity is first created. */ private WebView webview; implements public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.mainwebview); findviews(); private void findviews() { webview=(webview) findviewbyid(r.id.web_view); openbrowser(); ; private void openbrowser() { String s01=new String(" Act=3100&MP=40"); webview.getsettings().setjavascriptenabled(true); webview.loadurl(s01); public void onclick(view v) { 46

47 第四章 音樂播放程式 第一節 最陽春的音樂播放程式 第一項 建立空白的新專案 1. 請執行 File / New / Project 選擇 Android / Android Application Project 建 立一個空白的專案 2. 開 啟 layout 的 介 面 佈 局 檔 案 建 立 一 個 按 鈕 將 它 命 名 為 bt01 android:id="@+id/bt01" 將它的顯示文字改為 播放音樂 android:text="播 放音樂" 3. 在 res 右鍵 / New / Folder 建立一個 raw 資料夾 4. 請將一個 mp3 檔案複製到 /res/raw/ 底下 請注意檔案名稱必須符合 res 的命名限 制 第二項 加入 MediaPlayer 物件 1. 開啟主程式 也許是 MainActivity.java 一開始 它的內容可能如下 package com.example.t01music; import android.os.bundle;...略 public class MainActivity extends Activity { public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); 2. 加入 MediaPlayer 物件的宣告 請依程式的建議進行相關的 import 動作 如下 47

48 package com.example.t01music; import android.media.mediaplayer;...略 public class MainActivity extends Activity { MediaPlayer mp01 = null; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); 3. 宣告 mp3 的音樂物件 如下 package com.example.t01music; import android.media.mediaplayer;...略 public class MainActivity extends Activity { MediaPlayer mp01 = null; int music01 = R.raw.fir02; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); 4. 在 oncreate()輸入 findview(); 的敘述 並依建議動作處理 產生一個 findview() 的方法...略 48

49 public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); findview(); private void findview() { 5. 連結 mp3 檔案 進行播放動作 參考程式如下...略 private void findview() { mp01 = new MediaPlayer(); mp01 = MediaPlayer.create(this, music01); mp01.start(); 6. 執行程式吧 聽聽看 是否有音樂播放出來 第二節 改善這個程式 第一項 瞭解 Activity 的生命週期 以下的流程圖 以及表格 有助我們瞭解 Activity 的生命週期 49

50 Figure. The activity lifecycle. 資料來源 50

51 Table. A summary of the activity lifecycle's callback methods. Method Killable after? Description oncreate() Called when the activity is first created. This is where you should do all of your normal static set up create views, bind data to lists, and so on. This method is passed a Bundle object containing the activity's No previous state, if that state was captured (see Saving Activity State, later). Next onstart() Always followed by onstart(). onrestart() Called after the activity has been stopped, just prior to it being started again. No onstart() Always followed by onstart() Called just before the activity becomes visible to the user. onstart() Followed by onresume() if the activity comes to the No foreground, or onstop() if it becomes hidden. onresume() Called just before the activity starts interacting with the user. At this point the activity is at the top of the activity No stack, with user input going to it. onresume() or onstop() onpause() Always followed by onpause(). onpause() Called when the system is about to start resuming another activity. This method is typically used to commit unsaved changes to persistent data, stop animations and other things that may be consuming CPU, and so on. It should do whatever it does very quickly, because Yes the next activity will not be resumed until it returns. Followed either by onresume() if the activity returns onresume() or onstop() back to the front, or by onstop() if it becomes invisible to the user. onstop() Called when the activity is no longer visible to the user. This may happen because it is being destroyed, or because another activity (either an existing one or a new one) has been resumed and is covering it. Yes Followed either by onrestart() if the activity is coming back to interact with the user, or by ondestroy() if this activity is going away. ondestroy() Called before the activity is destroyed. This is the final call that the activity will receive. It could be called either because the activity is finishing (someone called finish() on it), or because the system is temporarily Yes destroying this instance of the activity to save space. You can distinguish between these two scenarios with the isfinishing() method. onrestart() or ondestroy() nothing 資料來源 51

52 第二項 離開程式時也能停止音樂的播放 剛剛我們所寫的程式 如果還在播放的狀態 我們就離開程式 執行 android 的其它程式 有沒有注意到 音樂還在播放 我們要改善這個狀況 請依以下動作執行 1. 在程式碼的空白處按 右鍵 / Source / Override/Implement Methods 2. 在這裡找一找 勾選 onpause() 按 OK 就會發現在程式碼裡頭 多出以下 的程式區塊 protected void onpause() { super.onpause(); 3. 請加入以下二行程式 protected void onpause() { super.onpause(); mp01.stop(); mp01.release(); 4. 再重新執行程式 在音樂尚未播放完畢前 離開程式 如果音樂也就停止播放 表示 這個動作完成了 第三項 按下播放按鈕才開始播放 目前的程式 會在執行時就直接播放音樂 我們要修改一下 在按下 播放音樂 時 才開 始播放 請依以下動作操作 1. 先宣告 Button 類別的 bt01 物件 再由 R 取出相對應的資源 指定給 bt01 物件 再宣 告 bt01 的傾聽程式 參考如下...略 public class MainActivity extends Activity { MediaPlayer mp01 = null; 52

53 int music01 = R.raw.fir02; Button bt01; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); private void findview() { bt01 = (Button) findviewbyid(r.id.bt01); bt01.setonclicklistener(bt01click); mp01 = MediaPlayer.create(this, music01); mp01.start(); protected void onpause() { super.onpause(); mp01.stop(); mp01.release(); 2. 在我們使用 setonclicklistener()宣告傾聽程式後 會顯示錯誤訊息 我們必須手動 輸入程式 建立 bt01click 請特別注意的是 請將 bt01click 當做是一個物件 它是 經由 Button.OnClickListener 的宣告 所產生的一個物件 因此 最後的大括弧結束 時 必須再加一個 ; 結束 程式碼參考如下...略 public class MainActivity extends Activity { MediaPlayer mp01 = null; int music01 = R.raw.fir02; 53

54 Button bt01;...略 private void findview() { bt01 = (Button) findviewbyid(r.id.bt01); bt01.setonclicklistener(bt01click); mp01 = MediaPlayer.create(this, music01); mp01.start(); Button.OnClickListener bt01click = new Button.OnClickListener() { ;...略 3. 系統會提示我們 bt01click 的物件還需要 Add unimplemented methods 請依 程式的建議處理 會在 bt01click 物件裡 再宣告 onclick()的事件 這個區塊的程式 碼如下 Button.OnClickListener bt01click = new Button.OnClickListener() { public void onclick(view v) { // TODO Auto-generated method stub ; 4. 將 mp01 指定物件與 mp01 播放的二行程式 移到 bt01click 的 onclick()方法裡 同 時 再稍微修改一下程式 主要是將 MediaPlayer.create(this, music01) 改 為 MediaPlayer.create(getApplicationContext(), music01) 將 this 改 為 getapplicationcontext() 的原因 是原本的 MediaPlayer.create()方法 是在主要 的 Activity 裡執行 因此只要使用 this 關鍵字就可以取得 這個 Activity 的物件 當我們將 MediaPlayer.create()方法移到 bt01click 的物件時 this 所參考的物件 可能會不正確 因此 我們必須將它改為 getapplicationcontext() 方法 透過呼 54

55 叫這個方法來取得我們 主要的 Activity 是那一個物件 這樣一來 mp01 還是可 以正確的取得播放的音樂資源 進行後續播放的動作 程式碼參考如下...略 public class MainActivity extends Activity {...略 private void findview() { bt01 = (Button) findviewbyid(r.id.bt01); bt01.setonclicklistener(bt01click);...略 Button.OnClickListener bt01click = new Button.OnClickListener() { public void onclick(view v) { mp01 = MediaPlayer.create( getapplicationcontext(), music01); mp01.start(); ; 5. 執行程式試試看 程式執行後 必須等我們按 播放音樂 的按鈕後 才會有音樂囉 練習題 1 目前有 播放音樂 的按鈕 請自行建立 停止播放 的按鈕 而且 在 按下 停止播放 按鈕時 要能停止音樂的播放動作 練習題 2 試試看 建立一個 暫停 播放 的按鈕 按一下可以暫停音樂的播放 再按一下 可以繼續音樂的播放 55

56 SQLite 資料庫 第五章 在介紹 SQLite 之前 我們先來認識 SharedPreferences 存取偏好設定 第一節 使用 SharedPreferences 請建立新的專案 分別再依以下動作進行 第一項 介面佈局檔 1. 建立 TextView 顯示文字為 姓名 2. 建立 EditText 設定 id 為 et01 3. 建立 TextView 顯示文字為 興趣 4. 建立 EditText 設定 id 為 et02 5. 建立 Button 設定 id 為 bt01 顯示文字為 儲存偏好設定 6. 執行程式 看看是否可以正常顯示介面佈局檔的內容 第二項 建立主程式的內容 儲存偏好設定 1. 請開啟主程式 進行 et01 et02 bt01 等物件的宣告 物件的實體建立 並且將 bt01 設定傾聽程式 參考程式碼如下 public class MainActivity extends Activity { EditText et01; EditText et02; Button bt01; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); findview(); private void findview() { 56

57 et01 = (EditText) findviewbyid(r.id.et01); et02 = (EditText) findviewbyid(r.id.et02); bt01 = (Button) findviewbyid(r.id.bt01); bt01.setonclicklistener(bt01click); Button.OnClickListener bt01click = new Button.OnClickListener() { public void onclick(view v) { ; 2. 在 bt01click 方法裡輸入相關程式 參考範例程式如下 Button.OnClickListener bt01click = new Button.OnClickListener() { public void onclick(view v) { //將資料儲存到 SharedPreferences 的 sp01 物件. SharedPreferences sp01 = getsharedpreferences("t04shareprefs", 0); sp01.edit().putstring("et01text", et01.gettext().tostring()).putstring("et02text", et02.gettext().tostring()).commit(); //顯示一個 Toast, 一秒鐘. Toast.makeText(getApplicationContext(), "資料儲存完成", 57

58 Toast.LENGTH_SHORT).show(); ; 3. 執 行 程 式 在 二 個 欄 位 裡 輸 入 資 料 再 按 一 下 bt01 使 系 統 觸 發 事 件 執 行 bt01click 的動作 第三項 驗證儲存偏好的動作 前項動作執行後 我們可以驗證看看 驗證動作如下 1. 開啟命令提示字元 2. 執行 adb shell 如果沒有執行 顯示找不到命令的話 表示系統的 path 路徑沒 有 指 定 到 adb 的 位 置 adb 的 程 式 是 放 在 android-sdk 目 錄 下 的 platformtools 的目錄裡 可以手動切換路徑 也可以考慮將它的路徑加入到 path 環境變數 裡 3. 進入到 adb shell 後 可以執行 ls -l 顯示目錄裡的內容 使用 cd 執行切換工作 目錄 以我的例子來看 我需要先執行 cd /data/data 在這裡就會看到系統所安 裝的所有資料夾 一個程式會有一個資料夾 資料夾的名稱就是 package name 4. 我的 package name 是 com.example.t04sharepreference 因此 我就需要再輸 入 cd com.example.t04sharepreference 再使用 ls -l 顯示目錄裡的內容 會 看到有一個 shared_prefs 目錄 裡頭有一個 t04shareprefs.xml 的檔案 這個 檔案就是我們所儲存的偏好設定 它是一個標準 xml 格式的檔案 5. 我們可以執行 cat t04shareprefs.xml 看看裡頭的內容 其實就是我們在 android 的程式裡所輸入的內容 第四項 建立主程式的內容 提取偏好設定 我們會希望程式每次執行時 都能先將前次所儲存的偏好設定 主動的讀取出來 程式撰寫 的動作如下 1. 我們在 findview 方法裡 呼叫一個 loadsharedprefs 的方法 參考程式碼如下 private void findview() { et01 = (EditText) findviewbyid(r.id.et01); et02 = (EditText) findviewbyid(r.id.et02); 58

59 bt01 = (Button) findviewbyid(r.id.bt01); bt01.setonclicklistener(bt01click); loadsharedprefs(); private void loadsharedprefs() { 2. 在 loadsharedprefs 方法裡 使用 private void loadsharedprefs() { /** * 第 1 個參數設定我們的偏好設定的檔案名稱是 t04shareprefs, * 第 2 個參數表示只允許程式本身開啟, 不允許其它程式使用. */ SharedPreferences sp01 = getsharedpreferences("t04shareprefs", 0); /** * 取得之前儲存的資料, 如果沒有的話, 預設傳回 "請輸入資料" 的字串 * 這裡為了簡單及方便理解 因此另外宣告二個字串變數儲存資料 */ String s01 = sp01.getstring("et01text", "請輸入資料"); String s02 = sp01.getstring("et02text", "請輸入資料"); et01.settext(s01.tostring()); et02.settext(s02.tostring()); 3. 請先離開程式 再重新執行程式 應該會發現前次輸入的資料會自動填入到 et01 與 et02 的欄位裡 練習題 目前的偏好設定儲存 必須按下 儲存偏好設定 的按鈕 才會有作用 請 將程式修改 當使用者直接離開程式時 也能由程式將資料儲存後再離開程式 59

60 第二節 簡單使用 SQLite 我們要使用 SQLite 的話 需要使用 SQLiteOpenHelper 以及 SQLiteDatabase 這二個類別來 建立 以及存取資料庫 其中的 SQLiteOpenHelper 是一個幫助類別 Helper Class 我 們需要建立一個繼承自 SQLiteOpenHelper 的類別 SQLiteOpenHelper 主要的目的是協助 我們建立資料表 以及資料庫的版本管理 由 SQLiteOpenHelper 所建立出來的資料庫 是 一個 SQLiteDatabase 類別的物件 因此 我們可以透過 SQLiteDatabase 所提供的方法該 行新增 刪除 更新資料表的內容 以下請建立新專案 再依照底下的動作進行 第一項 介面佈局檔 1. 建立一個 TextView 顯示文字為 只存記事本 2. 建立一個 EditText 設定 id 為 et01 顯示文字為空的 3. 建立一個 Button 設定 id 為 bt01 顯示文字為 儲存記事 4. 建立一個 TextView 設定 id 為 tv01 第二項 建立 SQLiteOpenHelper 的子類別 1. 在 src / 套件名稱 按 右鍵 / New / Class 2. 在 Name 的欄位輸入 mydbhelper 做為類別的名稱 3. 按 Superclass 右方的 Browse 在上方的 Choose a type 欄位輸入 SQLiteOpenHelper 底下的 Matching items 會顯示符合的項目 點選該項目 按 OK 5. 按 Finish 建立類別 同時 依系統的建議 修正錯誤的訊息 6. 目前為止 程式碼類似以下內容 public class mydbhelper extends SQLiteOpenHelper { public dbhelper(context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); // TODO Auto generated constructor stub public void oncreate(sqlitedatabase arg0) { 60

61 public void onupgrade(sqlitedatabase arg0, int arg1, int arg2) { 7. 修改 oncreate()的方法 也就是覆寫父類別的方法 我們要建立自己要使用的資料 表 程式碼參考如下 其中的 arg0 是系統在 oncreate 方法裡自行宣告的一個 SQLiteDatabase 物件 我是直接使用這個名稱 也可以修改物件的名稱 例如改為 db 使物件名稱比較具有意義 public void oncreate(sqlitedatabase arg0) { arg0.execsql( "Create Table t05note (" + "_id integer primary key autoincrement, " + "tnote text)" ); 8. 修改 onupgrade 方法 內容參考如下 public void onupgrade(sqlitedatabase arg0, int arg1, int arg2) { arg0.execsql("drop Table if exists t05note"); oncreate(arg0); 9. 這個檔案完成了 第三項 修改主程式 1. 宣告各個物件 以及建立 findview 方法 參考如下 61

62 public class MainActivity extends Activity { SQLiteDatabase db01; mydbhelper dbhelper01; String databasetable = "t05note"; EditText et01; TextView tv01; Button bt01; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); findview(); private void findview() { 2. 建立 findview 方法裡的各個物件的實體 參考程式碼如下 private void findview() { et01 = (EditText) findviewbyid(r.id.et01); tv01 = (TextView) findviewbyid(r.id.tv01); bt01 = (Button) findviewbyid(r.id.bt01); dbhelper01 = new mydbhelper(this, databasetable, null, 1); db01 = dbhelper01.getwritabledatabase(); 3. 執行程式看看 應該能正常執行 而且 我們可以開啟命令提示字元視窗 驗證看看 資料庫是否己經建立完成 指令參考如下 A. 執行 adb shell 進入 android 的模擬器的系統 62

63 B. 再執行 cd /data/data/ C. 輸入 ls -l 查看應該有一個和 package name 相同的目錄 以我的為例 我會看 到 com.example.t05sqlite 的目錄 D. 執 行 cd com.example.t05sqlite 再 輸 入 ls -l 查 看 應 該 會 產 生 一 個 databases 的資料夾 而且 裡頭會有個 t05note 的檔案 E. 看到有 databases 的資料夾 而且裡頭有個 t05note 的檔案 就表示有呼 叫 SQLite 建立資料庫 也建立好了資料表 4. 在 程 式 碼 的 空 白 處 按 右 鍵 / Source / Override/Implement Methods 勾 選 onstop() 按 OK 5. 在 onstop 的方法裡 我們要關閉資料庫 釋放資源 參考程式碼如下 protected void onstop() { super.onstop(); db01.close(); 6. 建立 bt01click 事件 參考如下 private void findview() { et01 = (EditText) findviewbyid(r.id.et01); tv01 = (TextView) findviewbyid(r.id.tv01); bt01 = (Button) findviewbyid(r.id.bt01); dbhelper01 = new mydbhelper(this, databasetable, null, 1); db01 = dbhelper01.getwritabledatabase(); bt01.setonclicklistener(bt01click); Button.OnClickListener bt01click = new Button.OnClickListener() { public void onclick(view v) { 63

64 ; 7. 建立 bt01click 裡的 onclick 事件 參考如下 Button.OnClickListener bt01click = new Button.OnClickListener() { public void onclick(view v) { long id; ContentValues cv01 = new ContentValues(); cv01.put("tnote", et01.gettext().tostring()); id = db01.insert(databasetable, null, cv01); Toast.makeText(getApplicationContext(), "記錄新增完成 " + id, Toast.LENGTH_SHORT).show(); ; 8. 執行程式 輸入一些文字 再按 儲存記事 應該會顯示 記錄新增完成 x 的 toast 第四項 驗證看看 sqlite3 指令 前項動作 我們使用命令提示字元模式 查看 databases 目錄與 t05note 檔案 從這個狀態 可以再做更細的驗證動作 請依以下動作操作 1. 輸入 sqlite3 t05note 會進入 sqlite 的命令提示的環境 2. 畫面顯示 可以輸入.help 取得一些協助 試試看 3. 輸入.databases 可以查看我們目前取用的資料庫 4. 輸入.tables 可以得知我們目前有那些資料表 5. 一般的 sql 指令 例如新增 刪除 在這裡是可以通用的 例如輸入 select * from t05note; 就可以顯示所有記錄 6. 輸入.quit 可以離開 sqlite3 的命令提示環境 64

65 第五項 顯示資料表內容 1. 在 findview 方法裡 呼叫 showtables 方法 參考如下 private void findview() { et01 = (EditText) findviewbyid(r.id.et01); tv01 = (TextView) findviewbyid(r.id.tv01); bt01 = (Button) findviewbyid(r.id.bt01); dbhelper01 = new mydbhelper(this, databasetable, null, 1); db01 = dbhelper01.getwritabledatabase(); bt01.setonclicklistener(bt01click); showtables(); private void showtables() { 2. 建立 showtables 方法裡的程式碼 參考如下 private void showtables() { String[] colnames = new String[] {"_id", "tnote"; String s01 = ""; Cursor c01 = db01.query(databasetable, colnames, null, null, null, null, null); for (int i=0; i<colnames.length; i++) { s01 = s01 + colnames[i] + "\t"; s01 = s01 + "\n"; c01.movetofirst(); // for (int i=0; i<c01.getcount(); i++) { s01 = 65 s01 +

66 c01.getstring( c01.getcolumnindex( colnames[0] ) ) + "\t"; s01 = s01 + c01.getstring(0) + "\t"; s01 = s01 + c01.getstring(1) + "\n"; c01.movetonext(); tv01.settext(s01.tostring()); 3. 執行程式看看 應該可以列出所有的記錄 66

67 第六章 GPS 服務 這個程式範例 在 Android 2.1 的環境就可以正常執行 第一節 設定 manifest 的使用授權項目 1. 請開啟 AndroidManifest.xml 檔案 請加入以下四行 users-permission 這四行 uses-permission 分別代表允許取得 GPS 的精細座標位置 允許使用者所輸 入的模擬位置 允許使用 3g 或 wifi 的方式取得的概略位置 允許存取網際網路 前三項的 uses-permission 是抓取座標位置要用的 而第四項則是要由網路傳回 Google Maps 時 會需要使用網路連線 傳回資料 <uses sdk android:minsdkversion="7" android:targetsdkversion="7" /> <uses permission android:name="android.permission.access_fine_location" /> <uses permission android:name="android.permission.access_mock_location" /> <uses permission android:name="android.permission.access_coarse_location" /> <uses-permission android:name="android.permission.internet" /> 這個檔案還有其他的設定要做 等稍後我們再回來這裡設定 目前暫時先設定這四 項使用授權即可 記得存檔 67

68 第二節 建立介面佈局檔 1. 請先開啟介面佈局檔 拖拉元件如下圖 2. 直接瀏覽 xml 檔案的話 參考內容如下 <RelativeLayout xmlns:android=" xmlns:tools=" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparentleft="true" android:layout_alignparenttop="true" android:text = " 緯度 " tools:context=".mainactivity" /> 68

69 <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparenttop="true" android:text = "TextView" /> <TextView android:id="@+id/txtlabel02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparentleft="true" android:layout_below="@+id/txtlabel01" android:text = " 經度 " /> <TextView android:id="@+id/txttext02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignbaseline="@+id/txtlabel02" android:layout_alignbottom="@+id/txtlabel02" android:layout_torightof="@+id/txtlabel02" android:text = "TextView" /> <TextView android:id="@+id/txtlabel03" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparentleft="true" android:layout_below="@+id/txtlabel02" android:text = " 精確度 " /> <TextView android:id="@+id/txttext03" 69

70 android:layout_width="wrap_content" android:layout_height="wrap_content" android:text = "TextView" /> <TextView android:id="@+id/txtlabel04" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparentleft="true" android:layout_below="@+id/txtlabel03" android:text = " 高度 " /> <TextView android:id="@+id/txttext04" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignbaseline="@+id/txtlabel04" android:layout_alignbottom="@+id/txtlabel04" android:layout_torightof="@+id/txtlabel04" android:text = "TextView" /> <TextView android:id="@+id/txtlabel05" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparentleft="true" android:layout_below="@+id/txtlabel04" android:text = " 時間 " /> <TextView android:id="@+id/txttext05" android:layout_width="wrap_content" android:layout_height="wrap_content" 70

71 android:text = "TextView" /> <TextView android:id="@+id/txtlabel06" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparentleft="true" android:layout_below="@+id/txtlabel05" android:text = " 速度 " /> <TextView android:id="@+id/txttext06" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignbaseline="@+id/txtlabel06" android:layout_alignbottom="@+id/txtlabel06" android:layout_torightof="@+id/txtlabel06" android:text = "TextView" /> <TextView android:id="@+id/txtlabel07" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparentleft="true" android:layout_below="@+id/txtlabel06" android:text = " 方位 " /> <TextView android:id="@+id/txttext07" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignbaseline="@+id/txtlabel07" android:layout_alignbottom="@+id/txtlabel07" 71

72 android:text = "TextView" /> <Button android:id="@+id/btnhistorylist" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparentleft="true" android:layout_below="@+id/txtlabel07" android:text = " 歷史記錄 " /> <WebView android:id="@+id/webview1" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_alignparentleft="true" android:layout_alignparentright="true" android:layout_below="@+id/btnhistorylist" /> </RelativeLayout> 72

73 第三節 建立連結資料庫的 dbhelper public class mydbhelper extends SQLiteOpenHelper { public mydbhelper(context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); // TODO Auto generated constructor stub public void oncreate(sqlitedatabase arg0) { //這個是資料表的結構 //其中的 gtdate datetime 有問題 請暫時忽略 arg0.execsql( "create table gpstracer (" + "_id integer primary key autoincrement, " + "gtdate datetime, " + "gtlatitude long, " + "gtlongitude long, " + "gtaccuracy long, " + "gtaltitude long, " + "gttime long, " + "gtspeed long, " + "gtbearing long" + ")" ); public void onupgrade(sqlitedatabase arg0, int arg1, int arg2) { arg0.execsql("drop table if exists gpstracer"); oncreate(arg0); 73

74 第四節 建立主程式 public class MainActivity extends Activity { TextView txtlabel01; TextView txtlabel02; TextView txtlabel03; TextView txtlabel04; TextView txtlabel05; TextView txtlabel06; TextView txtlabel07; TextView txttext01; TextView txttext02; TextView txttext03; TextView txttext04; TextView txttext05; TextView txttext06; TextView txttext07; Button btnhistorylist; WebView wv01; //宣告資料庫相關的物件 mydbhelper dbhelper01; //使用繼承自 SQLiteOpenHelper 類別所產生的物件 協 助我們建立資料庫連結的動作 SQLiteDatabase gpstracerdb; //連結資料庫進行查詢 新增資料的動作 String databasetable = "gpstracer"; //宣告資料表的名稱 這行可以不用 LocationManager lm01; //宣告一個 LocationManager 類別的 lm01 物件 //宣告一個 LocationListener 類別的 lm01listener 物件 //在 new LocationListener() 產生物件時 會同時建立其中的幾個 method public LocationListener lm01listener = new LocationListener() { //gps 的狀態改變時 會呼叫這個 method public void onstatuschanged(string provider, int status, Bundle extras) { 74

75 switch (status) { case LocationProvider.AVAILABLE: Log.v("status", "AVAILABLE"); break; case LocationProvider.OUT_OF_SERVICE: Log.v("status", "OUT_OF_SERVICE"); break; case LocationProvider.TEMPORARILY_UNAVAILABLE: Log.v("status", "TEMPORARILY_UNAVAILABLE"); break; public void onproviderenabled(string provider) { public void onproviderdisabled(string provider) { //當座標改變時 會呼叫這個 method public void onlocationchanged(location location) { txttext01.settext(string.valueof(location.getlatitude())); txttext02.settext(string.valueof(location.getlongitude())); txttext03.settext(string.valueof(location.getaccuracy())); txttext04.settext(string.valueof(location.getaltitude())); txttext05.settext(string.valueof(location.gettime())); txttext06.settext(string.valueof(location.getspeed())); txttext07.settext(string.valueof(location.getbearing())); wv01.loadurl(" center=" + Double.toString(location.getLatitude()) +"," + Double.toString(location.getLongitude()) + "&zoom=16&size="+ 75

76 "360x400&sensor=false&markers=color:blue%7Clabel:S%7C"+ Double.toString(location.getLatitude()) + "," + Double.toString(location.getLongitude())); //以下動作是要將資料存到資料庫 long id; //使用 ContentValues 以陣列 key value 的方式儲存 //其中的 key 就是欄位名稱 value 就是儲存的值 要轉換為字串 ContentValues cv01 = new ContentValues(); cv01.put("gtdate", "current_timestamp"); cv01.put("gtlatitude", String.valueOf(location.getLatitude())); cv01.put("gtlongitude", String.valueOf(location.getLongitude())); cv01.put("gtaccuracy", String.valueOf(location.getAccuracy())); cv01.put("gtaltitude", String.valueOf(location.getAltitude())); cv01.put("gttime", String.valueOf(location.getTime())); cv01.put("gtspeed", String.valueOf(location.getSpeed())); cv01.put("gtbearing", String.valueOf(location.getBearing())); //進行 insert 到資料表的動作 id=gpstracerdb.insert(databasetable, null, cv01); Toast.makeText(getApplicationContext(), "記錄新增完成:" + id, Toast.LENGTH_SHORT).show(); ; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); findview(); //自己建立的程式寫在這裡 76

77 private void findview() { txtlabel01=(textview) findviewbyid(r.id.txtlabel01); txtlabel02=(textview) findviewbyid(r.id.txtlabel02); txtlabel03=(textview) findviewbyid(r.id.txtlabel03); txtlabel04=(textview) findviewbyid(r.id.txtlabel04); txtlabel05=(textview) findviewbyid(r.id.txtlabel05); txtlabel06=(textview) findviewbyid(r.id.txtlabel06); txtlabel07=(textview) findviewbyid(r.id.txtlabel07); txttext01=(textview) findviewbyid(r.id.txttext01); txttext02=(textview) findviewbyid(r.id.txttext02); txttext03=(textview) findviewbyid(r.id.txttext03); txttext04=(textview) findviewbyid(r.id.txttext04); txttext05=(textview) findviewbyid(r.id.txttext05); txttext06=(textview) findviewbyid(r.id.txttext06); txttext07=(textview) findviewbyid(r.id.txttext07); btnhistorylist=(button) findviewbyid(r.id.btnhistorylist); wv01=(webview) findviewbyid(r.id.webview1); // 透 過 getsystemservice 去 呼 叫 LOCATION_SERVICE 建 立 一 個 LocationManager 的服務 //LOCATION_SERVICE 的 android.content.context.location_service 完 整 服 務 是 //由 LOCATION_SERVICE 服務就可以取得系統提供的座標 高度 方位等各項服務 lm01=(locationmanager) getsystemservice(location_service); //以下動作在設定 LocationListener lm01listener 物件 的最小變動時機 //每 2 秒(2000)更新一次 //每 5 公尺更新一次 // lm01.requestlocationupdates(locationmanager.network_provider, 77

78 2000, 5, lm01listener); lm01.requestlocationupdates(locationmanager.gps_provider, 2000, 5, lm01listener); //連結資料庫的動作 dbhelper01 = new mydbhelper(this, databasetable, null, 1); gpstracerdb = dbhelper01.getwritabledatabase(); //註冊一個按下 歷史記錄 的按鈕傾聽程式 btnhistorylist.setonclicklistener(btnhistorylistclick); //程式如果關閉時 要釋放 SQLiteDatabase 資源 protected void onstop() { super.onstop(); gpstracerdb.close(); //程式如果暫停 也要停止更新的動作 protected void onpause() { if (lm01!= null) { lm01.removeupdates(lm01listener); super.onpause(); //程式如果由停止或暫停的狀態 恢復為執行的狀態 //必須要重新記錄更新的動作 protected void onresume() { 78

79 if (lm01!= null) { lm01.requestlocationupdates(locationmanager.gps_provider, 2000, 5, lm01listener); lm01.requestlocationupdates(locationmanager.network_provider, 2000, 5, lm01listener); super.onresume(); public boolean oncreateoptionsmenu(menu menu) { getmenuinflater().inflate(r.menu.activity_main, menu); return true; //按下 歷史記錄 的按鈕時 要呼叫另一個程式出來 Button.OnClickListener btnhistorylistclick Button.OnClickListener() { = new public void onclick(view arg0) { Intent i01 = gpshistorylist.class); startactivity(i01); new Intent(getApplication(), ; 79

80 第五節 建立第二個程式 列出歷史資料 第一項 佈景主題 <ScrollView xmlns:android=" xmlns:tools=" android:layout_width="fill_parent" android:layout_height="fill_parent" > <RelativeLayout xmlns:android=" xmlns:tools=" android:layout_width="fill_parent" android:layout_height = "fill_parent" > <Button android:id="@+id/btnreturn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparentleft="true" android:layout_alignparenttop="true" android:text = " 返回 " /> <TextView android:id="@+id/txtlist01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparentleft="true" android:layout_below="@+id/btnreturn" android:text="" /> </RelativeLayout> </ScrollView> 80

81 第二項 主程式 public class gpshistorylist extends Activity { TextView txtlist01; Button btnreturn; //宣告資料庫相關的物件 mydbhelper dbhelper01; //使用繼承自 SQLiteOpenHelper 類別所產生的物件 協 助我們建立資料庫連結的動作 SQLiteDatabase gpstracerdb; //連結資料庫進行查詢 新增資料的動作 String databasetable = "gpstracer"; //宣告資料表的名稱 這行可以不用 public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); //呼叫版面配置 這裡只有一個 返回鍵 以及 文字框 顯示歷史資料使用的 setcontentview(r.layout.activity_gpshistorylist); findview(); //自己建立的程式寫在這裡 private void findview() { txtlist01=(textview) findviewbyid(r.id.txtlist01); btnreturn=(button) findviewbyid(r.id.btnreturn); //返回鍵 要關閉自身的 activity btnreturn.setonclicklistener(btnreturnclick); //連結資料庫 81

82 dbhelper01 = new mydbhelper(this, databasetable, null, 1); gpstracerdb = dbhelper01.getwritabledatabase(); String[] colnames = new String[] {"_id", "gtdate", "gtlatitude", "gtlongitude", "gtaccuracy", "gtaltitude", "gttime", "gtspeed", "gtbearing"; String s01=""; Cursor c01 = gpstracerdb.query(databasetable, colnames, null, null, null, null, "_id desc"); //將內容以一個簡單的格式輸出 c01.movetofirst(); for (int i=0; i<c01.getcount(); i++) { s01 = s01 + "No." + c01.getstring(0) + ",\t\t\t\t"; //顯示自動增加的編號 s01 = s01 + "Time:" + c01.getstring(6) + "\n"; // 顯 示 第 6 欄的日期 換下一行 s01 = s01 + "Location:" + c01.getstring(2) + ",\t"; //顯示經度 s01 = s01 + c01.getstring(3) + "\n"; //顯示緯度 換下一行 s01 = s01 + "Accuracy:" + c01.getstring(4) + ",\t"; //顯示精確度 s01 = s01 + "Altitude:" + c01.getstring(5) + "\n"; // 顯 示 高度 換下一行 s01 = s01 + "Speed:" + c01.getstring(7) + ",\t\t\t"; //顯示速度 s01 = s01 + "Bearing:" + c01.getstring(8) + "\n\n"; //顯示方位 c01.movetonext(); txtlist01.settext(s01.tostring()); //程式如果關閉時 要釋放 SQLiteDatabase 資源 protected void onstop() { super.onstop(); 82

83 gpstracerdb.close(); Button.OnClickListener Button.OnClickListener() { btnreturnclick = new public void onclick(view arg0) { finish(); ; 83

84 ser vice 第七章 第一節 建立 MediaPlayer Server 第一項 修改 androidmanifest.xml 檔案 <?xml version="1.0" encoding="utf 8"?> <manifest xmlns:android=" package="tw.a17" android:versioncode="1" android:versionname="1.0" > <uses sdk android:minsdkversion="15" /> <application > <activity android:name=".a17activity" > <intent filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent filter> </activity> <service android:name="mediaplayservice" android:enabled="true" > </service> </application> 84

85 </manifest> 建立 MediaPlayService.java 第二項 public class MediaPlayService extends Service { private MediaPlayer player; public void ondestroy() { super.ondestroy(); player.stop(); public int onstartcommand(intent intent, int flags, int startid) { File file = new File("/sdcard/londonkaleb.mp3"); player = MediaPlayer.create(this, Uri.fromFile(file)); player.start(); return super.onstartcommand(intent, flags, startid); public IBinder onbind(intent arg0) { return null; 第三項 建立主程式 public class A17Activity extends Activity { /** Called when the activity is first created. */ 85

86 //宣告一個 intent 的物件. 按 menu 功能鍵, 呼叫 service 時會使用. Intent i01; LinearLayout ll01; TextView tv01; /** * 這裡設定的動作, 其實就是在指定它的 數值. * 其中, Menu.FIRST 等於 1, 其餘繼續遞增. */ private static final int MENU_MUSIC = Menu.FIRST, MENU_PLAY_MUSIC = Menu.FIRST + 1, MENU_STOP_PLAYING_MUSIC = Menu.FIRST + 2, MENU_ABOUT = Menu.FIRST + 3, MENU_EXIT = Menu.FIRST + 4; public boolean oncreateoptionsmenu(menu menu) { /** * 在 oncreateoptionsmenu(menu menu) 這 裡, 已 經 幫 我 們 建 立 了 一 個 menu 的物件. * 所以這裡就是使用 menu 物件來新增 功能表. */ /** * 如果要新增子功能表的話, 必須使用 SubMenu 的物件, * 再某一個功能項目下, 再新增子功能表. */ SubMenu submenu; /** * 在 menu.addsubmenu() 這裡, 先登錄一個 功能項目 為 背景音樂, * 同時也設定這個功能項目, 是具有子功能項目的. * 括弧裡共有四個參數, 分別表示如下: * int groupid, 透過這裡建立功能表的群組, 這裡統一設定為 0 * int itemid, 這是它的 ID 號碼, 必須是唯一的. * int order, 顯示功能表的順序. * CharSequence title, 顯示的文字內容. */ 86

87 submenu = menu.addsubmenu(0, MENU_MUSIC, 0, " 背 景 音 樂").setIcon(android.R.drawable.ic_media_ff); //以下分別增加第 1, 2 個子功能項目. submenu.add(0, MENU_PLAY_MUSIC, 0, "播放背景音樂"); submenu.add(0, MENU_STOP_PLAYING_MUSIC, 1, "停止播放背景音樂"); //以下分別增加第 2, 3 個功能項目 menu.add(0, MENU_ABOUT, 1, 關 " 於 這 個 程 式...").setIcon(android.R.drawable.ic_dialog_info); menu.add(0, MENU_EXIT, 2, " 結 束").setIcon(android.R.drawable.ic_menu_close_clear_cancel); /** * 將剛才所建立的 menu 物件回傳. */ return super.oncreateoptionsmenu(menu); public boolean onoptionsitemselected(menuitem item) { /** * 當選擇功能項目時, 會到這裡執行. * 依我們點選的 項目 ID, 這裡會執行不同的程式. */ switch (item.getitemid()) { case MENU_PLAY_MUSIC: /** * 啟動 MediaPlayService 的 service. * 因此, 不要忘了要在 androidmanifest 這裡加入 service 的宣告. */ i01 = MediaPlayService.class); startservice(i01); break; new Intent(A17Activity.this, case MENU_STOP_PLAYING_MUSIC: /** * 停止 service 87

88 */ i01 = MediaPlayService.class); stopservice(i01); break; new Intent(A17Activity.this, case MENU_ABOUT: /** * 建立一個 AlertDialog 對話框. */ new AlertDialog.Builder(A17Activity.this).setTitle("關於這個程式").setMessage("選單範例程式").setCancelable(false).setIcon(android.R.drawable.star_big_on).setPositiveButton("確定", new DialogInterface.OnClickListener() { public onclick(dialoginterface dialog, void int which) { // TODO Auto generated method stub ).show(); break; case MENU_EXIT: finish(); break; default: break; return super.onoptionsitemselected(item); public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); setupviewcomponent(); 88

89 private void setupviewcomponent() { ll01 = (LinearLayout) findviewbyid(r.id.ll01); tv01 = (TextView) findviewbyid(r.id.tv01); /** * 所有需要使用 ContextMenu 的元件, 都需要先進行註冊的動作. * 執行 registerforcontextmenu 將元件註冊要進行 ContextMenu 的動 作. */ registerforcontextmenu(ll01); registerforcontextmenu(tv01); public boolean oncontextitemselected(menuitem item) { /** * 由於功能表做的事情相同, 因此, 這裡就省略不做判斷的動作, * 直接呼叫前面的 onoptionsitemselected 方法, * 再將這裡的 item 物件傳給它, 由它來處理~~ */ onoptionsitemselected(item); return super.oncontextitemselected(item); public void oncreatecontextmenu(contextmenu menu, View v, ContextMenuInfo menuinfo) { super.oncreatecontextmenu(menu, v, menuinfo); if (v == ll01) { /** * 就整個介面佈局來看, LinearLayout 是最底層的, * 再上來是 TextView 的元件, 因此, 當我們在 TextView 上長按, 89

90 * 會先 觸發 上層 TextView 的動作, * 再往下傳遞 觸發 底層的 LinearLayout 的動作. */ if (menu.size() == 0) { /** * 以下的動作, 其實和最上方的 oncreateoptionsmenu 的動作 是相同的. */ SubMenu submenu; //建立第 1 個功能項目, 並設定具有子功能表 submenu = menu.addsubmenu(0, MENU_MUSIC, 0, "背景音 樂").setIcon(android.R.drawable.ic_media_ff); //以下分別增加第 1, 2 個子功能項目. submenu.add(0, MENU_PLAY_MUSIC, 0, "播放背景音樂"); submenu.add(0, MENU_STOP_PLAYING_MUSIC, 1, "停止播放 背景音樂"); //以下分別增加第 2, 3 個功能項目 menu.add(0, MENU_ABOUT, 1, " 關 於 這 個 程 式...").setIcon(android.R.drawable.ic_dialog_info); menu.add(0, MENU_EXIT, 2, " 結 束").setIcon(android.R.drawable.ic_menu_close_clear_cancel); else if (v == tv01) { menu.add(0, MENU_ABOUT, 1, "關於這個程式..."); 90

第 2 節 介面佈局檔 第 1 項 說明 第 2 項 原始碼 第 3 節 主程式開發 第 1 項 主程式 - 基本設定 第 2 項 主程式 - 產生亂數 第 3 項 主程式 - 數字靠邊 數字加總 第 4 節 加入手

第 2 節 介面佈局檔 第 1 項 說明 第 2 項 原始碼 第 3 節 主程式開發 第 1 項 主程式 - 基本設定 第 2 項 主程式 - 產生亂數 第 3 項 主程式 - 數字靠邊 數字加總 第 4 節 加入手 Android 講義 2016.07.03 目錄 第 1 章 資料存取... 1 第 1 節 使用 SharedPreferences... 1 第 1 項 介面佈局檔... 1 第 2 項 建立主程式的內容 - 儲存偏好設定... 1 第 3 項 驗證儲存偏好的動作... 3 第 4 項 建立主程式的內容 - 提取偏好設定... 3 第 2 節 簡單使用 SQLite... 5 第 1 項 介面佈局檔...

More information

Java講義

Java講義 Android 講義 王振民 2012.07.10 目錄 第一章音樂播放程式...3 第一節最陽春的音樂播放程式...3 第一項建立空白的新專案...3 第二項加入 MediaPlayer 物件...3 第二節改善這個程式...5 第一項瞭解 Activity 的生命週期...5 第二項離開程式時也能停止音樂的播放...8 第三項按下播放按鈕才開始播放...8 第二章 google 地圖...12

More information

Android Service

Android Service Android Service- 播放音樂 建國科技大學資管系 饒瑞佶 2013/7 V1 Android Service Service 是跟 Activity 並行 一個音樂播放程式若沒使用 Service, 即使按 home 鍵畫面離開之後, 音樂還是照播 如果再執行一次程式, 新撥放的音樂會跟先前撥放的一起撥, 最後程式就會出錯 執行中的程式完全看不到! 但是, 寫成 Service 就不同了

More information

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new ListView 自訂排版 主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new int[]{r.drawable.dog1, R.drawable.dog2,

More information

Java講義

Java講義 Android 講義 2012.07.10 目錄 第一章安裝環境...2 第一節 jdk...2 第二節 eclipse...11 第三節安裝 android sdk...18 第四節建立 AVD 模擬環境...33 第五節 eclipse 環境設定...38 第六節建立第一個 android 專案...42 第七節擷取 android 裝置的畫面...51 第二章程式範例...54 第一節猜數字比大小...54

More information

單步除錯 (1/10) 打開 Android Studio, 點選 Start a new Android Studio project 建立專案 Application name 輸入 BMI 點下 Next 2 P a g e

單步除錯 (1/10) 打開 Android Studio, 點選 Start a new Android Studio project 建立專案 Application name 輸入 BMI 點下 Next 2 P a g e Android Studio Debugging 本篇教學除了最基本的中斷點教學之外, 還有條件式中斷的教學 條件式中斷是進階的除錯技巧, 在某些特定情況中, 我們有一個函數可能會被呼叫數次, 但是我們只希望在某種條件成立時才進行中斷, 進而觀察變數的狀態 而條件式中斷這項技巧正是符合這項需求 本教學分兩部分 單步除錯 (Page2~11, 共 10) 條件式中斷點 (Page12~17, 共 6)

More information

Dynamic Layout in Android

Dynamic Layout in Android Dynamic Layout in Android 建國科技大學資管系 饒瑞佶 2013/5 V1 Layout 多半都透過 res/layout/xml 格式設定來達成 Android 是 OOP, 所以可以動態產生 Layout 重點是 Layout 的階層關係 (Hierarchy) 需要處理對應事件 最後一樣用 setcontentview 加入 Layout 一 加入現有 Layout 中

More information

res/layout 目录下的 main.xml 源码 : <?xml version="1.0" encoding="utf 8"?> <TabHost android:layout_height="fill_parent" xml

res/layout 目录下的 main.xml 源码 : <?xml version=1.0 encoding=utf 8?> <TabHost android:layout_height=fill_parent xml 拓展训练 1- 界面布局 1. 界面布局的重要性做应用程序, 界面是最基本的 Andorid 的界面, 需要写在 res/layout 的 xml 里面, 一般情况下一个 xml 对应一个界面 Android 界面布局有点像写 html( 连注释代码的方式都一样 ), 要先给 Android 定框架, 然后再在框架里面放控件,Android 提供了几种框架,AbsoluteLayout,LinearLayout,

More information

Android Robert C.C. Huang Oscar F.Y. Liu Peter C.L. Hsieh 2011/03/21

Android Robert C.C. Huang Oscar F.Y. Liu Peter C.L. Hsieh 2011/03/21 Android Robert C.C. Huang Oscar F.Y. Liu Peter C.L. Hsieh 2011/03/21 Outlines for Today Future Planning Review System Architecture Dev. Tools & Making the First App Project Structure & File Details Application

More information

TPM BIOS Infineon TPM Smart TPM Infineon TPM Smart TPM TPM Smart TPM TPM Advanced Mode...8

TPM BIOS Infineon TPM Smart TPM Infineon TPM Smart TPM TPM Smart TPM TPM Advanced Mode...8 Smart TPM Rev. 1001 Smart TPM Ultra TPM Smart TPM TPM...3 1. BIOS... 3 2. Infineon TPM Smart TPM... 4 2.1. Infineon TPM...4 2.2. Smart TPM...4 3. TPM... 5 3.1. Smart TPM TPM...5 3.2. Advanced Mode...8

More information

投影片 1

投影片 1 資料庫管理程式 ( 補充教材 -Part2) 使用 ADO.NET 連結資料庫 ( 自行撰寫程式碼 以實現新增 刪除 修改等功能 ) Private Sub InsertButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles InsertButton.Click ' 宣告相關的 Connection

More information

Microsoft Word zw

Microsoft Word zw 第 1 章 Android 概述 学习目标 : Android Android Android Studio Android Android APK 1.1 1. 智能手机的定义 Smartphone 2. 智能手机的发展 1973 4 3 PC IBM 1994 IBM Simon PDA PDA Zaurus OS 1996 Nokia 9000 Communicator Nokia 9000

More information

Microsoft Word - 第1章 Android基本概念.docx

Microsoft Word - 第1章 Android基本概念.docx Android 系 统 下 Java 编 程 详 解 作 者 : 华 清 远 见 第 1 章 Android 基 本 概 念 本 章 简 介 本 章 主 要 介 绍 Android 基 本 概 念 方 面 的 内 容, 包 括 Android 平 台 特 性 Android 系 统 架 构 Android 开 发 框 架 和 Android 开 发 环 境 搭 建 1.1 Android 简 介 Android

More information

Database_001

Database_001 作者 : 林致宇日期 :2011/10/26 主要參考來源 : http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applicat ions/ 問題 : 如在存取一個已經建立好的資料庫? 解答 : 有一些應用程式會需要讀取已經建立好的資料庫, 例如一個試題測驗應用程式, 裡面的試題可能已經於電腦上, 使用任何的

More information

一 Hot Potatoes 命 題 軟 體 操 作 說 明 一 註 冊 操 作 程 序 1. 進 入 Hot Potatoes 的 官 方 網 站 網 址 http://web.uvic.ca/hrd/hotpot/index.htm 並 點 選 Register 2. 點 選 read the licence terms. 閱 讀 使 用 說 明 3. 點 選 I have read the license

More information

用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應

用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應 專題進度 老師 : 趙啟時老師 學生 : 陳建廷 2013/10/13 用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應 程式碼 : package com.example.phone; import java.util.arraylist;

More information

Android Fragment

Android Fragment Android Fragment 建國科技大學資管系饒瑞佶 2017/10 V1 Android 3.0 後才支援 Fragment 解決部分 App 適應螢幕大小的問題 它類似於 Activity, 可以像 Activity 可以擁有自己的版面設計, 也和 Activity 一樣有自己的生命週期 ( 具備 oncreate() oncreateview() 與 onpause() 方法 ) LifeCycle

More information

epub83-1

epub83-1 C++Builder 1 C + + B u i l d e r C + + B u i l d e r C + + B u i l d e r C + + B u i l d e r 1.1 1.1.1 1-1 1. 1-1 1 2. 1-1 2 A c c e s s P a r a d o x Visual FoxPro 3. / C / S 2 C + + B u i l d e r / C

More information

e-Submission System Quick Reference Guide for Publication Related Matters (Chinese version)

e-Submission System Quick Reference Guide for Publication Related Matters (Chinese version) 有 關 登 載 事 宜 的 電 子 呈 交 系 統 簡 易 參 考 指 南 2016 年 5 月 1.4 版 本 第 1 頁 目 錄 1 登 入 前 要 準 備 的 資 料... 4 2 登 入 電 子 呈 交 系 統... 5 2.1 輸 入 使 用 者 編 號 及 密 碼... 5 2.2 接 受 免 責 聲 明 的 版 頁... 5 2.3 從 主 項 目 單 中 選 擇... 5 3 一 次

More information

0511-Android程式之GPS應用_專題週記4

0511-Android程式之GPS應用_專題週記4 逢甲大學通訊工程學系專題研究 Android 程式之 GPS 應用 專題週記 0511 學生姓名 陳彥儒 D0035131 廖元譽 D0077791 指導老師 楊豐瑞老師繳交日期 2014.05.11 1 匯入 GoogleMap 1.1 取得授權步驟 目前進度 取得 Google 授權鑰匙 實作程式尚未成功 1.1.1 建立個人的 keystore 1.1.2 由個人的 keystore 查詢 SHA1

More information

目 錄 項 目 內 容 頁 數 1 手 機 要 求 3 2 登 記 程 序 3 3 登 入 程 序 4 4 輸 入 買 賣 指 示 6 5 更 改 指 示 14 6 取 消 指 示 18 7 查 詢 股 票 結 存 21 8 查 詢 買 賣 指 示 23 9 更 改 密 碼 24 10 查 詢 股

目 錄 項 目 內 容 頁 數 1 手 機 要 求 3 2 登 記 程 序 3 3 登 入 程 序 4 4 輸 入 買 賣 指 示 6 5 更 改 指 示 14 6 取 消 指 示 18 7 查 詢 股 票 結 存 21 8 查 詢 買 賣 指 示 23 9 更 改 密 碼 24 10 查 詢 股 流 動 股 票 買 賣 服 務 操 作 指 引 目 錄 項 目 內 容 頁 數 1 手 機 要 求 3 2 登 記 程 序 3 3 登 入 程 序 4 4 輸 入 買 賣 指 示 6 5 更 改 指 示 14 6 取 消 指 示 18 7 查 詢 股 票 結 存 21 8 查 詢 買 賣 指 示 23 9 更 改 密 碼 24 10 查 詢 股 價 及 指 數 26 11 切 換 語 言 及 登 出

More information

證 券 簡 易 下 單 :2121 證 券 簡 易 下 單 1. 主 工 具 列 的 視 窗 搜 尋 器 直 接 輸 入 2121 2. 點 擊 主 選 單 證 券 專 區 下 單 特 殊 下 單 2121 證 券 簡 易 下 單 畫 面 說 明 1. 下 單 區 2. 個 股 行 情 資 訊 與

證 券 簡 易 下 單 :2121 證 券 簡 易 下 單 1. 主 工 具 列 的 視 窗 搜 尋 器 直 接 輸 入 2121 2. 點 擊 主 選 單 證 券 專 區 下 單 特 殊 下 單 2121 證 券 簡 易 下 單 畫 面 說 明 1. 下 單 區 2. 個 股 行 情 資 訊 與 下 單 :2111 證 券 快 速 下 單 1. 主 工 具 列 的 視 窗 搜 尋 器 直 接 輸 入 2111 2. 點 擊 主 選 單 證 券 專 區 下 單 一 般 下 單 2111 證 券 快 速 下 單 1. 點 擊 後, 可 選 擇 群 組 帳 號 或 單 一 帳 號, 選 擇 後 快 速 點 擊 滑 鼠 左 鍵 兩 下, 可 將 帳 號 完 成 登 錄 並 帶 入 視 窗 2. 點

More information

實作SQLiteOpenHelper類別

實作SQLiteOpenHelper類別 SQLiteOpenHelper 類別存取 SQLite 建國科技大學資管系 饒瑞佶 2013/5 V1 Android 連結資料庫 MySQL SQL Server Web Service 遠端資料庫 Internet Intranet Android SQLite 單機資料庫 Android vs. SQLite 透過 SQLiteOpenHelper 類別來操作 建立資料庫 ( 建構子 ) 建立資料表

More information

目 錄 版 次 變 更 記 錄... 2 原 始 程 式 碼 類 型 之 使 用 手 冊... 3 一 安 裝 軟 體 套 件 事 前 準 備... 3 二 編 譯 流 程 說 明... 25 1

目 錄 版 次 變 更 記 錄... 2 原 始 程 式 碼 類 型 之 使 用 手 冊... 3 一 安 裝 軟 體 套 件 事 前 準 備... 3 二 編 譯 流 程 說 明... 25 1 科 技 部 自 由 軟 體 專 案 原 始 程 式 碼 使 用 手 冊 Source Code Manual of NSC Open Source Project 可 信 賴 的 App 安 全 應 用 框 架 -App 應 用 服 務 可 移 轉 性 驗 證 Trusted App Framework -Transferability Verification on App MOST 102-2218-E-011-012

More information

ShareText

ShareText 作者 : 林致宇 日期 :2012/1/23 問題 : 如何分享分享文字資訊給其它的應用程式? 解答 : 有時候我們可能會希望 我們的應用程式的資訊 能夠讓使用者分享出去, 讓使用者能夠將此資訊傳送簡訊給其好友或寄電子郵件的方式寄給其好友, 這份文件將示範如何寫出這樣的應用程式 本文件將產出兩個 App, 第一個 App 是 分享資料的來源, 名為 CopyPaste_Source, 功能非常簡單,

More information

Microsoft PowerPoint - ch6 [相容模式]

Microsoft PowerPoint - ch6 [相容模式] UiBinder wzyang@asia.edu.tw UiBinder Java GWT UiBinder XML UI i18n (widget) 1 2 UiBinder HelloWidget.ui.xml: UI HelloWidgetBinder HelloWidget.java XML UI Owner class ( Composite ) UI XML UiBinder: Owner

More information

(Microsoft Word - wes _\246p\246\363\250\317\245\316LED\277O\305\343\245\334\252\254\272A.doc)

(Microsoft Word - wes _\246p\246\363\250\317\245\316LED\277O\305\343\245\334\252\254\272A.doc) 作者 Amber 版本 1.0.0 日期 2012/04/25 頁數 1/7 如何使用 LED 燈顯示狀態? 適用於 : 平台 作業系統版本 XPAC utility 版本 XP-8000 系列 N/A N/A XP-8000-Atom 系列 WES2009 所有版本 N/A: Not applicable to this platform and OS. 注意! 欲變更系統的任何設定之前, 請先關閉

More information

建立Android新專案

建立Android新專案 Android 智 慧 型 手 機 程 式 設 計 Android WebService 建 國 科 技 大 學 資 管 系 饒 瑞 佶 2012/4 V1 2012/8 V2 2013/5 V3 2014/10 v4 提 醒 這 節 的 內 容 針 對 的 是 MS 的 Web Service 或 是 使 用 SOAP(Simple Object Access Protocol) 標 準 建 立

More information

任務二 : 產生 20 個有炸彈的磚塊, 放在隨機的位置編輯 Block 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) Write a description of class

任務二 : 產生 20 個有炸彈的磚塊, 放在隨機的位置編輯 Block 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) Write a description of class 踩地雷遊戲 高慧君南港高中 開啟專案 MineSweep 任務一 : 產生 30X20 個磚塊編輯 Table 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) import java.util.arraylist; Write a description of class MyWorld

More information

(Microsoft Word - MOODLE990201\266i\266\245\244\342\245U1000804)

(Microsoft Word - MOODLE990201\266i\266\245\244\342\245U1000804) (2011.08.04 修 訂 ) 目 錄 壹 舊 課 程 複 製 到 新 課 程 的 方 法... 1 一 將 舊 課 程 的 課 程 文 件 匯 入 新 課 程... 1 二 編 輯 新 課 程... 5 三 備 份 舊 課 程 資 料 還 原 至 新 課 程... 6 貳 元 課 程 (META COURSE) 說 明 與 應 用... 12 一 元 課 程 說 明... 12 二 利 用 元

More information

建立Android新專案

建立Android新專案 經濟部工業局 Android 智慧型手機程式設計實務應用班 Android WebService 建國科技大學資管系 饒瑞佶 2012/4 WebService 需要 ksoap2-android-assembly-2.5.2-jar-withdependencies.jar 或 ksoap2-android-assembly-2.5.2-jar-withdependencies_timeout1.jar

More information

目 錄 頁 1. 歡 迎 使 用 網 上 預 約 面 談 訪 問 系 統... 3 2. 新 用 戶... 4 2.1 新 用 戶 登 入 帳 戶 程 序... 4 2.2 啟 動 網 上 預 約 面 談 訪 問 帳 戶... 5 2.2.1 核 對 帳 戶 的 地 址 資 料... 5 2.2.2

目 錄 頁 1. 歡 迎 使 用 網 上 預 約 面 談 訪 問 系 統... 3 2. 新 用 戶... 4 2.1 新 用 戶 登 入 帳 戶 程 序... 4 2.2 啟 動 網 上 預 約 面 談 訪 問 帳 戶... 5 2.2.1 核 對 帳 戶 的 地 址 資 料... 5 2.2.2 網 上 預 約 面 談 訪 問 使 用 指 南 香 港 特 別 行 政 區 政 府 統 計 處 目 錄 頁 1. 歡 迎 使 用 網 上 預 約 面 談 訪 問 系 統... 3 2. 新 用 戶... 4 2.1 新 用 戶 登 入 帳 戶 程 序... 4 2.2 啟 動 網 上 預 約 面 談 訪 問 帳 戶... 5 2.2.1 核 對 帳 戶 的 地 址 資 料... 5 2.2.2 閱

More information

IBM Rational ClearQuest Client for Eclipse 1/ IBM Rational ClearQuest Client for Ecl

IBM Rational ClearQuest Client for Eclipse   1/ IBM Rational ClearQuest Client for Ecl 1/39 Balaji Krish,, IBM Nam LeIBM 2005 4 15 IBM Rational ClearQuest ClearQuest Eclipse Rational ClearQuest / Eclipse Clien Rational ClearQuest Rational ClearQuest Windows Web Rational ClearQuest Client

More information

PART 2 系 統 篇 仔 細 檢 查 記 憶 體 和 顯 示 卡 4-2 4-1 AIDA64 Everest 操 作 : 使 用 AIDA64 檢 測 主 機 溫 度 AIDA64 DirectX AIDA64 http://www.aida64.com/downloads 78

PART 2 系 統 篇 仔 細 檢 查 記 憶 體 和 顯 示 卡 4-2 4-1 AIDA64 Everest 操 作 : 使 用 AIDA64 檢 測 主 機 溫 度 AIDA64 DirectX AIDA64 http://www.aida64.com/downloads 78 Chapter 0 4 系 統 不 穩 定 4-1 3D 2 2-1-2 BIOS 因 超 頻 所 導 致 的 系 統 運 作 不 穩 定, 可 以 從 BIOS 中 還 原 設 定 值 77 PART 2 系 統 篇 仔 細 檢 查 記 憶 體 和 顯 示 卡 4-2 4-1 AIDA64 Everest 操 作 : 使 用 AIDA64 檢 測 主 機 溫 度 AIDA64 DirectX AIDA64

More information

<4D6963726F736F667420576F7264202D20BBF9D3DA416E64726F6964C6BDCCA8B5C4B5E7D7D3C5C4C2F4CFB5CDB32E646F63>

<4D6963726F736F667420576F7264202D20BBF9D3DA416E64726F6964C6BDCCA8B5C4B5E7D7D3C5C4C2F4CFB5CDB32E646F63> 基 于 Android 平 台 的 电 子 拍 卖 系 统 摘 要 本 电 子 拍 卖 系 统 其 实 就 是 一 个 电 子 商 务 平 台, 只 要 将 该 系 统 部 署 到 互 联 网 上, 客 户 都 可 以 在 该 系 统 上 发 布 想 出 售 的 商 品, 也 可 以 对 拍 卖 中 的 商 品 参 与 竞 价 整 个 过 程 无 须 人 工 干 预, 由 系 统 自 动 完 成 本

More information

预览图 : (2) 在 SelectCity.java 中增加控件, 用于绑定 select_city 文件的 ListView, TextView,EditTest 等控件 代码和注释如下 :

预览图 : (2) 在 SelectCity.java 中增加控件, 用于绑定 select_city 文件的 ListView, TextView,EditTest 等控件 代码和注释如下 : EditText 实现城市搜索 1801210778 邹宇航 摘要 : 使用 EditText 实现搜索城市的功能, 以此为依据更新 ListView 1. 效果图 : 2. 主要步骤 (1) 在 select-city.xml 布局文件中中添加 EditText 控件用作搜索框, 然后添加 ListView 控件用来显示城市名字内容 代码如下 : 预览图 : (2) 在 SelectCity.java

More information

WebSphere Studio Application Developer IBM Portal Toolkit... 2/21 1. WebSphere Portal Portal WebSphere Application Server stopserver.bat -configfile..

WebSphere Studio Application Developer IBM Portal Toolkit... 2/21 1. WebSphere Portal Portal WebSphere Application Server stopserver.bat -configfile.. WebSphere Studio Application Developer IBM Portal Toolkit... 1/21 WebSphere Studio Application Developer IBM Portal Toolkit Portlet Doug Phillips (dougep@us.ibm.com),, IBM Developer Technical Support Center

More information

書面

書面 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 5.4 互動功能畫面 程式碼請參考附件-程式三 在進入互動頁面時 會執行setAllText()依寵物狀態數值來 設定狀態文字與頭像 並且依心情決定是否要不要播放音效 觸摸的區域 由於是自己寫的 view 所以並未透過xml來設置 而是透過Layut.addview()來動態新增

More information

目 錄 壹 題 目 1: 新 增 商 品 ( 商 品 名 稱 為 玉 井 芒 果 乾 禮 盒 )... 3 貳 題 目 2: 新 增 商 品 ( 商 品 名 稱 為 紅 磚 布 丁 精 選 禮 盒 )... 5 參 題 目 3: 新 增 商 品 ( 商 品 名 稱 為 晶 鑽 XO 醬 禮 盒 ).

目 錄 壹 題 目 1: 新 增 商 品 ( 商 品 名 稱 為 玉 井 芒 果 乾 禮 盒 )... 3 貳 題 目 2: 新 增 商 品 ( 商 品 名 稱 為 紅 磚 布 丁 精 選 禮 盒 )... 5 參 題 目 3: 新 增 商 品 ( 商 品 名 稱 為 晶 鑽 XO 醬 禮 盒 ). 行 動 電 子 商 務 管 理 師 行 動 電 子 商 務 規 劃 師 術 科 考 試 題 解 製 作 單 位 :TMCA 台 灣 行 動 商 務 運 籌 管 理 協 會 證 照 評 測 試 務 中 心 1 目 錄 壹 題 目 1: 新 增 商 品 ( 商 品 名 稱 為 玉 井 芒 果 乾 禮 盒 )... 3 貳 題 目 2: 新 增 商 品 ( 商 品 名 稱 為 紅 磚 布 丁 精 選 禮

More information

Microsoft Word - 02.目錄.doc

Microsoft Word - 02.目錄.doc 目錄 -1- 目錄 序 準備篇 一 使用說明... 0-2 二 標示說明... 0-6 三 注意事項... 0-7 第一類 Android 基礎知識 -UI 設計及語法應用 101. 整存整付計算機... 1-2 102. 電費計算機... 1-8 103. 點餐系統... 1-18 104. 計算 BMI 值... 1-23 105. MENU 功能選單... 1-36 106. 畫廊展示...

More information

The golden pins of the PCI card can be oxidized after months or years

The golden pins of the PCI card can be oxidized after months or years Q. 如何在 LabWindows/CVI 編譯 DAQ Card 程式? A: 請參考至下列步驟 : 步驟 1: 安裝驅動程式 1. 安裝 UniDAQ 驅動程式 UniDAQ 驅動程式下載位置 : CD:\NAPDOS\PCI\UniDAQ\DLL\Driver\ ftp://ftp.icpdas.com/pub/cd/iocard/pci/napdos/pci/unidaq/dll/driver/

More information

實德證券網上交易系統示範

實德證券網上交易系統示範 實 德 證 券 網 上 交 易 系 統 示 範 實 德 證 券 網 上 交 易 系 統 分 別 提 供 增 強 版 及 標 準 版, 使 用 標 準 版 必 須 安 裝 JAVA, 標 準 版 自 動 更 新 戶 口 資 料, 而 使 用 增 強 版 則 不 必 安 裝 JAVA, 但 必 須 按 更 新 鍵 才 能 更 新 戶 口 資 料, 請 用 戶 根 據 實 際 需 要 選 擇 使 用 標

More information

ContextMenu

ContextMenu 作者 : 林致宇 日期 :2012/1/20 問題 : 如何建立 ContextMenu? 解答 : 什麼是 ContextMenu 呢? 下面兩張圖是 ContextMenu 的範例, 紅色框線中的選單即所謂的 ContextMenu, 可以視為 選單列表, 例如在左圖的 ContextMenu 中有兩個選項 : Action 1 與 Action 2, 按下 Action 1 可執行某些動作,

More information

PowerPoint 簡報

PowerPoint 簡報 長 庚 科 大 雲 端 硬 碟 ( 進 階 ) 雲 端 硬 碟 ( 進 階 ) 1 招 我 的 雲 端 硬 碟 (1/3) 我 的 雲 端 硬 碟 Google Apps - 雲 端 硬 碟 查 看 使 用 者 自 己 雲 端 硬 碟 中 的 檔 案 注 意 : 離 線 版 雲 端 硬 碟 只 會 同 步 我 的 雲 端 硬 碟 資 料 夾 中 的 檔 案 1) 查 看 雲 端 硬 碟 已 使 用

More information

Microsoft Word - ASM SDK 說明文件

Microsoft Word - ASM SDK 說明文件 System Monitor SDK (for Android) 開發者指南說明書 1. 技術項目簡介 經由簡化的應用程式介面 (Application Programming Interface), 可 提供給 Android 應用程式開發者開發基於 System monitor 的應用程式 2. 應用範圍說明 本技術可應用於具備 Android 系統 2.3.3 以上版本的 Android 嵌入式裝

More information

目 錄 一 系 統 登 入... 2 ( 一 ) 系 統 登 入 畫 面... 2 ( 二 ) 首 次 登 入 請 先 註 冊... 3 ( 三 ) 忘 記 單 位 帳 號... 8 ( 四 ) 忘 記 密 碼... 10 ( 五 ) 健 保 卡 更 換... 12 ( 六 ) 重 寄 確 認 信.

目 錄 一 系 統 登 入... 2 ( 一 ) 系 統 登 入 畫 面... 2 ( 二 ) 首 次 登 入 請 先 註 冊... 3 ( 三 ) 忘 記 單 位 帳 號... 8 ( 四 ) 忘 記 密 碼... 10 ( 五 ) 健 保 卡 更 換... 12 ( 六 ) 重 寄 確 認 信. 補 充 保 險 費 網 路 明 細 申 報 及 列 印 繳 款 書 系 統 操 作 手 冊 衛 生 福 利 部 中 央 健 康 保 險 署 中 華 民 國 104 年 04 月 目 錄 一 系 統 登 入... 2 ( 一 ) 系 統 登 入 畫 面... 2 ( 二 ) 首 次 登 入 請 先 註 冊... 3 ( 三 ) 忘 記 單 位 帳 號... 8 ( 四 ) 忘 記 密 碼... 10

More information

3. 給 定 一 整 數 陣 列 a[0] a[1] a[99] 且 a[k]=3k+1, 以 value=100 呼 叫 以 下 兩 函 式, 假 設 函 式 f1 及 f2 之 while 迴 圈 主 體 分 別 執 行 n1 與 n2 次 (i.e, 計 算 if 敘 述 執 行 次 數, 不

3. 給 定 一 整 數 陣 列 a[0] a[1] a[99] 且 a[k]=3k+1, 以 value=100 呼 叫 以 下 兩 函 式, 假 設 函 式 f1 及 f2 之 while 迴 圈 主 體 分 別 執 行 n1 與 n2 次 (i.e, 計 算 if 敘 述 執 行 次 數, 不 1. 右 側 程 式 正 確 的 輸 出 應 該 如 下 : * *** ***** ******* ********* 在 不 修 改 右 側 程 式 之 第 4 行 及 第 7 行 程 式 碼 的 前 提 下, 最 少 需 修 改 幾 行 程 式 碼 以 得 到 正 確 輸 出? (A) 1 (B) 2 (C) 3 (D) 4 1 int k = 4; 2 int m = 1; 3 for (int

More information

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6 www.brainysoft.net 1.JasperReport ireport...4 1.1 JasperReport...4 1.2 ireport...4 2....4 2.1 JDK...4 2.1.1 JDK...4 2.1.2 JDK...5 2.1.3 JDK...5 2.2 ant...6 2.2.1 ant...6 2.2.2 ant...6 2.3 JasperReport...7

More information

附录J:Eclipse教程

附录J:Eclipse教程 附 录 J:Eclipse 教 程 By Y.Daniel Liang 该 帮 助 文 档 包 括 以 下 内 容 : Eclipse 入 门 选 择 透 视 图 创 建 项 目 创 建 Java 程 序 编 译 和 运 行 Java 程 序 从 命 令 行 运 行 Java Application 在 Eclipse 中 调 试 提 示 : 在 学 习 完 第 一 章 后 使 用 本 教 程 第

More information

Microsoft Word - template03.docx

Microsoft Word - template03.docx 講 師 : 楊 姁 老 老 師 善 用 工 具 為 你 的 華 語 教 學 加 分 - 影 音 小 工 具 篇 課 程 第 1 章 : 光 影 魔 術 手 基 本 介 紹 1 1 編 輯 環 境 與 瀏 覽 介 面 1 2 開 啟 數 位 影 像 檔 案 1 3 編 輯 偏 暗 與 偏 亮 的 照 片 1 4 改 善 照 片 色 偏 1 5 重 新 構 圖 1 6 加 入 花 樣 邊 框 1 7 使

More information

AL-M200 Series

AL-M200 Series NPD4754-00 TC ( ) Windows 7 1. [Start ( )] [Control Panel ()] [Network and Internet ( )] 2. [Network and Sharing Center ( )] 3. [Change adapter settings ( )] 4. 3 Windows XP 1. [Start ( )] [Control Panel

More information

128 提 示 樞 紐 分 析 表 的 用 途 樞 紐 分 析 表 是 指 可 以 用 來 快 速 合 併 和 比 較 大 量 資 料 的 互 動 式 表 格, 透 過 它 可 以 詳 細 分 析 數 值 資 料, 特 別 適 用 於 下 列 情 況 : 需 要 從 含 有 大 量 資 料 的 清

128 提 示 樞 紐 分 析 表 的 用 途 樞 紐 分 析 表 是 指 可 以 用 來 快 速 合 併 和 比 較 大 量 資 料 的 互 動 式 表 格, 透 過 它 可 以 詳 細 分 析 數 值 資 料, 特 別 適 用 於 下 列 情 況 : 需 要 從 含 有 大 量 資 料 的 清 Chapter 06 使 用 樞 紐 分 析 表 快 速 分 組 資 料 127 學 習 要 點 認 識 樞 紐 分 析 表 建 立 樞 紐 分 析 表 調 整 樞 紐 分 析 表 的 版 面 配 置 顯 示 群 組 小 計 的 合 計 折 疊 與 展 開 明 細 資 料 篩 選 與 排 序 樞 紐 分 析 表 資 料 新 增 計 算 欄 位 本 章 結 構 什 麼 是 樞 紐 分 析 表 適 用

More information

<4D6963726F736F667420576F7264202D20BEC7B2DFB3D0B379A741AABAB2C4A440ADD3A6E6B0CA617070BEDEA740A4E2A555>

<4D6963726F736F667420576F7264202D20BEC7B2DFB3D0B379A741AABAB2C4A440ADD3A6E6B0CA617070BEDEA740A4E2A555> 我 們 要 建 立 什 麼? 創 造 你 的 第 一 個 行 動 app 在 本 教 學 指 引 中, 你 將 會 學 習 如 何 建 立 一 個 行 動 app 此 app 會 從 雲 端 資 料 庫 中 羅 列 清 單, 而 此 app 會 藉 REST API 跟 資 料 庫 進 行 溝 通 此 app 外 觀 如 下 : 開 始 前 o 教 學 對 象 : 初 學 者, 您 的 第 一 個

More information

Windows XP

Windows XP Windows XP What is Windows XP Windows is an Operating System An Operating System is the program that controls the hardware of your computer, and gives you an interface that allows you and other programs

More information

RecyclerView and CardVew

RecyclerView and CardVew RecyclerView and CardView 建國科技大學資管系饒瑞佶 2017/10 V1 CardView CardView A CardView is a ViewGroup. Like any other ViewGroup, it can be added to youractivity or Fragment using a layout XML file. To create an

More information

Microsoft Word - template.doc

Microsoft Word - template.doc HGC efax Service User Guide I. Getting Started Page 1 II. Fax Forward Page 2 4 III. Web Viewing Page 5 7 IV. General Management Page 8 12 V. Help Desk Page 13 VI. Logout Page 13 Page 0 I. Getting Started

More information

pico說明書繁體new

pico說明書繁體new P ICO 智慧型微投影機 使用手冊 電話 + 8 8 6-2 - 2 7 9 0-6 3 0 8 地址 台北市內湖區新湖一路90號4樓 w w w. q p o i n t e k. c o m * 內容僅供參考 功能會隨系統版本有所變動 * 如有操作上的問題請洽詢經銷商 本公司或至官網 支援服務..T.I. QP Q.P.T.I. Corporation 索 引 1. 內 容 物 2. 功 能

More information

Microsoft PowerPoint - 資料庫正規化(ccchen).ppt

Microsoft PowerPoint - 資料庫正規化(ccchen).ppt 資 料 庫 正 規 化 正 規 化 的 概 念 何 謂 正 規 化 (Normalization)?? 就 是 結 構 化 分 析 與 設 計 中, 建 構 資 料 模 式 所 運 用 的 一 個 技 術, 其 目 的 是 為 了 降 低 資 料 的 重 覆 性 與 避 免 更 新 異 常 的 情 況 發 生 因 此, 就 必 須 將 整 個 資 料 表 中 重 複 性 的 資 料 剔 除, 否 則

More information

NCKU elearning Manual

NCKU elearning Manual 成 績 一 簡 介... 3 二 成 績 彙 總... 4 三 瀏 覽 成 績... 7 1. 成 績 分 析 長 條 圖... 7 2. 成 績 單... 7 3. 用 戶 報 告... 11 四 類 別 和 項 目... 12 1. 簡 單 檢 視... 12 2. 完 整 檢 視... 15 五 成 績 匯 入... 16 六 成 績 匯 出... 19 1. 成 績 登 錄 檔... 19

More information

101年度社會福利方案 網路線上操作手冊

101年度社會福利方案     網路線上操作手冊 104 年 度 社 會 福 利 服 務 方 案 網 路 申 請 線 上 操 作 手 冊 中 華 社 會 福 利 聯 合 勸 募 協 會 103 年 8 月 編 製 中 華 社 會 福 利 聯 合 勸 募 協 會 方 案 線 上 申 請 操 作 1 2 4 0-12 104 年 度 社 會 福 利 服 務 方 案 網 路 申 請 線 上 操 作 手 冊 一 方 案 線 上 申 請 流 程 方 案 線

More information

Android Android Android SDK iv

Android Android Android SDK iv Android Market Google Android SDK Apple Google Microsoft b2c b 2010 Internet Android how why iii Android 240... Android Android SDK iv Android Market Google Android SDK Visual C++ Java N-tier J2EE Unix/Linux

More information

Acronis Backup & Recovery 11 進階版本

Acronis Backup & Recovery 11 進階版本 Acronis Backup & Recovery 11 快 速 入 門 指 南 適 用 於 以 下 版 本 : Advanced Server Virtual Edition Advanced Server SBS Edition Advanced Workstation Server for Linux Server for Windows Workstation 目 錄 1 主 要 元 件...4

More information

图 6-1 主界面 MainActivity 界面对应的布局文件 (activity_main.xml) 如下所示 : <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="

图 6-1 主界面 MainActivity 界面对应的布局文件 (activity_main.xml) 如下所示 : <?xml version=1.0 encoding=utf-8?> <RelativeLayout xmlns:android= 第 6 章广播接收者 应用案例 案例 6-1 CallRecord( 通话记录 ) 一 案例描述 1 考核知识点 030006001: 广播接收者简介 030006002: 广播接收者的创建 2 练习目标 广播的静态注册和使用 使用广播处理处理事件 3 需求分析手机最重要的功能就是通话功能, 同样储存通话记录也是必不可少的 该案例使用广 播接收者自己实现通话记录的功能 包括呼出电话 已接来电 未接来电以及通话产生的

More information

1.ai

1.ai HDMI camera ARTRAY CO,. LTD Introduction Thank you for purchasing the ARTCAM HDMI camera series. This manual shows the direction how to use the viewer software. Please refer other instructions or contact

More information

投影片 1

投影片 1 文 件 的 格 式 化 本 章 重 點 文 字 的 格 式 設 定 段 落 格 式 的 處 理 使 用 定 位 點 讓 文 章 整 齊 排 列 美 化 條 列 項 目 為 文 字 及 段 落 加 上 框 線 與 網 底 複 製 文 字 與 段 落 的 格 式 設 定 文 字 的 方 向 與 亞 洲 方 式 配 置 將 段 落 首 字 放 大 調 整 英 文 字 的 大 小 寫 與 全 半 形 2 設

More information

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc References (Section 5.2) Hsuan-Tien Lin Deptartment of CSIE, NTU OOP Class, March 15-16, 2010 H.-T. Lin (NTU CSIE) References OOP 03/15-16/2010 0 / 22 Fun Time (1) What happens in memory? 1 i n t i ; 2

More information

ASP.NET MVC Visual Studio MVC MVC 範例 1-1 建立第一個 MVC 專案 Visual Studio MVC step 01 Visual Studio Web ASP.NET Web (.NET Framework) step 02 C:\M

ASP.NET MVC Visual Studio MVC MVC 範例 1-1 建立第一個 MVC 專案 Visual Studio MVC step 01 Visual Studio Web ASP.NET Web (.NET Framework) step 02 C:\M ASP.NET MVC Visual Studio 2017 1 1-4 MVC MVC 範例 1-1 建立第一個 MVC 專案 Visual Studio MVC step 01 Visual Studio Web ASP.NET Web (.NET Framework) step 02 C:\MvcExamples firstmvc MVC 1-7 ASP.NET MVC 1-9 ASP.NET

More information

6-1-1極限的概念

6-1-1極限的概念 選 修 數 學 (I-4 多 項 式 函 數 的 極 限 與 導 數 - 導 數 與 切 線 斜 率 定 義. f ( 在 的 導 數 : f ( h 對 實 函 數 f ( 若 極 限 存 在 h h 則 稱 f ( 在 點 可 微 分 而 此 極 限 值 稱 為 f ( 在 的 導 數 以 f ( 表 示 f ( f ( 函 數 f ( 在 的 導 數 也 可 以 表 成 f ( 註 : 為 了

More information

目 錄 一 ANDROID 開發系統需求 作業系統 開發工具... 1 二 安裝 ANDROID 開發工具 安裝 JDK 使用 APT-GET 安裝 使用套件管理程式安裝... 9 三 ANDROID 程式撰寫... 1

目 錄 一 ANDROID 開發系統需求 作業系統 開發工具... 1 二 安裝 ANDROID 開發工具 安裝 JDK 使用 APT-GET 安裝 使用套件管理程式安裝... 9 三 ANDROID 程式撰寫... 1 Android On Linux 簡易安裝開發教學 Installing Google Android SDK 2.0.1 On Ubuntu 9.10 Desktop 目 錄 一 ANDROID 開發系統需求... 1 1. 作業系統... 1 2. 開發工具... 1 二 安裝 ANDROID 開發工具... 1 1. 安裝 JDK... 1 2. 使用 APT-GET 安裝... 2 3. 使用套件管理程式安裝...

More information

Microsoft Word - 第3章.doc

Microsoft Word - 第3章.doc 第 3 章 多个用户界面的程序设计 3.1 页面的切换与传递参数值 3.1.1 传递参数组件 Intent Intent 是 Android 系统的一种运行时的绑定机制, 在应用程序运行时连接两个不同组件 在 Android 的应用程序中不管是页面切换还是传递数据或是调用外部程序都可能要用到 Intent Intent 负责对应用中某次操作的动作 动作涉及的数据 附加数据进行描述, Android

More information

1. 安 裝 1.1 手 機 端 安 裝 檔 (cab 檔 ) 請 您 將 下 載 的 cab 檔 案 複 製 到 手 機 內 任 一 資 料 夾, 在 手 機 上 點 擊 cab 檔 案 後 即 可 開 始 安 裝 點 擊 本 檔 案 即 可 開 始 安 裝 請 於 您 的 手 機 上 繼 續 安

1. 安 裝 1.1 手 機 端 安 裝 檔 (cab 檔 ) 請 您 將 下 載 的 cab 檔 案 複 製 到 手 機 內 任 一 資 料 夾, 在 手 機 上 點 擊 cab 檔 案 後 即 可 開 始 安 裝 點 擊 本 檔 案 即 可 開 始 安 裝 請 於 您 的 手 機 上 繼 續 安 賽 微 輕 鬆 說 V2.0.0 使 用 者 操 作 手 冊 賽 微 輕 鬆 說 是 一 套 利 用 語 音 辨 識 技 術, 將 語 音 轉 成 文 字, 讓 您 在 手 機 上 輸 入 中 文 簡 訊 或 郵 件 的 軟 體 賽 微 輕 鬆 說 打 破 以 手 機 小 鍵 盤 輸 入 不 易 和 中 文 輸 入 法 限 制 的 籓 籬, 讓 您 快 速 完 成 編 輯 簡 訊 或 郵 件 當 您

More information

新・解きながら学ぶJava

新・解きながら学ぶJava 481! 41, 74!= 40, 270 " 4 % 23, 25 %% 121 %c 425 %d 121 %o 121 %x 121 & 199 && 48 ' 81, 425 ( ) 14, 17 ( ) 128 ( ) 183 * 23 */ 3, 390 ++ 79 ++ 80 += 93 + 22 + 23 + 279 + 14 + 124 + 7, 148, 16 -- 79 --

More information

EJB-Programming-3.PDF

EJB-Programming-3.PDF :, JBuilder EJB 2.x CMP EJB Relationships JBuilder EJB Test Client EJB EJB Seminar CMP Entity Beans Value Object Design Pattern J2EE Design Patterns Value Object Value Object Factory J2EE EJB Test Client

More information

Microsoft Word - 10100000191.doc

Microsoft Word - 10100000191.doc 臺 灣 集 中 保 管 結 算 所 股 份 有 限 公 司 辦 理 認 購 ( 售 ) 權 證 帳 簿 劃 撥 作 業 配 合 事 項 部 分 條 文 修 正 條 文 對 照 表 附 件 1 修 正 條 文 現 行 條 文 說 明 第 五 章 認 購 ( 售 ) 權 證 之 權 利 行 使 第 一 節 認 購 權 證 採 證 券 給 付 或 以 證 券 給 付 之 認 購 權 證 發 行 人 得 選

More information

Lecture01_Android介绍

Lecture01_Android介绍 移动平台应用软件开发 Android 介绍 主讲 : 张齐勋 zhangqx@ss.pku.edu.cn 移动平台应用软件开发 课程建设小组 北京大学 二零一七年秋北京 Android是什么 Android不仅仅是一个操作系统 它更是一个完整的软件框 架 Android基于Linux内核 2005年Google公司收购了Android公司 Google公司选择使用Apache许可证开放Android源码

More information

iziggi

iziggi iziggi 1 1 iziggi-hd 2 iziggi-hd 4 IPEVO iziggi-hd 6 iziggi-hd 8 iziggi-hd 9 Whiteboard App USB 10 iziggi-hd 11 iziggi-hd Live View WiFi 11 12 LED 12 iziggi-hd 13 Apple TV AirPlay 13 14 15 iziggi-hd *

More information

Cadence SPB 15.2 VOICE Cadence SPB 15.2 PC Cadence 3 (1) CD1 1of 2 (2) CD2 2of 2 (3) CD3 Concept HDL 1of 1

Cadence SPB 15.2 VOICE Cadence SPB 15.2 PC Cadence 3 (1) CD1 1of 2 (2) CD2 2of 2 (3) CD3 Concept HDL 1of 1 Cadence SPB 15.2 VOICE 2005-05-07 Cadence SPB 15.2 PC Cadence 3 (1) CD1 1of 2 (2) CD2 2of 2 (3) CD3 Concept HDL 1of 1 1 1.1 Cadence SPB 15.2 2 Microsoft 1.1.1 Windows 2000 1.1.2 Windows XP Pro Windows

More information

BSP 烤箱 - 封面-2

BSP 烤箱 - 封面-2 BSPO615 使 用 及 安 裝 說 明 書 總 代 理 優 氏 集 團 客 林 渥 股 份 有 限 公 司 台 北 市 內 湖 區 行 愛 路 69 號 2 樓 TEL 02-2794 2588 FAX 02-2794 3789 台 中 市 北 屯 區 后 庄 路 1080-12 號 TEL 04-2422 0958 FAX 04-2422 0938 高 雄 市 左 營 區 政 德 路 633

More information

untitled

untitled JavaEE+Android - 6 1.5-2 JavaEE web MIS OA ERP BOSS Android Android Google Map office HTML CSS,java Android + SQL Sever JavaWeb JavaScript/AJAX jquery Java Oracle SSH SSH EJB+JBOSS Android + 1. 2. IDE

More information

第二組掃描器規範書

第二組掃描器規範書 第 二 組 掃 描 器 規 範 書 1. A4 規 格 2400 DPI( 含 ) 以 上 掃 描 器 第 1 項 ) 1-1. 機 型 : 平 台 式 掃 瞄 器 1-2. 光 學 解 析 度 :2400x2400DPI( 含 ) 以 上 1-3. 最 大 輸 出 解 析 度 :9600DPI( 含 ) 以 上 1-4. 介 面 :SCSI 介 面 ( 附 介 面 卡 及 傳 輸 線 ) 或 USB

More information

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入 100 年 特 種 考 試 地 方 政 府 公 務 人 員 考 試 試 題 等 別 : 三 等 考 試 類 科 : 資 訊 處 理 科 目 : 系 統 分 析 與 設 計 一 請 參 考 下 列 旅 館 管 理 系 統 的 使 用 案 例 圖 (Use Case Diagram) 撰 寫 預 約 房 間 的 使 用 案 例 規 格 書 (Use Case Specification), 繪 出 入

More information

Android 开发教程

Android 开发教程 封面 1 文件存取编程基础 文件 文件可以用来存储比使用引用更大数量的数据 Android 提供方法来读 写文件 只有本地文件可以被访问 优点 : 可以存储大容量的数据 缺点 : 文件更新或是格式改变可能会导致巨大的编程工作 文件操作 读文件 Context.openFileInput(String name) 打开一个与应用程序联系的私有文件输入流 当文件不存在时抛出 FileNotFoundException

More information

Internet Explorer 8... 1 Internet Explorer 9... 15 Internet Explorer 10... 29 Internet Explorer 11... 43

Internet Explorer 8... 1 Internet Explorer 9... 15 Internet Explorer 10... 29 Internet Explorer 11... 43 INTERNET EXPLORER CONFIGURATION MANUAL EXCAVATION PERMIT MANAGEMENT SYSTEM (XPMS) 01 August 2014 Version 1.0 Internet Explorer 8... 1 Internet Explorer 9... 15 Internet Explorer 10... 29 Internet Explorer

More information

關 於 教 育 部 學 習 拍 立 得 教 育 部 於 (103) 年 度 整 合 各 縣 市 政 府 部 屬 機 構 大 學 及 民 間 的 數 位 資 源 與 服 務, 依 不 同 類 型, 分 別 匯 集 於 教 育 大 市 集 教 育 百 科 教 育 媒 體 影 音 教 育 部 學 習 拍

關 於 教 育 部 學 習 拍 立 得 教 育 部 於 (103) 年 度 整 合 各 縣 市 政 府 部 屬 機 構 大 學 及 民 間 的 數 位 資 源 與 服 務, 依 不 同 類 型, 分 別 匯 集 於 教 育 大 市 集 教 育 百 科 教 育 媒 體 影 音 教 育 部 學 習 拍 教 育 部 學 習 拍 立 得 - 教 師 版 使 用 手 冊 v2.0 2015.10.31 關 於 教 育 部 學 習 拍 立 得 教 育 部 於 (103) 年 度 整 合 各 縣 市 政 府 部 屬 機 構 大 學 及 民 間 的 數 位 資 源 與 服 務, 依 不 同 類 型, 分 別 匯 集 於 教 育 大 市 集 教 育 百 科 教 育 媒 體 影 音 教 育 部 學 習 拍 立 得

More information

Eclipse C C++, or

Eclipse C C++,  or Eclipse C C++, Emailctchen@pl.csie.ntut.edu.tw or s1669021@ntut.edu.tw, s2598003@ntut.edu.tw http://pl.csie.ntut.edu.tw/~ctchen, http://www.ntut.edu.tw/~s2598003/ 2004/9/10 (0.02 ) Eclipse http://www.eclipse.org

More information

AL-MX200 Series

AL-MX200 Series PostScript Level3 Compatible NPD4760-00 TC Seiko Epson Corporation Seiko Epson Corporation ( ) Seiko Epson Corporation Seiko Epson Corporation Epson Seiko Epson Corporation Apple Bonjour ColorSync Macintosh

More information

内 容 提 要 将 JAVA 开 发 环 境 迁 移 到 Linux 系 统 上 是 现 在 很 多 公 司 的 现 实 想 法, 而 在 Linux 上 配 置 JAVA 开 发 环 境 是 步 入 Linux 下 JAVA 程 序 开 发 的 第 一 步, 本 文 图 文 并 茂 地 全 程 指

内 容 提 要 将 JAVA 开 发 环 境 迁 移 到 Linux 系 统 上 是 现 在 很 多 公 司 的 现 实 想 法, 而 在 Linux 上 配 置 JAVA 开 发 环 境 是 步 入 Linux 下 JAVA 程 序 开 发 的 第 一 步, 本 文 图 文 并 茂 地 全 程 指 内 容 提 要 将 JAVA 开 发 环 境 迁 移 到 Linux 系 统 上 是 现 在 很 多 公 司 的 现 实 想 法, 而 在 Linux 上 配 置 JAVA 开 发 环 境 是 步 入 Linux 下 JAVA 程 序 开 发 的 第 一 步, 本 文 图 文 并 茂 地 全 程 指 导 你 搭 建 Linux 平 台 下 的 JAVA 开 发 环 境, 包 括 JDK 以 及 集

More information

Symantec™ Sygate Enterprise Protection 防护代理安装使用指南

Symantec™ Sygate Enterprise Protection 防护代理安装使用指南 Symantec Sygate Enterprise Protection 防 护 代 理 安 装 使 用 指 南 5.1 版 版 权 信 息 Copyright 2005 Symantec Corporation. 2005 年 Symantec Corporation 版 权 所 有 All rights reserved. 保 留 所 有 权 利 Symantec Symantec 徽 标 Sygate

More information

基于UML建模的管理管理信息系统项目案例导航——VB篇

基于UML建模的管理管理信息系统项目案例导航——VB篇 PowerBuilder 8.0 PowerBuilder 8.0 12 PowerBuilder 8.0 PowerScript PowerBuilder CIP PowerBuilder 8.0 /. 2004 21 ISBN 7-03-014600-X.P.. -,PowerBuilder 8.0 - -.TP311.56 CIP 2004 117494 / / 16 100717 http://www.sciencep.com

More information

Android + NFC

Android + NFC Android + NFC 建國科技大學資管系饒瑞佶 2017/3 v1 讀取 Tag UUID Android 2.3.3 (API Level 10) 才有支援完整的 NFC 功能 只要 NFC 相容都讀的到 (NFC 或 Mifare) 建立新專案修改 AndroidManifest.xml 加入 , 如果有 NFC Tag 進入感測範圍, 本 App 也會變成可處理的

More information

PowerPoint 簡報

PowerPoint 簡報 UI 設計 Android 專案目錄架構 Android 專案建立後會自動產生 3 個主要目錄 src:java 程式檔案 res: 資源 ( 文字 圖形 聲音檔案等 ) 與 UI 設定有關的 layout 檔 此目錄內檔案名稱只能為小寫字母 數字 _. gen:r.java 根據 res 目錄內容自動產生 不要去修改 R.java Android 中所有的資源檔案 ( 圖片 XML 等 ) 命名都必須使用英文小寫,

More information

瑞興銀行

瑞興銀行 網 路 銀 行 基 金 服 務 系 統 - 查 詢 類 操 作 手 冊 中 華 民 國 一 零 五 年 版 第 1 頁 目 錄 文 件 導 引 說 明... 3 壹 基 金 服 務 - 查 詢 類... 1 一 我 的 基 金 ( 含 使 用 者 風 險 等 級 )... 1 1.1 更 新 損 益... 2 二 基 金 往 來 明 細 查 詢 ( 含 配 息 )... 5 2.1 基 金 單 筆

More information

K7VT2_QIG_v3

K7VT2_QIG_v3 ............ 1 2 3 4 5 [R] : Enter Raid setup utility 6 Press[A]keytocreateRAID RAID Type: JBOD RAID 0 RAID 1: 2 7 RAID 0 Auto Create Manual Create: 2 RAID 0 Block Size: 16K 32K

More information

Microsoft PowerPoint - 03 开发入门.ppt [兼容模式]

Microsoft PowerPoint - 03 开发入门.ppt [兼容模式] 手 机 应 用 平 台 软 件 开 发 3 开 发 入 门 刘 宁 Email:liuning2@mail.sysu.edu.cn 课 程 简 介 课 程 目 标 Android 开 发 准 备 工 作 开 发 包 及 工 具 安 装 创 建 HelloWorld Android 程 序 设 计 基 础 创 意 移 动 应 用 创 意 移 动 应 用 创 意 移 动 应 用 创 意 移 动 应 用

More information

行 政 院 衛 生 署 醫 事 人 員 繼 續 教 育 積 分 管 理 系 統 使 用 手 冊 ( 醫 事 人 員 版 ) 中 華 民 國 100 年 2 月 15 日 文 件 修 訂 歷 史 版 本 制 / 修 訂 人 員 變 更 內 容 摘 要 頁 數 提 供 日 期 V1.0 蕭 鳴 孙 初 版 制 訂 All 100.1.18 目 錄 壹 登 入 說 明... 3 貳 操 作 描 述...

More information

計 算 機 概 論 Computer Siene ))) 8- 啟 動 與 認 識 PowerPoint [ 開 始 ] \ [ 所 有 程 式 ] \ [Mirosoft Offie] \ [Mirosoft Offie PowerPoint 200] PowerPoint [ 新 增 ] \ [

計 算 機 概 論 Computer Siene ))) 8- 啟 動 與 認 識 PowerPoint [ 開 始 ] \ [ 所 有 程 式 ] \ [Mirosoft Offie] \ [Mirosoft Offie PowerPoint 200] PowerPoint [ 新 增 ] \ [ Chpter 8 PowerPoint 簡 報 製 作 8- 啟 動 與 認 識 PowerPoint 8-2 簡 報 編 輯 與 格 式 化 8-3 列 印 投 影 片 8-4 從 佈 景 主 題 建 立 簡 報 計 算 機 概 論 Computer Siene ))) 8- 啟 動 與 認 識 PowerPoint [ 開 始 ] \ [ 所 有 程 式 ] \ [Mirosoft Offie]

More information

PPBSalesDB.doc

PPBSalesDB.doc Pocket PowerBuilder SalesDB Pocket PowerBuilder PDA Pocket PowerBuilder Mobile Solution Pocket PowerBuilder Pocket PowerBuilder C:\Program Files\Sybase\Pocket PowerBuilder 1.0 %PPB% ASA 8.0.2 ASA 9 ASA

More information

Guide to Install SATA Hard Disks

Guide to Install SATA Hard Disks SATA RAID 1. SATA. 2 1.1 SATA. 2 1.2 SATA 2 2. RAID (RAID 0 / RAID 1 / JBOD).. 4 2.1 RAID. 4 2.2 RAID 5 2.3 RAID 0 6 2.4 RAID 1.. 10 2.5 JBOD.. 16 3. Windows 2000 / Windows XP 20 1. SATA 1.1 SATA Serial

More information