Presentation is loading. Please wait.

Presentation is loading. Please wait.

Part 2 開發Android應用程式的流程

Similar presentations


Presentation on theme: "Part 2 開發Android應用程式的流程"— Presentation transcript:

1

2 Part 2 開發Android應用程式的流程
單元05 瞭解Android程式專案的架構和查詢SDK說明文件 單元06 使用TextView、EditText和Button介面元件 單元07 程式的錯誤類型和除錯方法 單元08 使用Android模擬器的技巧 單元09 良好的程式架構是程式開發和維護的重要基礎 單元10升級Android手機程式成為平板電腦程式

3 單元8 使用Android模擬器的技巧

4 啟動模擬器的時機 在執行Eclipse之後先點選工具列上的AVD Manager按鈕(舊版的開發工具是Android SDK和AVD Manager共用同一個按鈕),就會看到如下的對話盒。在對話盒的AVD清單中選擇要啟動的AVD,再按下Start…按鈕

5 使用AVD時的異常錯誤 已經啟動AVD但是Eclipse卻嘗試再啟動一次AVD,最後顯示AVD無法啟動而終止。
這是因為Eclipse沒有偵測到已經啟動的AVD,首先找到Eclipse工具列最右邊有一個名稱叫做Open Perspective的按鈕,點選它然後選擇其中的DDMS選項 在左邊的視窗會顯示目前執行中的模擬器的名稱,從模擬器名稱上方的工具列中找到最右邊有一個向下的三角形按鈕,點選該按鈕後選擇最下面的Reset adb,就可以讓Eclipse重新和AVD取得連結,然後再點選Eclipse工具列最右邊的Java按鈕切換成原來的程式編輯畫面,重新執行程式。 5

6 使用AVD時的異常錯誤 有找到AVD但是在安裝程式的過程中失敗,並顯示要uninstall程式。
這是因為目前要執行的程式和之前測試過的程式互相衝突,要解決這個問題請切換到模擬器並回到Home screen畫面,然後點選Apps按鈕,進入應用程式瀏覽畫面,然後點選其中的Settings選項,再從顯示的項目中選擇Apps就會出現我們之前測試過的程式,在畫面中點選我們測試過程式並選擇Uninstall 6

7 Eclipse選擇不同版本AVD的規則 Eclipse在選擇AVD時會同時考慮程式使用的Android版本和minSdkVersion屬性的設定值,它會以二者中比較低的版本決定要啟動的AVD。舉例來說,如果我們有三個程式專案,它們使用的Android版本和minSdkVersion屬性設定如下: 專案一: Android minSdkVersion = 7(也就是Android 2.1) 專案二: Android minSdkVersion = 9(也就是Android 2.3.1) 專案三: Android minSdkVersion = 11(也就是Android 3.0) 另外在Eclipse中我們已經建立好以下的AVD: AVD1: Android 2.2 AVD2: Android 2.3.3 AVD3: Android 3.0 則當執行專案一的程式時Eclipse會啟動AVD1,執行專案二的程式時Eclipse會啟動AVD2,執行專案三的程式時Eclipse也會啟動AVD2。 7

8 同時執行多個AVD 我們可以同時啟動多個AVD,當程式執行時,Eclipse會自動從執行中的AVD挑選條件適合的來使用,所謂條件適合是說只要AVD的版本大於或等於程式使用的Android版本或是minSdkVersion屬性的設定值即可。 舉例來說,如果我們有三個程式專案,它們使用的Android版本和minSdkVersion屬性設定如下: 專案一: Android minSdkVersion = 7(也就是Android 2.1) 專案二: Android minSdkVersion = 9(也就是Android 2.3.1) 專案三: Android minSdkVersion = 11(也就是Android 3.0) 另外在電腦中我們已經執行以下的AVD: AVD1: Android 2.2 AVD2: Android 3.0 則當執行專案一的程式時Eclipse會彈出對話盒要求我們從以上二個AVD中選擇一個使用,執行專案二的程式時Eclipse就會直接使用AVD2,執行專案三的程式時Eclipse也會直接使用AVD2。 8

