精華區beta AndroidDev 關於我們 聯絡資訊
網誌圖文版:http://cooper6334.blogspot.tw/2012/12/android1.html 前言:前一陣子,我在學校開辦給社會大眾的Android課程擔任講師, 現在終於告一段落了。在上完課之前我就一直想說要把上課的內容放上網路, 沒想到拖到今天才開始動手。 這是一系列Android教學文的第一篇,從如何開始寫Android到各種Android功能的 使用方式。這系列的文章預設是給有程式基礎的人看的,最好是有java基礎,略懂物件導 向與繼承,但是只會寫C/C++的話應該也還能對付著學。若是想從Java開始學,可以參考 良葛格學習筆記。 http://caterpillar.onlyfun.net/Gossip/JavaGossip-V1/JavaGossip.htm -------------------------------以下是正文------------------------------------ 要學一項新的技術,最麻煩的往往是不知從何開始。以前要開發Android App步驟很多很 麻煩,先灌JDK設定參數,抓Eclipse跟Android SDK,再安裝ADT。不過最近最新釋出的 Android SDK 4.2幫你把東西都包好了!! 要開始寫Android,只要到Google developer http://developer.android.com/sdk/index.html 下載最新的Android SDK下來解壓縮, 就可以直接用包在裡面的Eclipse開始動手了!! 在Google developer中也能找到Android的文件。若是在寫程式時碰到不會用的函式 或類別,可以到這邊查詢用法,不過一般來說直接Google會比較快XD。 Eclipse Eclipse是現在最常見的IDE之一,主要是拿來寫Java程式,但是配合不同的plug in,也 可以撰寫C/C++/Python/Java Script等不同的程式語言。在寫程式時Eclipse也提供了很 多方便的功能,例如自動排版(Ctrl+Shift+f),自動完成(Alt+/)或是Debug 提示等等。 當然他的自動偵錯只限於語法錯誤,程式邏輯的問題是找不出來的,不過在需要import或 是實作implement的函式時就可以偵測並且幫你補上該寫的部份。 Android SDK Manager 在Eclipse中可以透過Android SDK Manager管理目前所安裝的Android開發版本。Android 的版本眾多,市面上目前從2.x到4.x都有,而下載下來的SDK裡面只有最新的4.2版,若是 要撰寫或是編譯其他版本的Android程式,就要透過Android SDK Manager下載對應版本的 SDK。 AVD Manager AVD Manager全名是Android Virtual Device Manager,用來建立管理Android模擬器。可 以透過他來建立Android模擬器以運行Android app。在建立模擬器時,要選擇模擬器的硬 體規格,Android版本,SD卡大小等等參數。之後就能夠開啟Android模擬器了。模擬器的 版本也差很多,某些版本的模擬器在使用相機或影片等功能時會無法運作。 模擬器打開來基本上跟實際的手機差不多,也可以直接開啟裡面安裝的APP,或是透過手 機裡本來就有的設定來管理App。在操作上則是透過滑鼠,在上面點擊拖曳就等同於用手 指觸控。 雖然Android模擬器的效能很差,但是在沒有實機的時候還是能拿來頂著用,而且在開發 跟簡訊,電話,GPS等功能相關的App時,透過模擬器開發可以更方便的測試這些功能。 DDMS DDMS是Android SDK所提供的Debug工具,可以用來監測模擬器和實機的運作狀態,底下是 DDMS內所提供常用的工具。如果不小心關掉或是找不到的話,可以到Window->Open perspective開啟DDMS,還有到Window->Show View開啟下面的功能。 Devices 在Devices可以看到目前開啟的模擬器與實機,還有裡面正在運行的程式狀態。在這邊可 以強制停止程式,也可以透過相機的icon截取螢幕截圖。在同時有多台設備時,也是在這 邊選擇DDMS其他功能要顯示與操作的目標。 Emulator Control Eulator Control用來對模擬器進行操作,這邊提供的是發送簡訊,打電話給模擬器,或 是發送GPS的經緯度座標給模擬器。 File Explorer 可以看見設備中的檔案系統,也可以從手機刪除/下載/上傳檔案。不過要操作的話可能要 對Linux的系統架構有些了解,才能夠找到檔案的位置。 LogCat LogCat可以用來看手機內所發出的Log,不管是系統所發或是自己主動發出的Log。LogCat 在寫程式Debug時幾乎可以說是必備的工具。在寫程式時,除了可以透過Log瞭解程式運行 的狀態,最重要的是,當程式當掉,我們可以透過系統的Log找出原因。LogCat也提供過 濾的功能,可以直接搜尋類型,tag或內容。 當程式Crash時,第一件事就是到LogCat看為什麼Crash! 一般來說,當程式整個當掉,系統會噴出一堆Log告訴你程式是怎麼當的。因為Java的物 件繼承關係很密切,所以Log中會把每一層的資訊都顯示出來,不過最重要的資訊是 1.Cause By xxxException 2.at 你的package name (你的某個class:行數) at package name(class:行數)告訴你程式在那裡當掉,雙擊還可以直接跳到那一行。 Cause By xxxException告訴你程式為什麼當掉,有經驗的程式設計師在看到Exception的 類型時就能夠判斷是那裡出錯。最常見的Ecxeption有NullPointerException(使用到空的 物件),ClassNotFoundException(在Android中常常是忘了在Android Manifest中宣告 Activity或Service),ClassCastException(物件轉型轉錯)等等。若是程式當掉不知道怎 麼修,把Exception丟上Google也往往能找到答案。 開發環境就介紹到這邊,下一篇來講建立執行Android Project與其內容架構。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.169.214.106 ※ 編輯: cooper6334 來自: 118.169.214.106 (12/09 03:29)
cha122977:推cooper~ 12/09 05:32
milonga332:推~ 12/09 10:04
hansfong:有看有推 12/09 10:43
pkmilk:寫得很清楚~推 12/09 11:07
terrybob:受教了,先收下 12/09 11:34
kewang:大推! 12/09 12:57
lovelycateye:滿仔細的~ 12/09 17:55
givemepass:大推詳細教學 感謝你 12/09 23:10
nfsong:THX 12/10 22:42
weimax:有看有推 希望能堅持下去...很多網路寫的不錯的教學都常常 12/10 22:53
weimax:中斷或是更新太慢...好幾個月才出一次 12/10 22:53
cooper6334:目前是預計一週1~2篇拉,不過要看我碩論進度QQ 12/10 23:17
lethegirlgo:推~感謝分享 12/11 23:39
MetalChao:感謝分享! 12/16 22:53