730 likes | 929 Views
人機介面 Android Programing. 進一步介紹開發環境. Emulator. Debug Tools. 建立第一個 App – BMI. Demo Code. Plan & Design. Coding- UI 描述 與設計. 程式流程解讀. 與使用者對話 - Dialog. Activities & Intent. Data Storage. 多媒體 - 圖片與聲音. 後續延伸 -Web Service. Emulator. 為什麼需要模擬器 ? 方便開發 特定情況下 , 可透過模擬器模擬 (EX: 兩支手機 )
E N D
進一步介紹開發環境 Emulator Debug Tools 建立第一個App – BMI Demo Code Plan & Design Coding- UI描述 與設計 程式流程解讀 與使用者對話- Dialog Activities & Intent Data Storage 多媒體-圖片與聲音 後續延伸-Web Service
Emulator • 為什麼需要模擬器? • 方便開發 • 特定情況下,可透過模擬器模擬(EX: 兩支手機) • 啟動與使用 Android 模擬器 • 更改模擬器的設定-外觀,方向切換 • 練習: Emulator's Communication Reference: http://developer.android.com/guide/developing/tools/emulator.html
ADB (android debug bridge) • 甚麼是adb ? • 相關指令: • 檔案檢視-ls • 將檔案上傳到模擬器 - adb push 001.jpg /sdcard • 將檔案從模擬器上下載 - adbpull /sdcard/001.jpg • 刪除檔案 rmxxx.jpg • 建立模擬器 • 操作模擬器 • 安裝apk
關於BUG Bug Developers
Android 提供的Debug 環境 • Debug View • 設定/觀察中斷點 • 留Log : Logcat • Logcat with Console monitor • TraceView
開發工具簡介- DDMS • 透過DDMS 模擬手機的各種狀況 • try:傳簡訊 • try:打電話 • Reference : http://code.google.com/intl/zh-TW/android/reference/ddms.html
REFERENCE: • Debug Tasks • android/docs/guide/developing/debug-tasks.html • Logcat • http://developer.android.com/intl/zh-TW/guide/developing/tools/adb.html#logcat • Filtering Log Output • Controlling Log Output Format • 輔助開發工具-OpenIntents: • http://code.google.com/p/openintents/wiki/SensorSimulator • 使用 Android 虛擬機器 • http://code.google.com/p/androidbmi/wiki/PlayEmulator • ADB 指令: • http://developer.android.com/intl/zh-TW/guide/developing/tools/adb.html
進一步介紹開發環境 Emulator Debug Tools 建立第一個App – BMI Plan & Design Pratice01- UILayOut Pratice02-完成程式邏輯 Pratice03-進行重構 Pratice04-Menu,Dialog Pratice05-Activities & Intent Pratice06-Data Storage Pratice07-圖片與動畫
怎麼做一個 App? Reference : http://whoswho.openfoundry.org/workshop/details/61-kalug--android-.html
今日目標- • 完成一個簡單的應用程式 • Weight / BMI 計算器 • 參考來源: • http://sites.google.com/site/gasodroid/Home/androidentry3
BMI ? • 身高體重指數(又稱身體質量指數,英文為Body Mass Index,簡稱BMI)是一個計算值,主要用於統計用途。當我們需要比較及分析一個人的體重對於不同高度的人所帶來的健康影響時,BMI值是一個中立而可靠的指標
Plan - 想法 • 輸入身高與體重,輸出BMI值,以及建議 • 記下每天的體重 • 可以設定目標,決定日期與目標體重,在每天輸入時,告訴我一些建議 • 提醒功能: 顯示一個小機器人,變胖時跟著變胖,變瘦時跟著變瘦,同時發出鼓勵/沮喪的音效 • 提醒功能: 透過提醒列,提醒我 • 監督功能: 如果一直過重超過xx天 ,自動送出簡訊(SMS)告訴朋友 • anything else ?
先完成Prototype: • 輸入身高與體重,取得BMI值的建議 • 顯示結果,以及建議 • 調整顯示內容的方式 • 資料儲存 • 動畫顯示
針對目標,我們要做的事: • 需求分析 • 輸入 • 體重 • 身高 • 輸出 • BMI結果 • 建議 • LayOut- 介面設計, UI 決定, 操作方式決定 • 各種可用介面元件列表 • http://developer.android.com/guide/tutorials/views/index.html • Edit Text • http://developer.android.com/intl/zh-TW/reference/android/widget/EditText.html • Get/setText method • EditText Attributes • android:numeric • TextView • Button
針對目標,我們要做的事: • 需求分析 • 輸入 • 體重(EditText) • 身高(EditText) • 輸出 • BMI結果((TextView) • 建議(TextView) • LayOut- 介面設計, UI 決定, 操作方式決定 • 各種可用介面元件列表 • http://developer.android.com/guide/tutorials/views/index.html • Edit Text • http://developer.android.com/intl/zh-TW/reference/android/widget/EditText.html • Get/setText method • EditText Attributes • android:numeric • TextView • Button
進一步介紹開發環境 Emulator Debug Tools 建立第一個App – BMI Plan & Design Pratice01- UILayOut Pratice02-完成程式邏輯 Pratice03-進行重構 Pratice04-Menu,Dialog Pratice05-Activities & Intent Pratice06-Data Storage Pratice07-圖片與動畫
LayOut • Editbox : 輸入身高 • Editbox: 輸入體重 • Button:開始計算 • TextView:顯示結果 • TextView:顯示建議
進一步介紹開發環境 Emulator Debug Tools 建立第一個App – BMI Plan & Design Pratice01- UILayOut Pratice02-完成程式邏輯 Pratice03-進行重構 Pratice04-Menu,Dialog Pratice05-Activities & Intent Pratice06-Data Storage Pratice07-圖片與動畫
範例(Project_Workshop) • Study02 : 完成程式邏輯部分, • Study03 : 進行重構, • Study04 : 加入選單,並且透過選單,建立Dialog. • Study05 :建立Activity , 並透過Intent呼叫,以及activity之間的資料傳遞 • Study06 : • 1. Preference • 2. Daily widget Record ->SQLite • Study07 : Frame Animation機制介紹
目標: • 功能: • 處理按下"確定"按鈕後,會發生的事-計算BMI,給予建議與結果 • 實際上要做的事: • 導入用到的模組、取得介面元件、對按鈕指定動作。
開發期間可以參考的文件 • 官方Reference文件 • http://developer.android.com/intl/zh-TW/reference/packages.html • 官方的開發基礎教學文件 • http://developer.android.com/intl/zh-TW/guide/index.html • 有哪些Views (LayOut和UI)可以使用 • http://developer.android.com/intl/zh-TW/guide/tutorials/views/index.html • <AndroidSDK目錄>\docs\ 底下有相同的文件,不用上網查也可以 • EX: C:\Android\docs\
LayOut-將描述字串抽離到String.xml • "請輸入身高" 改到 Strings.xml 裡的 msg_Height • "170" 改到String.xml裡的 value_Height • .....
LayOut-使EditText只能輸入數字 • EditText->Property-> Numeric,選擇 Integer
Code- UI 類別的宣告 • 宣告一個Button Instance
main.xml 程式 Code-與UI 資源檔的Binding • 存取UI 的識別符號
進一步介紹開發環境 Emulator Debug Tools 建立第一個App – BMI Plan & Design Pratice01- UILayOut Pratice02-完成程式邏輯 Pratice03-進行重構 Pratice04-Menu,Dialog Pratice05-Activities & Intent Pratice06-Data Storage Pratice07-圖片與動畫
重構-讓程式碼更容易閱讀 • findViews() • SetListener() • 重新命名變數 • 針對建議描述的部分->新增XML來描述字串
建立Alert Dialog • http://developer.android.com/intl/zh-TW/reference/android/app/Dialog.html • http://developer.android.com/intl/zh-TW/guide/topics/ui/dialogs.html
進一步介紹開發環境 Emulator Debug Tools 建立第一個App – BMI Plan & Design Pratice01- UILayOut Pratice02-完成程式邏輯 Pratice03-進行重構 Pratice04-Menu,Dialog Pratice05-Activities & Intent Pratice06-Data Storage Pratice07-圖片與動畫
目標: • 改良顯示的方式 - 我們想將結果獨立顯示在新的頁面 • 將會使用到: • another Activity • Intent Reference : http://code.google.com/p/androidbmi/wiki/LifeCycle
先來複習Activity • Activity的生命週期 • 獨立Activity / 相依Activity 的差異,以及使用時機 • EX:2 Activity • 1.MainActivity • 2.Report
MainActivity: onCreate -> onStart -> onResume • 呼叫Report: onPause(1) -> onCreate(2) -> onStart(2) -> onResume(2) -> onStop(1) • 回到 MainActivity :onPause(2) -> onRestart(1) -> onStart(1) -> onResume(1) -> onStop(2) -> onDestroy(2)
開始- 預備建立新的Activity • 5.1 建立新的Activity class • 5.2 建立新的LayOut xml file
Intent的使用- 呼叫新的Activity,資料的傳遞 • 5.4. Intent(意圖) 初始化 • 5.5 透過Bundle 記錄要傳遞的參數 • 5.6. 將Intent 傳入Android 框架中 • 修改AndroidManifest.xml • 註冊Activity • 事先註明會用到的服務
Intent的使用- 呼叫新的Activity,資料的傳遞 • AndroidManifest.xml • 註冊Activity,service, receiver,provider • uses-permission :存取SMS、能否存取聯絡簿、相機功能,… • Reference • Android manifest • http://developer.android.com/reference/android/R.styleable.html#AndroidManifest • Intent Action • http://developer.android.com/reference/android/content/Intent.html