9 使用AVD的除錯功能 在開發程式的過程中,除錯是很重要的一個步驟,但是有一些錯誤並不是單純的程式碼邏輯問題,而是和Android平台的核心運作流程有關,像是Activity的狀態轉換、螢幕的重繪區域和頻率、或是CPU的使用量等,此外程式在除錯之後可能還必須對它的執行效率進行調整,這一類程式開發的需求就必須藉助模擬器的相關設定。 9

10 使用AVD的除錯功能 先回到模擬器操作畫面的首頁,然後按下螢幕正下方的棋盤狀按鈕,再選擇Dev Tools > Development Settings 10

11 使用AVD的除錯功能 1. Debug App 選擇要除錯的程式。當我們從Eclipse中啟動程式之後,該程式會先被載入到手機模擬器中並完成安裝,安裝後的程式就會在這個項目的清單中出現供我們選擇。事實上要進行程式除錯並不需要設定這個項目,只要直接在Eclipse中設定程式碼的中斷點即可,只是如果同時加上這個項目的設定會有以下二個效果: i. 如果程式碼的中斷點停留太久,Android系統也不會發出例外訊息(exception error); ii. 配合下一個Wait for debugger選項讓程式先等待手機模擬器的debugger完成啟動之後再開始執行程式。 11

12 使用AVD的除錯功能 2. Wait for debugger 必須設定上一個項目才能使用,它的功能如同上一個項目中的說明。設定這個項目可以幫助我們對程式的onCreate()方法除錯。 3. No Pointer Location 可以藉由設定這個項目(從下拉式選單中點選Pointer Location)讓模擬器用水平和垂直線的交叉方式顯示目前使用者點選的螢幕位置。 12

13 使用AVD的除錯功能 4. Show running processes 設定這個項目後會在螢幕右上方顯示目前系統正在執行的程式
5. Show screen updates 像Android程式這種使用圖形介面的操作模式,需要不斷地執行重繪畫面的動作,以反應程式的狀態。設定這個項目會讓手機畫面在重繪之前,先顯示一個粉紅色的矩形表示即將重繪的區域,讓程式開發者觀察程式畫面重繪的情形。這項功能對於繪圖相關的應用程式來說,可以幫助瞭解繪圖的效率。 13

14 使用AVD的除錯功能 6. Disable compatibility mode 平板電腦模擬器執行手機程式時,只利用螢幕的中央區域模擬手機的螢幕範圍。 7. Immediately destroy activities 設定此項目後,當Activity進入stop狀態時將會立刻結束,下一次要執行需要重新create。這項設定能夠幫助測試onSaveInstanceState()和 onCreate()方法中的程式碼。 14

15 使用AVD的除錯功能 8. Show CPU Usage 設定此項目後,模擬器螢幕上方會以橫條的方式顯示目前CPU的使用狀況。最上面的紅線表示整體CPU的使用率,下面的綠線表示顯示這個畫面所使用的CPU時間。這項功能可以幫助瞭解程式每一個執行步驟所需的計算量。 9. Show background 顯示程式切換時不屬於程式畫面的螢幕區域,例如當執行手機程式時,會在平板電腦螢幕的四周顯示背景區域(棋盤狀底圖)。 設定這些程式開發項目,下一次再執行手機模擬器時還是有效,因此當不需要使用時必須將它取消。 15

16 AVD的語言設定、時間設定和上網功能 如果想要變更操作介面的語言,可以從模擬器的Home screen中點選Apps按鈕,然後選擇Settings項目,再點選其中的Language & input,最後進入Language就可以選擇想要使用的介面語言 16

17 AVD的語言設定、時間設定和上網功能 從模擬器的Home screen中點選Apps按鈕,然後選擇Settings項目,再點選其中的Date & time,然後把右邊的Automatic time zone項目取消,再點選下面的Select time zone就可以進入時間地區選單,利用電腦的方向鍵往下搜尋直到出現Taipei項目再將它選取即可。 17

18 AVD的語言設定、時間設定和上網功能 必須在啟動AVD之前先讓電腦連上Internet,例如如果是撥接的ADSL上網方式必須先完成ADSL撥接的動作,這樣啟動之後的AVD才具備上網功能。 18

