Transcript Ch01

物件導向系統實務
*安裝Android App開發工具 – Eclipse
*建立Android App專案 – Eclipse
*App專案管理技巧 - Eclipse
*安裝Android App開發工具 - Android Studio
*建立Android App專案和安裝SDK - Android Studio
*App專案管理技巧 - Android Studio
Android造時勢
或是
時勢造Android
3
*
隨著半導體技術的發展,電腦的體積逐漸縮小,
同時運算效能卻不斷地提升。
*
Android平台
具有圖形操作介面,可以隨身攜帶的電子裝置,
能夠安裝新的程式,也提供程式開發工具,同時
還能夠上網以及具備強大的影音功能。
*
後PC時代
電腦已經開始走出以往我們熟知的桌上型和筆記
型電腦的框架,進一步深入我們的日常生活當中。
4
*
*
Android是由一位名字叫做Andy Rubin的美國人所
開發出來的軟體系統,2005年Google公司收購了
Android系統並網羅Rubin先生進入Google繼續發展
Android直到現在。
2007年11月Google結合許多重量級的國際手機設
備大廠(包括宏達電、摩托羅拉、LG、Samsung)
和晶片設計廠商(包括Intel、nVIDIA、Texas)、
電信業者(包括中國移動通訊、NTT DoCoMo、TMobile)和軟體研發廠商,公開發表Android平台。
http://source.android.com Android系統原始碼
http://developer.android.com Android App開發工具和各種
技術文件
5
*
2007年11月 Google結合33家手機相關軟硬體廠商組成
開放手持裝置聯盟(Open Handset Alliance, 簡稱
OHA),並共同對外公開Android智慧型手機平台,
Google也宣布舉辦Android程式開發挑戰賽(Android
Developer Challenge, ADC)。
*
2008年9月 T-Mobile公司發表世界第一台Android手機,
同時Google也正式對外公開Android 1.0版。
*
2008年12月
OHA聯盟宣佈新增14家廠商,包括國內的華碩、宏碁、
Garmin,以及許多國際知名的大廠像是Sony Ericsson、
中國聯通、日本Softbank Mobile、Toshiba等。
6
Android版本(名稱)
發表日期
功能說明
Android 1.0
2008年9月
Android智慧型手機平台誕生
Android 1.5 (Cupcake)
2009年4月
在攝影模式下可以觀看和拍攝影片
可以直接將影片上傳至YouTuBe
可以直接將照片上傳至Picasa
虛擬鍵盤
Bluetooth功能
動畫轉場效果
Android 1.6 (Donut)
2009年9月
改良拍照、攝影、和瀏覽介面
更新文字轉語音核心
支援WVGA螢幕模式
改善搜尋功能
改良執行速度
Android 2.1 (Éclair)
2010年1月
執行速度最佳化
支援更多螢幕模式
改良虛擬鍵盤功能
支援Bluetooth 2.1
支援HTML5
7
Android 2.2 (Froyo)
2010年5月
系統最佳化
SD卡支援能力
支援Flash 10.1
支援Microsoft Exchange
快速鍵盤語系轉換
Android 2.3 (Gingerbread)
Android 2.3.3
2010年12月
2011年2月
改良使用者操作介面
支援更大螢幕和解析度
支援WebM/VP8 影片
支援AAC音訊編碼
everb、equalization、headphone
virtualization、bass boost音訊效果
遊戲的聲音和繪圖功能強化
改良電源管理功能
支援多攝影機
Android 3.0 (Honeycomb)
2011年2月
專門給平板電腦使用的版本,由於手機和
平板電腦的螢幕尺寸和使用方式有相當程
度的差異,因此Android 3.0較以往的版本
做了很大的改變,包括:
使用者介面
鍵盤操作方式
2D和3D繪圖效能
網頁瀏覽器
影片播放和管理
複製貼上功能
8
Android 2.3.4
2011年5月
新增Open Accessory Library提供對USB裝置的
連線能力
Android 3.1
2011年5月
提供對USB裝置的連線能力
支援PTP (Picture Transfer Protocol)
新增不同輸入裝置的支援,例如mice,
trackballs, joysticks, …
支援RTP (Real-time Transport Protocol)
強化Animation framework、UI framework、
Network的能力
Android 3.2
2011年7月
支援更多型態的平板電腦
新增應用程式畫面的放大模式
Android 4.0
Android 4.1
Android 4.2
Android 4.3
Android 4.4
2011年10月
2012年6月
2012年10月
2013年7月
2013年10月
適用手機、平板電腦和其它裝置
改良的操作介面
針對多核心CPU進行最佳化
強化多媒體處理能力
新增人臉偵測功能
新增Android Beam功能(NFC)
加強text-to-speech engine
Android L Preview
2014年6月





