顯示具有 android 標籤的文章。 顯示所有文章
顯示具有 android 標籤的文章。 顯示所有文章

2012年7月13日 星期五

About Google Support Library

我寫for android 3.0以上的程式要如何兼容於 android 3.0以下的手機呢?

Android 3.0 (HoneyComb) 前後在UI上有很大的更動,Google針對UI的部份提供了一些向前相容的辦法,像是Support Library v4。下圖便是同樣一支Support Library v4 demo sample 跑在4.0.4(左)與2.3.5(右)的差異。





這可以讓 Android 1.6以後的手機都能夠支援你針對android 3.0以上版本寫的app,Google提供了lib作自動轉換的動作。Google的 Support Library 支援以下幾種UI元件:




(Cited from http://developer.android.com/tools/extras/support-library.html)

有興趣的人可以參考一下 SDK/extras/android/support/ 的samples。 以 Support4Demos 為例,以下有幾點要注意一下:

  • If you add  "android-support-v4.jar" to the path Properties ->Java Build Path ->Libraries , please remember check the jar file in tab"Order and Export." Or you will see the errors.*1 (請記得要勾選 Order and Export內的lib檔案否則你會看見如*1附註的錯誤)
  • Please set the attributes for USE SDK like following: 
             uses-sdk android:minSdkVersion= 4 
             android:targetSdkVersion=" 11 "     (IF YOU USE V4 LIB)
  • Please set your "android target" beyond v.11.

第三點是因為Support4Demo的sample內的res/values-v11/下的sytles.xml在V 11以下不認得,因此無法build出來。使用V11以上的版本就好了。

不過ActionBar 卻未在支援之列,這部份就要參考一下SDK Samples下的 ActionBarCompat 範例。

*1 Errors from no export the library:

07-13 15:32:03.056: E/dalvikvm(5006): Could not find class 'com.example.android.supportv4.accessibility.AccessibilityDelegateSupportActivity$AccessibilityDelegateSupportView$1', referenced from method com.example.android.supportv4.accessibility.AccessibilityDelegateSupportActivity$AccessibilityDelegateSupportView.installAccessibilityDelegate


07-13 15:32:03.086: E/AndroidRuntime(5006): FATAL EXCEPTION: main
07-13 15:32:03.086: E/AndroidRuntime(5006): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.android.supportv4/com.example.android.supportv4.accessibility.AccessibilityDelegateSupportActivity}: android.view.InflateException: Binary XML file line #12: Error inflating class com.example.android.supportv4.accessibility.AccessibilityDelegateSupportActivity$AccessibilityDelegateSupportView
07-13 15:32:03.086: E/AndroidRuntime(5006): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1872)
07-13 15:32:03.086: E/AndroidRuntime(5006): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1893)
07-13 15:32:03.086: E/AndroidRuntime(5006): at android.app.ActivityThread.access$1500(ActivityThread.java:135)
07-13 15:32:03.086: E/AndroidRuntime(5006): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1054)
07-13 15:32:03.086: E/AndroidRuntime(5006): at android.os.Handler.dispatchMessage(Handler.java:99)
07-13 15:32:03.086: E/AndroidRuntime(5006): at android.os.Looper.loop(Looper.java:150)
07-13 15:32:03.086: E/AndroidRuntime(5006): at android.app.ActivityThread.main(ActivityThread.java:4385)
07-13 15:32:03.086: E/AndroidRuntime(5006): at java.lang.reflect.Method.invokeNative(Native Method)
07-13 15:32:03.086: E/AndroidRuntime(5006): at java.lang.reflect.Method.invoke(Method.java:507)
07-13 15:32:03.086: E/AndroidRuntime(5006): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:849)
07-13 15:32:03.086: E/AndroidRuntime(5006): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607)
07-13 15:32:03.086: E/AndroidRuntime(5006): at dalvik.system.NativeStart.main(Native Method)
07-13 15:32:03.086: E/AndroidRuntime(5006): Caused by: android.view.InflateException: Binary XML file line #12: Error inflating class com.example.android.supportv4.accessibility.AccessibilityDelegateSupportActivity$AccessibilityDelegateSupportView
07-13 15:32:03.086: E/AndroidRuntime(5006): at android.view.LayoutInflater.createView(LayoutInflater.java:518)
07-13 15:32:03.086: E/AndroidRuntime(5006): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:570)
07-13 15:32:03.086: E/AndroidRuntime(5006): at android.view.LayoutInflater.rInflate(LayoutInflater.java:623)
07-13 15:32:03.086: E/AndroidRuntime(5006): at android.view.LayoutInflater.inflate(LayoutInflater.java:408)
07-13 15:32:03.086: E/AndroidRuntime(5006): at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
07-13 15:32:03.086: E/AndroidRuntime(5006): at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
07-13 15:32:03.086: E/AndroidRuntime(5006): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:250)
07-13 15:32:03.086: E/AndroidRuntime(5006): at android.app.Activity.setContentView(Activity.java:1742)
07-13 15:32:03.086: E/AndroidRuntime(5006): at com.example.android.supportv4.accessibility.AccessibilityDelegateSupportActivity.onCreate(AccessibilityDelegateSupportActivity.java:47)
07-13 15:32:03.086: E/AndroidRuntime(5006): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1072)
07-13 15:32:03.086: E/AndroidRuntime(5006): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1836)
07-13 15:32:03.086: E/AndroidRuntime(5006): ... 11 more
07-13 15:32:03.086: E/AndroidRuntime(5006): Caused by: java.lang.reflect.InvocationTargetException
07-13 15:32:03.086: E/AndroidRuntime(5006): at java.lang.reflect.Constructor.constructNative(Native Method)
07-13 15:32:03.086: E/AndroidRuntime(5006): at java.lang.reflect.Constructor.newInstance(Constructor.java:415)
07-13 15:32:03.086: E/AndroidRuntime(5006): at android.view.LayoutInflater.createView(LayoutInflater.java:505)
07-13 15:32:03.086: E/AndroidRuntime(5006): ... 21 more
07-13 15:32:03.086: E/AndroidRuntime(5006): Caused by: java.lang.NoClassDefFoundError: com.example.android.supportv4.accessibility.AccessibilityDelegateSupportActivity$AccessibilityDelegateSupportView$1
07-13 15:32:03.086: E/AndroidRuntime(5006): at com.example.android.supportv4.accessibility.AccessibilityDelegateSupportActivity$AccessibilityDelegateSupportView.installAccessibilityDelegate(AccessibilityDelegateSupportActivity.java:73)
07-13 15:32:03.086: E/AndroidRuntime(5006): at com.example.android.supportv4.accessibility.AccessibilityDelegateSupportActivity$AccessibilityDelegateSupportView.(AccessibilityDelegateSupportActivity.java:62)
07-13 15:32:03.086: E/AndroidRuntime(5006): ... 24 more