19 把實體手機或平板電腦當成模擬器 如果手邊有Android手機或平板電腦,也可以把它當成是模擬器,這樣做的好處是執行速度比較快。第一次使用時請依照下列步驟完成設定: 在開發程式的PC上安裝手機或平板電腦原廠提供的USB驅動程式。 安裝好之後將手機或平板電腦以USB介面連接到PC。 進入手機或平板電腦的「設定 > 應用程式」畫面啟用除錯相關功能,例如以HTC的手機來說必須勾選「未知的來源」、「開發 > USB除錯中」和「開發 > 允許模擬位置」(測試定位功能時使用)。 啟動Eclipse,切換到DDMS畫面,在左上方的Devices視窗中會顯示一個特殊名稱的模擬器,該模擬器就是實體手機或平板電腦。 回到Eclipse的Java畫面開始執行程式專案,該程式就會安裝到實體裝置中執行。 19

20 單元09 良好的程式架構是程式開發和維護的重要基礎

21 程式架構的重要 一個商業程式的程式碼規模少則數萬行,多則上百萬行,這類大型商業程式通常是由多人一起合作完成的。有些人負責操作介面的規劃和設計,有些人負責程式碼的撰寫,像這樣要能夠做到程式專案開發的分工就必須在程式的結構上做適當的安排。舉例來說,如果操作介面的設計和修改都必須牽動到程式碼的改變,那麼這二者的分工就會造成執行上的困難。 商業程式通常會有不同語言的版本,像是中文版、英文版、日文版…等,這些不同語言的版本只是在操作介面的訊息文字使用不同的語言,程式的運作和功能完全一樣,因此如果我們能在程式的結構上把所有的訊息文字獨立出來,避免摻雜在程式碼中,就能夠很方便地修改成各種語言的版本。

22 程式架構的重要 良好的程式架構是把整個程式專案區分成三個部分:
Model負責執行程式的核心運算和判斷邏輯,它透過View取得使用者輸入的資料,然後視需要從資料庫查詢相關的資訊,最後進行計算和判斷,再將得到的結果交給View來顯示。 View定義程式的使用者操作介面,程式操作介面的設計是一門專業的學問,這些工作應該獨立出來交由專門負責的研發人員完成。 Controller負責控制程式的執行流程以及物件之間的互動。它就像是交響樂團的指揮一樣,擔任整個系統的協調和控制的角色,讓程式正常運作。在採用事件驅動的程式架構中,它也負責事件的處理和回應。

23 改進「婚姻建議」程式的架構 1. findViewById()方法是用來取得宣告在介面佈局檔中的介面元件,它是屬於View的程式碼,而不是Model或Controller 2. setOnClickListener()是設定介面元件的事件處理程序,它也是屬於View的程式碼 3. 有許多字串直接寫在程式碼中,這樣會造成不同語言版本移植上的困難

24 改進「婚姻建議」程式的架構 1. 新增一個setupViewComponent()方法負責執行View相關的所有程式碼,包括取得介面佈局檔中的介面元件,和設定介面元件的事件處理程序。 2. 把寫在程式碼中的字串改成宣告在res/values/strings.xml資源檔中,然後程式碼再從資源類別R中取得需要的字串。 3. 在res/layout/main.xml介面佈局檔中我們也是把提示字串直接寫在介面元件的屬性中,這樣也會造成不同語言程式版本移植上的困難,因此我們同樣也把這些介面元件上的提示文字定義在strings.xml資源檔中,然後再到資源類別R中取出字串使用。

25 改進「婚姻建議」程式的架構 res/values/strings.xml:
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">婚姻建議</string> <string name="promptSex">性別:</string> <string name="promptAge">年齡:</string> <string name="promptBtnDoSug">婚姻建議</string> <string name="sugResult">結果:</string> <string name="sugNotHurry">還不急。</string> <string name="sugGetMarried">趕快結婚!</string> <string name="sugFindCouple">開始找對象。</string> <string name=“sexMale”>男</string> </resources>