9
系統效能最佳化,執行速度更快、更平順
提升觸控反應的靈敏度
改善使用者介面,包括加大通知訊息顯示區
域、可調整大小的app widgets…等
繪圖與動畫功能的強化
更豐富的多媒體播放和錄製功能
*
Android是一個採用Linux為核心的手機作業系統。
Linux在Android平台中所扮演的角色是系統資源
管理,像是記憶體、網路、電源、驅動程式等。
*
在Linux核心的上一層則是各種功能的程式庫,
包括C程式庫、SGL和OpenGL ES繪圖和多媒體
程式庫、SQLite資料庫程式庫、WebKit網頁程
式庫…等。這些五花八門的程式庫就是讓程式開
發人員可以在Android平台上寫出各種應用程式
的幕後功臣。
10
*
Android Runtime讓Android平台可以支援Java程
式語言,它專門負責轉換Java執行碼成為底層
的硬體設備機器碼。
*
Application Framework。這一層定義了Android
平台的應用程式架構,任何在Android平台上所
開發的程式都必須遵循這個架構。另外它也以下
層的程式庫為基礎,建立出各種功能的API讓程
式開發人員可以更方便地撰寫Android應用程式。
*
在這個Application Framework之上才是Android
平台的應用程式。
11
12
雖然PC和Android的系統架構相似,但是二者的使用
在時、地、物等方面都有所不同,手機和平板電腦
小巧玲瓏,隨手就可使用,但缺點是運算能力不及
筆電強大。反觀筆電不僅計算能力強,而且擴充性
較高,因此可以發展出各式各樣的應用,但缺點是
攜帶不便。就是因為這些時、地、物的差別,讓手
機和平板電腦的應用程式可以發展出和筆電不一樣
的特色。
13
總共吸引1788件程式作品參加,Google在第一輪的評選中總共挑
選50件作品進入第二輪的決賽。這些進入決賽的程式每一件都先
獲得2萬5千美元的獎金,最後獲選前10名的作品每一件可以獲頒
27萬5千美元的獎金,第11到20名則可獲得10萬美元的獎金。
*CompareEverywhere
程式的功能是根據手機使用者的位置,查詢附近商店的商品價格,
讓使用者可以用最便宜的價格買到所需的物品。
*Cab4me
利用GPS定位功能讓手機使用者查詢鄰近的計程車招呼站。
*Life360則是利用BBS聊天室功能,讓使用者可以和鄰近的朋友分
享訊息,或是尋求生活上的協助
其它還有許多不同功能的程式,可以到下列網址取得更多的資訊。
http://code.google.com/android/adc
14
*
Google建立了一個Google Play網站,讓程式開
發人員撰寫的Android程式可以上傳到該網站上
供人查詢、瀏覽、免費下載、或是付費下載。
*
要上傳程式的程式作者必須在Google Play網站
上建立一個帳號,並支付25美元的註冊費。
*
程式作者在Google Play上販售程式,必須將所
得的30%支付給Google,網站上會記錄每一個程
式的下載次數和使用者意見。
15
建立Android App專案 - Eclipse
16
Step 1. 執行Eclipse程式
Step 2.從主選單中選擇File > New > Project就會出現下圖的
對話盒,在對話盒中央的清單中點選Android >
Android Application Project,再按下Next按鈕。
17
Step 3.螢幕上會出現下圖的對話盒,請輸入以下資訊:
Application Name:程式執行時顯示在螢幕上方的程式標題,例如可以輸入「我
的第一個Android程式」。
Project Name:自己幫此專案取一個名字,例如my first android app。
Package Name:就字義上來說是套件名稱,但是其實這個欄位是決定程式檔在專
案資料夾中的儲存路徑,它是用網址的格式表示,但是是從大區域到
小區域而不是網址慣用的小區域到大區域,例如可以輸入
com.myandroid.(專案名稱),注意至少要有兩層,也就是xxx.xxx。
其它欄位使用預設值即可,最後按下Next按鈕。
18
Step 4.接著出現下圖的對話盒,這個對話盒全部使用預設值
即可,請直接按下Next按鈕。
19
Step 5.螢幕上會接著出現下圖的對話盒,這個對話盒用來設定程式的代
表圖示,其中有許多可以自訂的項目,包括讓我們挑選影像檔,
或是改用文字圖示。也可以設定圖示外框的形狀,前景和背景
顏色…等,右邊可以預覽效果,最上面是解析度比較低的版本,
最下面則是最高解析度的版本。完成後按下Next按鈕。
20
Step 6. 螢幕上會顯示下圖的對話盒,這個對話盒是用來
設定程式的類型,先使用預設的Blank Activity
即可,然後按下Next按鈕。
21
Step 7.接著出現下圖的對話盒,請讀者輸入以下資訊:
Activity Name: 這是主程式類別的名稱,主程式類別就是程式開始執行的
地方,主程式類別預設會繼承Activity類別,我們可以使用預設
名稱即可。
Layout Name:決定程式的「介面佈局檔」名稱,「介面佈局檔」是用來
設計程式的操作畫面,它是一個xml格式的檔案,我們同樣使用
預設名稱即可。
22
這個新增的Android App專案會顯示在Eclipse左邊的專案檢
視視窗中,如果要執行這個程式專案,可以先用滑鼠點選這
個專案,然後按下Eclipse上方工具列的Run按鈕。如果沒有
事先啟動Android模擬器,第一次執行程式時會需要比較長
的時間(可能數分鐘),因為Eclipse必須先啟動Android模
擬器,等到啟動完成之後,才能夠在模擬器上執行程式。
23
每一個程式專案第一次執行的時候都會出現這個對話盒,選
擇Android Application再按下OK按鈕。
24
執行Android App程式專案
最後會看到如下結果。
25
Step 1.請用滑鼠點選Eclipse左邊專案檢視視窗中的專案名稱
將專案展開,專案中有幾個資料夾,請打開其中的
res資料夾,然後打開裡頭的values子資料夾,再用滑
鼠快按二下strings.xml檔,該檔便會出現在Eclipse中
央的編輯視窗。
26
Step 2. strings.xml是程式專案的字串資源檔,它有二種編輯
模式,可以在程式碼編輯視窗左下方找到二個小小的
標籤,並用它們進行切換,第一種是Resources模式,
它是利用類似表格欄位的方法,配合階層狀的展開模
式進行編輯。第二種是原始碼模式,它是用純文字檔
的方式進行編輯。請讀者使用原始碼模式將
strings.xml檔案中的hello_world字串內容改成「你好,
這個程式的主類別名稱叫做MainActivity」
27
Step 3.仿照步驟2的方法打開res/layout/activity_main.xml,
這是主程式MainActivity的「介面佈局檔」。
Step 4. 「介面佈局檔」同樣有二種編輯模式,第一種稱為
Graphical Layout,第二種是原始碼模式,我們先切
換到Graphical Layout模式就會看到如圖的畫面。在
畫面的右邊偏下方有一個叫做Outline的視窗,它是以
樹狀圖的方式,檢視整個程式畫面的架構。用滑鼠右
鍵點選樹狀圖中的RelativeLayout元件,然後選擇
Change Layout就會顯示圖的對話盒,點選其中的下
拉式選單,選擇LinearLayout (Vertical)然後按下OK
按鈕結束對話盒。接下來從左邊的「介面元件工具箱」
(Palette)中找到Button元件,將它拖曳至程式畫面
的字串下方再放開,完成後會看到如圖的畫面。
28
29
完成後按下上方工具列中的Run按鈕,就可以看到如 下的結
果
30
如果想要結束在模擬器上執行的程式,可以按下模擬器的
「回上一頁」按鈕,「回上一頁」按鈕是一個類似「迴轉」
的半圓型箭頭。如果我們結束模擬器,等一下再執行程式時
必須重新將它啟動,這將會很耗時間。
31
建立Android App專案
– Android Studio
32
Step 1. 點選New Project就會顯示下圖的對話盒,輸入以下資料:
Application name:App執行時顯示在螢幕上方的程式標題,例如可以輸
入「我的第一個Android程式」。
Company Domain:公司的網域名稱,我們可以取一個自己喜歡的公司名
稱,例如myandroid.com。
Package name:Android Studio會自動根據前面填寫的Application name
和Company Domain,產生一個Package name。如果想要修改,
可以按下這個欄位最右邊的Edit。
Project location: 儲存App專案的資料夾。
完成之後按下Next按鈕。
33
Step 2.螢幕上會接著出現下圖的對話盒,這個對話盒用來設定App執行的平台。
一個App專案可以包含多個App模組,每一個App模組都可以設定自己
的執行平台。請確定已經勾選Phone and Tablet項目,其它項目不要勾
選,表示這個App專案只有一個手機和平板電腦的App模組,完成後按
下Next按鈕。
34
Step 3.螢幕上會顯示如圖的對話盒,這個對話盒是用來設定
程式的類型,點選Blank Activity,然後按下Next按鈕。
35
Step 4.接著出現如圖的對話盒,請輸入以下資訊:
Activity Name: 這是主程式類別的名稱,主程式類別就是程式開始執行的地方,
預設名稱是MyActivity。由於本書的慣例是將主程式命名為MainActivity,
因此請讀者將這個欄位修改成MainActivity。
Layout Name: 輸入程式的「介面佈局檔」名稱,「介面佈局檔」是用來設計程
式的操作畫面,它是一個xml格式的檔案。Android Studio會自動根據
Activity Name幫我們取名,當然也可以自行修改。
Title: 輸入主程式類別的標題,中英文皆可。
完成之後按下Next按鈕。
36
建立App專案時,Android Studio畫面下方的狀態列會顯示訊
息,第一次建立專案時需要比較久的時間,因為它會到網路
上下載Gradle檔案(Gradle是用來管理專案和編譯的工具),
當Android Studio工具列上的Run按鈕變成可以按下的狀態,
就表示專案已經建立完成。
37
開啟程式專案之後,點選Android Studio主選單的Tools >
Android > SDK Manager就可以啟動Android SDK Manager,
這個對話盒和單元2圖2-9的對話盒一模一樣,也就是說不管
是Eclipse或是Android Studio,安裝Android SDK的操作方
式都完全相同。
38
Eclipse和Android Studio建立模擬器的操作方法也完全相同。等到啟動
模擬器完成之後,就可以測試剛剛建立的App專案。點選Android Studio
工具列的Run按鈕,就會顯示圖6-10的對話盒讓我們挑選要使用的模擬
器。這個對話盒會顯示目前執行中,和尚未啟動的模擬器。選定模擬器
之後,可以勾選Use same device for future launches,下次執行這個
App專案時,就不會再出現這個對話盒,最後按下OK按鈕就會開始執行
程式。
39
Step 1.在Android Studio左邊的專案檢視視窗中,依序展開
「(App專案名稱)/(模組名稱)/src/main/res/values,
用滑鼠快按二下「字串資源檔」strings.xml,該檔案
會開啟在Android Studio中央的編輯視窗中。
40
Step 2.將hello_world字串內容修改如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
…(其它程式碼)
<string name="hello_world ">你好,這個程式的主要類別名稱叫做
MainActivity</string>
…(其它程式碼)
</resources>
41
Step 3.仿照步驟1的操作方式,開啟res/layout資料夾中的
activity_main.xml,這個檔案就是我們在程式畫面中
看到的「介面佈局檔」。
Step 4. 「介面佈局檔」有二種編輯模式,第一種稱為
Design模式,它讓我們可以利用滑鼠拖曳介面元件的
方式來設計程式畫面,另一種是純文字的Text模式,
也就是直接編輯程式碼,我們可以利用編輯視窗左下
方的二個標籤進行切換。先切換到Design模式,然後
從編輯視窗左邊的「介面元件工具箱」(Palette)中,
找到Widgets元件群組,把裡頭的Button元件拖曳到
程式畫面中,如圖6-13。在圖6-13的右邊有一個
Component Tree視窗,它會以樹狀圖的方式顯示
「介面佈局檔」的架構。
42
43
按下Android Studio工具列的Run按鈕執行程式,等程式啟動
完成之後,就會看到圖6-14的結果。
44