2011年12月27日 星期二

國境之外 , Kindle Fire with CM7 與中文數位內容

網路上有很多專家提出Kindle Fire在台灣使用的分享, 像是Mona便提供了一篇很棒的見解 [Amazon Kindle Fire 美金199買不買?在台灣的實測經驗談] 的確的, 對於美國以外的人而言,

一、少了豐富的amazon 雲端服務(只能用小小的8GB)
二、缺乏當地語言的數位內容(沒有中文電影 中文書籍 中文音樂 中文雜誌)
三、缺乏中文介面

Kindle Fire可就真的變成了連閱讀器都不是的平板電腦(?).

我由於一直在網路上找不到Kindle Fire使用CM7的心得分享,因此就以CM7這個自由度比較的介面來下手,與各位分享在美國之外Kindle Fire是否可有什麼不錯的服務。

第一部分為分享CM7在Kindle Fire上的使用感受,
第二部分,由於Kindle Fire是本電子書設計,會聊一下目前可使用的一些數位內容軟體資源

那就開始囉!

CM7 是一個社群根據Android的原始碼去更改的ROM, 適用於許多平台. 本篇使用的是XDA 上一位whistlestop 所改良的版本 可參考網址. 至於如何安裝, 這就不是這篇文章所要談. 只是純粹分享使用的感受而已喔!

我想換CM7的原因....

1. 多工的介面
Kindle Fire原始的介面讓小編一直有個困擾, 明明就是台Android平板, 為什麼不可跟手機一樣邊看網頁邊回MSN呢? (會不會是Amazon 想給讀書人一個安靜無打擾的讀書環境吧?) 可惜, 我不是個這麼愛安靜的讀書人阿...(好吧!我承認我是阿宅不是讀書人) .這是我第一個想把Kindle Fire介面換成CM7的原因. 