26 改進「婚姻建議」程式的架構 res/layout/mail.xml:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_height="wrap_content" /> <EditText android:layout_height="wrap_content" android:inputType="text" android:text="" /> <TextView android:layout_width="fill_parent" <EditText android:inputType="number" </LinearLayout>

27 改進「婚姻建議」程式的架構 程式碼: private Button.OnClickListener
public class MarriSug extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { setupViewComponent(); } private void setupViewComponent() { // 從資源類別R中取得介面元件 // 設定button元件的事件listener private Button.OnClickListener btnDoSugOnClick = new Button.OnClickListener() { public void onClick(View v) { String strSex = edtSex.getText().toString(); int iAge = Integer.parseInt( edtAge.getText().toString()); String strSug = getString(R.string.sugResult); txtResult.setText(strSug); } };

28 單元10 升級Android手機程式成為平板電腦程式

29 手機程式在平板電腦上的執行畫面 Android平板電腦是使用Android 3.0以後的版本,不過新版的Android系統對於手機程式的相容性非常好,可以在完全不需要修改的情況下執行Android手機程式,只是這種執行方式會讓原來的手機程式在平板電腦的螢幕上顯得「獨樹一格」如下圖,基本上它就是一個放大版的手機程式畫面

30 升級手機程式的二種方式 1. 針對Android 平板電腦作最佳化 只要稍微修改手機程式專案的設定,就可以讓手機程式完全融入平板電腦的操作畫面中,而且修改後的手機程式也能夠在手機上執行,而且完全不會受到影響。 2. 另外還有一種方法是將手機程式完全升級成Android平板電腦程式,這樣一來升級後的程式就能夠使用新版Android平台的所有功能,但是經過修改後的程式就無法在手機上執行。 30

31 針對Android 平板電腦作最佳化 步驟一:執行Eclipse並開啟Android平板電腦模擬器,然後將手機程式載入到平板電腦模擬器中並測試功能是否正常,在絕大多數的情況下應該都能正常執行,確定無誤後請用模擬器的「回上一頁」按鈕退出程式。 步驟二:在Eclipse中開啟手機程式專案的AndroidManifest.xml檔,找到其中的<uses-sdk>標籤,然後在標籤中加上如下粗體字的屬性 <?xml version="1.0" encoding="utf-8"?> <manifest …> <uses-sdk android:minSdkVersion="3" android:targetSdkVersion=“11” /> <application …> … </application> </manifest> 這個屬性的是告知Android系統這個程式可以使用Android 3.0(API版本號碼就是11)的平板電腦模式執行。 31

32 針對Android 平板電腦作最佳化 步驟三: 將修改後的程式載入到Android平板電腦模擬器中進行測試,程式的執行畫面已經變成和平板電腦程式一樣。 步驟四: 為了能夠充分利用平板電腦增加的螢幕空間,可以在程式專案的res資料夾中新增xlarge相關的資料夾,並在裡頭新增大尺寸螢幕裝置(也就是平板電腦)專用的資源,像是程式介面佈局檔或是高解析度的圖檔,讓程式的操作畫面更加清楚美觀。 32

33 將程式升級成為Android平板電腦專屬程式
步驟一: 執行Eclipse開啟手機程式專案的AndroidManifest.xml,找到其中的<uses-sdk>標籤,然後修改android:minSdkVersion屬性如下: <?xml version="1.0" encoding="utf-8"?> <manifest …> <application …> … </application> <uses-sdk android:minSdkVersion="11" /> </manifest> 這個屬性值是告知Android系統這個程式必須使用Android 3.0(API版本號碼11)以後的SDK,因此不可以在舊版的Android平台上執行。 33

34 將程式升級成為Android平板電腦專屬程式
步驟二: 在Eclipse左邊的專案檢視視窗中用滑鼠右鍵點選專案名稱,然後在彈出的功能表中選擇Properties就會出現如下圖的對話盒。先在對話盒的左邊選擇Android,然後在右邊的清單中勾選平板電腦使用的Android版本,再按下Apply按鈕,最後按下OK按鈕。 34


Download ppt "Part 2 開發Android應用程式的流程"

Similar presentations


Ads by Google