以MSN作例子, Android 上可用MSN的軟體很多, 這邊用IM+作示範. 可以注意到狀態列上(注意, CM7 預設的桌面狀態列在下面.) 有一個IM +的icon


拉起來之後就可以直接點開IM+ , 然後MSN了! 另外, 無線網路的開關也可以直接在狀態列上改變! 這真是方便極了!


另外Android常見的按HOME鍵直接切換畫面,也可以使用!


2. 任意下載 Google Market上的App ,
Google Market應該會針對裝置的解析度來判斷, 在Kindle Fire上的Market可以看見平板電腦的選項. 因此可以任意的下載許多平板的應用. 但很可惜的, 好的android 平板應用實在沒有iPad來的多. 不過刷過CM7之後, 就可以完全不用擔心一些android app的支援好不好. 像前一篇文章提到的要自行透過APK去安裝 郵件, 音樂, market, GMAIL等Android原生的軟體. 拿郵件來說, 可以收公司的Exchange Mail, 就是一個大大加分的選項. 


如果你之前有在Kindle上買書, 你也可以透過下載Amazon Kindle的方式, 同步雲端的書到機器上來.

看蘋果日報也是很OK的唷! (這也是kindle天生該要有的任務之一) 動新聞的播放也是沒問題的!


如果是影音的話YouTube 與對岸的PPTV也都可以順利安裝與播放. 不過pptv有平板版比較適合Kindle Fire使用



音樂的部分,可以直接使用Android本身的音樂APP,也是可以最小化到狀態列上的唷!



 而桌面也是支援橫向顯示的


3. 中文化的支援
很多人買了Kindle Fire之後, 最大的問題就是中文化不足, 沒有中文介面, 中文輸入法. 當然, 網路上也提供了很多如何新增中文輸入法的動作. 但涉及到要去改Setting的內部設定, 一不小心...就凹嗚了. CM7在這邊, 由於是原原本本的Android系統, 因此, 中文沒問題!


設定畫面完全中文化! 輸入法要裝幾個都可以.


程式如果支援中文化, 也都是以中文顯示. 像是 google 的瀏覽器. 

不過講到瀏覽器, 稍微跳開一下, 私以為FireFox 9.0板在這方面比較好一點. 直立的顯示與google內附的瀏覽器一樣, 網址列也可以直接搜尋(還可以選擇不同的搜尋引擎)


但好用的地方就在這邊!!!用手指往左邊滑過去, 就可以看見左邊跑出網頁分頁視窗, 對平板而言這樣就可以迅速切換視窗了!


往左邊滑, 則是我的最愛,跟上一頁 下一頁鍵。這也是很實用的功能。



4. CM7對平板的設定
CM7 說實在的,並沒有提供平板很完整的支援,不過也聊勝於無啦!主要設定的畫面如下:

我們就針對平板優化的部分,平板優化的部分有以下幾個選項:


底部狀態列:這就是跟一般手機不同的地方,狀態列在下方,原本想要改成上方的,但發現Kindle Fire沒有實體的退回鍵,那還是將狀態列放在下方比較符合一般使用情況。
軟體按鍵:這邊講的是HOME鍵、退回鍵等。你可以自由選擇要放什麼按鍵在狀態列上。但如果可以把按鍵調大一點就好了!CM7的軟體按鍵實在太小了
鎖定螢幕:Kindle Fire是沒有鎖定螢幕的,CM7提供了這個功能,由於他的電源鍵實在很容易按到,因此我打開了這個功能


電源選單:這個部分為設定當你長按電源鍵,電源鍵的目錄要出現哪些選項。目前提供的就是軟體鍵的那幾個選項,包括了主頁面、選單鍵、與返回鍵



接下來聊一點缺點。。。

音量鍵:這是很多人詬病的地方,在CM7尤其可以感受到....最好的方式是如同AMAZON原廠的OS在狀態列加。目前使用的補強方式為下載widget到桌面上,可以直接透過Widget加減音量

電池:若開著WIFI的情況下瀏覽網頁的話,兩個小時可以掉30%的電力

配合ADW Launcher 縮放時候有點鈍...

以上三個是目前比較麻煩的幾個點,其餘的穩定性上還算不錯,刷了CM7一周天天用,也沒有遇到死當過。

下一篇,想特別聊一下在Kindle上看電子書的部分,會著重於中文內容方面。雖然中文數位內容不多,但許多廠家已經開始起步,因此想分享在Kindle上使用的心得! 請見下回!

2011年2月10日 星期四

Android 2.3.3 Platform, New NFC Capabilities

Google 昨天公布了Android 2.3.3的 API, 這次主要的重點就是先前文章提過的 NFC. 從Android Developer Blog 上公布的訊息來看, 本次增加了


 但P2P 的部分, 僅限於NDEFMessage, 並非完全的開放~ 待 AOSP開放之後 , 再仔細的研究一下下面的寫法.

2010年11月24日 星期三

NFC 時代來了!(一) Web 2.0 Summit 2010: Eric Schmidt, "A Conversation with Eric Schmidt"

以下為近日Google 的大頭 Eric Schmidt 先生的專訪 ,一開始Eric 桑就以實機作了一個demo,雖然看起來好像慢了點,不過他的的確確展示了NFC這項技術的某些特色。

專訪

在不久之前,網路上的謠言,也傳著下一代的iPhone 5也要納入這樣的功能。

Apple iPhone 5 NFC plans...

NFC 是什麼?
先來聊聊什麼是NFC (Near Field Communication),中文翻做「近場通訊」或「近端通訊」。NFC並非是一項全新的技術,他其實是將一些已經在你我身邊使用已久的東西「組合」起來的發明。要看詳細一點的說明,打入NFC的關鍵字,可以找到很多相關的說明的。

我相信各位至少一定會有一隻手機。在台北的,通常會有一張悠遊卡,常去屈呈氏或costco消費的,應該會知道有種卡片叫做Visa payWave。有些大樓的門禁,已經改用感應卡,嗶嗶一聲就會開門,把感應卡放在包包裡,只要找對方向,貼上去就對了,省去找key的麻煩。

為什麼要提這些東西呢?因為NFC就是以上兩者的結合。現在很多人出門,很多東西都可以不要帶,但是一定要帶手機,然後帶把key,坐車帶張悠遊卡。

如果,我只帶一隻手機出門,那會不會更好。

NFC就是這樣產生。NFC裡面有帶著一天線,以及一晶片卡,這晶片卡可以把悠遊卡、感應信用卡、門禁卡,全部集合在手機裡面。悠遊卡結合手機,其實可以從y拍上面,聞到一絲味道,有人專門在幫別人把悠遊卡貼到手機的背面,收費六百到一千不等。

另外,這個新聞也可以看出來,這是人們想要的。

手機變悠遊卡 - Udn.com

出乎意料的,一百塊的優惠,一千份馬上被排隊索取一空!這代表在台北,能夠省帶一張卡片,人們已經願意用買一張悠遊卡的價錢去換來。

當然,如果只是這樣子,那就買這樣的貼卡就好了,Google跟Apple這創新的兩大龍頭為什麼不約而同的要這麼做呢?

下面的幾個要點,看完你大概就會清楚了,行動商務提了這麼多年,起飛的關鍵在那邊?

1. NFC手機就是讀卡機
從mobile01的這篇文章可以看見,在2008年國內廠商已經有推出類似技術的手機。可以在上面直接悠遊卡查詢餘額、卡片加值、交易記錄查詢等等。

BenQ T80 NFC 悠遊手機

手機可以直接跟手機內的晶片卡互動,能夠玩的遊戲就相當的多...舉個例子而言,還要再辛苦的去剪折價券,然後給店員刷一下條碼丟進垃圾桶嗎?不用!走到一個地方,可由手機的GPS定位,知道附近有哪些店有折價,選定喜歡的店家,點一下,就可以直接下載折價券在手機上。到店家的時候,可以直接用手機付款,在付款的同時,折價券會被偵測到,自動折了價錢。而你也輕易獲取了折扣~

這就是一個簡單的劇本。

(待續..)

2010年5月10日 星期一

把GIT整合入Eclipse內 - 如何透過EGIT下載Android source code

有朋友問我,

哪一本Android的書講的最詳細,範例最多呢?


這答案應該不只我這麼說,很多老師們都也是這麼說的:

developer.android.com


沒錯,就是這個網站,上面的資料就是講的最詳細,最清楚的。但前提就是英文要夠好...(殘念)

不過若是中文,推薦這本書:Google!Android 2手機應用程式設計入門第三版(附光碟),寫的很詳細也很仔細,我不認識這位作者,不過看他的書,真的可以看到很多他用心的地方。推薦一下!

又有人問:上面大部分都是說明呀?有沒有範例阿?


有的~Android SDK中就有很多很棒的範例,像是看完APIDemo一隻,大概寫基礎application的功力就練成了八成了。

如果要更深入呢?


有的~Android 的source code會是很棒的一個參考工具。這是晉升進階的最快方式,可以瞭解最道地的 Android Application的寫法。


那要怎麼下載?我看網站上好像是要裝linux....


Android 的 source code都公布在 android的網站上,你可以透過 GIT Web 去瀏覽。不過網頁式的瀏覽,其實對於要學習怎樣寫code、要trace code都很麻煩。前面的文章有講過如何git下來這些code。


由於google 用的是GIT ,其實在很多平台上都有工具可以下載,若是要開發方便,建議可以使用Eclipse 外掛 EGIT,可以利用Eclipse的基本功能,去找所有的call hierarchy或是直接跳到某個class去 trace code。


EGit是一個Eclipse 下的plugin,是一 open source 可免費使用的軟體,你可以用他來同步公司的內的GIT source,當然可以git我們這次主要談的目的 -Android source code。

              他的網站在這邊 :http://www.eclipse.org/egit/ 有興趣的人可以參考看看喔。
 
下面就來說明如何在eclipse中加入git來抓取Android的 source code,我們就以抓取Camera的原始碼為例:


因EGit是個 Eclipse 的plugin,一如往常的若使用 Eclipse 3.5可以從 [Help] -> [Install New Software] 來更新 plug in,我們先 Add 一下,Name的部分就打入GIT用以識別,location的部分就打上 http://download.eclipse.org/egit/updates/




然後按下「OK」,就可以看見下面這個頁面,一如往常的,勾選一下,他就會自己去更新一下版本清單。


把他全部勾選之後,按Next,出現確認安裝內容的畫面,

  
按下finish,就出現下面這個更新下載的畫面:


這個plugin不大,應該很快就可以下載完畢。下載完畢後,會出現下面這個畫面,詢問你是否要重開。請按 yes 將它重開。


重新開啟之後,好像,沒有什麼變化,不像是裝了android sdk有出現一些不同的icon。那是因為這種source code同步軟體通常是用來匯入或匯出更新的。


所以我們來作匯入的動作,就可以看見他特別的地方了。請選 [File]->[Import] 出現以下畫面,多了一個 Git Repository,點了後,選 Next


這個時候,會出現要你填入 Location URI,就暫時移開你的目光,到android source 的網站來。我們要抓的是Camera的application source code,所以我們到這邊 :

http://android.git.kernel.org/?p=platform/packages/apps/Camera.git;a=summary 

下面就是網站的畫面,請找到這個camera的 Summary中的description,你就會看到下圖紅框標起的部分, 「URL」,請把 git (git://android.git.kernel.org/platform/packages/apps/Camera.git)開頭的那個複製下來..


 然後,轉回Eclipse Import的視窗,貼上URI。就會出現以下的視窗。


不需要修改,直接點選 Next , 你會發現有很多的branch(分支),看你的喜好,選一兩個就可以。我這邊選的是Cupcake (Android 1.5版)。


接著 選擇你要下載的位置,請記住這個位置,後面會使用到。



 接著,就經過一陣的下載之後,code就自動下載到你的電腦中了。不過打開workspace看,好像沒有看見camera project。


這個時候別急,請你新增一個Android 的Project。與以往不同的是,在Contents內,請不要Create new project in workspace(於現在的工作區內建立新專案)。因為 Camera application已經在電腦了,所以是Create project from existing source (由現存的來源建立新專案),而Location的部分,就且選擇剛剛下載的位置。最後在選擇Build Target。 


記得 要給一個Project Name!這不影響原始碼的運行。




按下 finish ,你就可以在工作區內看見Camera的專案了。 


這樣你就可以透過這方式git你的source code,並且研究其中奧妙~







2010年5月3日 星期一

常見的Android 開發錯誤 (Normal development error)

以下為RIH開發過程常見的Android 開發問題, 分享給各位,



1. 選了debug , 按下卻沒有動靜?
請看下你的Eclise console那個view ,有沒有這樣的一行紅字呢?

Device 'MB9xxxxxxxx' requires that applications explicitely declare themselves as debuggable in their manifest.

若有的話,請記得到 AndroidManifest.xml 裡面的 Application tab設定一下  "Debuggable"這個選項為 true,這樣就ok了!


2. 明明就照著打, 為什麼 R.id....還是紅點.

R.java 是個有趣的東西,若是以前學過 J2ME的人大概會摸不著頭緒,因為在ME裡面所有的UI都是透過寫Code的方式產生。偏偏Android的package api 裡面也有.R的class。R.java是由 Android 由你所設定的res\ 下的 xml檔案生出來的。如果R一直是紅點,代表你某個XML檔案有問題,仔細檢查一下XML檔案語法是不是正確,然後再重新 Clean workspace 重建即可。




3. 開發google MAP 應用常發生之問題
    a. 建好了apk ,放上手機上測試,地圖卻無法顯現出來~
        原因有好幾個~可以透過 log貓 一個一個檢查看看:
       > 如果有出現這樣的訊息:

        InetAddress          Unknown host www.google.com, throwing UnknownHostException ...
  
       代表app無法連線,請檢查一下你 AndroidManifest.xml 內的User Permission 是否有給予Internet 的權限。

      > 如果修改過後,程式中的MapView有出現google 字樣,但還是只有方格(方塊)

          
              請檢查你的API key 是否正確。RIH 曾經犯過一個錯誤,在A電腦上申請一份API KEY,但後來把整個專案移到B電腦上開發,就一直發現地圖無法LOAD進來。找了很久才發現,原來API KEY若換一台電腦使用的話,要重新產生一次,不知道你是不是也犯了同樣毛病呢?

       >  好像可以連線了...但卻出現 xx 的圖案


                  請檢查一下GeoPoint的經緯度是否有錯誤喔~

4. Android requires .class compatibility set to 5.0. Please fix project properties. 的錯誤

請點選左邊Package Explorer中有發生此問題的專案(Project),按下滑鼠右鍵,選擇「Android Tool」中的 「Fix Project properties」,然後重新clean project即可!

在Eclipse 中新安裝ADT(Android Development Tool) Plugin Install ADT to Eclipse

這篇主要為敘述如何在Eclipse 內新安裝ADT的部分, 若你已經安裝, 要更新的話, 請看這篇.

ADT 為開發Android 所要安裝的套件, 詳細的說明請看這邊

這邊使用的Eclipse 是 Eclipse IDE for Java Developers 這個版本, 這個版本整合了CVS , XML編輯器 與Mylyn ( a task and application life cycle management framework) ,對於開發一整個專案有比較好的配合, 建議使用這個.

若你沒有安裝ADT套件, 可以從幾個地方來看:

a. 版權宣告 (About)

     左下角的四個小方框就代表著這套eclipse已經安裝的plugin , 若安裝了ADT, 則會如下面這張圖一樣多了一個Android 機器人小方框


至於還會多些甚麼, 請看最後面的附註吧!

要安裝ADT就如同安裝其他的eclipse 套件, 以下就是以ADT為例, 說明一下如何安裝eclipse 套件. 在3.5.0版本以後的eclipse 把 software update 分開多了個 Install New Software , 我們這次要新安裝plugin 所以請選這個.


點選完畢之後, 點選一下 Add的這按鍵


點選Add 的意義為增加一個線上新增plug-in的網址, 你就會看見要你填入 Name 與Location 的欄位, Name的部分可以自己取一個讓自己能夠了解這是ADT的名字,

至於location 部分, 查一下 Android Developer 網站, 他們的remote site的位置為何? 可以發現是: https://dl-ssl.google.com/android/eclipse/



就這樣把它填入吧!


按下OK即可! 接下來, 大概等個幾十秒鐘, Eclipse 要上網更新一下內容. 更新完畢你會看到, 有以下幾個選項可以選擇:


其中一個是DDMS, 這主要是與手機以及模擬器連結的公用工具, 功用之後會再詳述. 另外一個 developer tools . 請兩個都勾選起來, 然後按下 Next.



繼續按下Next


以上這頁為版權宣告, 請選擇 " I accept the terms..." , 然後選 finish.



接下來, 就會看見開始更新的對話方塊...最後完成的畫面如下, 詢問是否重新開啟eclipse, 選yes後就會自動關閉後, 重啟.



安裝完畢之後可以在About 看見Android 小機器人. 也可以看見DDMS的出現.

安裝完成!