> 本安卓新手教程轉載自 [CodeData](http://www.codedata.com.tw/)的 Android Tutorial系列教程 并作了簡體中文轉換(陸續更新中~)

你可以在[Google Play圖書](https://play.google.com/store/books/details?id=H3IACQAAQBAJ)或[Pubu](http://www.pubu.com.tw/ebook/Android-Tutorial-49027)購買“Android Tutorial”電子書,采用ePub格式重新編排,在[GitHub](https://github.com/macdidi5/AndroidTutorial)公開所有范例程式。
## 西游記
四大古典名著里面的西游記,應該是古今中外妖魔鬼怪最多的一部小說了,除了大家熟悉的牛魔王、白骨精、金角、銀角、蜘蛛精和其它一大堆奇形怪狀的妖精,在第七十四回上場的獅駝洞,就有“三個魔頭率領四萬七八千個吃人的小妖”,這樣還不夠,獅駝洞旁邊的獅駝國,整個國家全部是妖精!整部小說提到的大妖、小妖加起來,可能有上百萬個。雖然有這么多可怕的吃人妖怪,不過讀起西游記這部小說,能夠不笑出來的人還真的不多,難怪有很多人說它是一部有趣的古典童話小說。
跟其它著名的章回小說類似,例如三國演義和水滸傳,西游記也是集合正史、民間傳說與說書人故事的章回小說。故事采用唐朝最有名的留學生唐三藏,西行到印度取經,途中經過五十幾個國家,花費十七年的時間,帶回佛經六百五十七部,并且終其一生都在翻譯這些佛經。對所有人來說,一個和尚可以完成這樣的事情,是完全無法想像而且覺得是不可能的。民間在推崇唐三藏的同時,也開始找一些比較合理的解釋。因為印度實在是太遠了,遠到無法想像,所以演變成唐三藏到“西天”取經。也因為一路上經歷太多苦難,所以加入孫悟空、豬八戒和沙悟凈來幫助他,就連唐三藏騎的馬也是海龍王的三太子變化的,否則一個凡人怎么可能完成這樣的任務。
西游記中的角色非常多,所有人物、神佛和妖怪的外貌與個性,都非常活潑、鮮明而且有趣,每一個看西游記的讀者都可以找到自己喜歡的人物。西游記里面最主要的角色孫悟空,可能是最多人喜歡的,他在小說中出現的名字就有孫悟空、弼馬溫、齊天大圣、孫行者、金公、心猿、斗戰勝佛,還有豬八戒經常在背后罵他的潑猢猻、雷公嘴、孤拐面。光是從這些名字,就可以把孫悟空這個角色活靈活現的呈現在你的眼前,就好像真的有這么一只潑猴,拿著一根棒子在你的面前跳來跳去,隨便一棒就打扁一個妖怪,一下子又變成小蟲子飛來飛去。他有銅皮鐵骨、火眼金睛、七十二變和筋斗云的神通廣大,也有潑猴的任性和調皮,更有對唐三藏的忠心(注一),這樣一個人物,大人小孩都喜歡。看齊天大圣和所有的人物,在這部小說里熱鬧的斗嘴、合作和打斗,不論什么人、什么時候來看,都是非常精采的好故事。
## Hello! Android!
接觸Android以后,我總覺得它就像西游記里的孫悟空。有時候覺得它神通廣大,一路上斬妖除魔(注二),現在已經成為全世界市占率最高的行動裝置作業系統,任何人都可以在Android發揮所有的創意,各種應用的App比孫悟空的七十二變還要多好幾倍。有時候又覺得它真是一只令人討厭的潑猢猻,在你以為它是這樣的時候,卻又常常跟你唱反調,變來變去,改來改去,對Android開發人員來說,應該是對它最適合的形容詞。也因為這種同時另人喜愛又討厭的感覺,接觸過Android的開發人員,也享受到完全不一樣的樂趣。
雖然我覺得Android很像這只潑猴,不過它倒不是從石頭里蹦出來的。2003年在美國加州成立一間叫作Android的公司(Android Inc.),由Andy Rubin與其它幾位同仁一起研發“聰明的移動設備”。2005年,Google收購Android公司,雖然那個時候大家都猜不透Google的企圖,不過大家也習慣了,因為這家網絡服務公司經常有這類“創新”的舉動。就在收購的新聞冷掉以后,Google在2007年送出多項移動領域的專利申請,因為那一年的一月,地球上出現了一種叫作iPhone的東西,而且讓全世界的人對它充滿了無比的愛慕,所以有很多人猜測Google可能要生產一種“足以和iPhone抗衡”的移動電話。
2007年11月答案揭曉了,在Google的領導下,成立一個開放手持設備聯盟(Open Handset Alliance),成員有Broadcom、HTC和Intel等公司,隔年又陸續加入ARM和Sony等公司。Android確定是一個以Linux為核心基礎,更加開放與自由的行動裝置作業系統。Google也同時成立Android Open Source Project,負責持續發展Android系統系統,讓全世界的開發人員設計Android應用程式,擴展它的功能和應用。
## Android近代史
從2008年9月發表的Android 1.0(代號Astro),到現在短短幾年的時間,總共已經發表11個版本,大多數的版本都有很大的改進與變化。從2009年發表的Android 1.5(代號Cupcake)開始,Android采用點心的名稱作為系統的代號,目前最新的Android 5代號是Lollipop:
* Android 1.5 Cupcake 杯子蛋糕:

* Android 1.6 Donut 甜甜圈:

* Android 2.0 Eclair 閃電泡芙(一種法式甜點):

* Android 2.2 Froyo 全名是FROzen YOgurt:

* Android 2.3 Gingerbread 姜餅人:

* Android 3.0 Honeycomb 蜂窩(不太像是一般的甜點):

* Android 4.0 Ice Cream Sandwich 冰淇淋三明治:

* Android 4.1 Jelly Bean 豆豆軟糖:

* Android 4.4 KitKat 巧克力糖(由Nestle發售的一種巧克力):

* Android 5 Lollipop 棒棒糖:

## 關于Android Tutorial
對Java技術開發人員來說,進入開發Android應用程式的領域,應該不會是太困難的事情,通常最需要的就是時間,花一些時間看看范例,翻翻書,好像就可以寫幾個還蠻像樣的App。不過以我自己的經驗來說,這樣的作法也是一連串災難的開始,所以只好告訴自己,我是在享受這些災難帶來的另一種樂趣。
大約半年前,CodeData開始出現Tutorial這個令人又喜愛又討厭的字,它通常是大家接觸一種新技術的開始,如果可能的話,應該沒有人會喜歡看這類充滿技術名詞,還有通常是沒頭沒尾,而且少的可憐的范例。不過我們通常還是沒有其它的選擇,因為你可能找不到任何書籍或比較容易閱讀的資料。
當你需要判斷一種還沒有接觸過的技術,是不是值得花費時間去學習它,或是需要挑選一個適合專案使用的技術,研讀這些技術提供的Tutorial,應該是非常困難又花時間的工作。Tutorial的價值是不用懷疑的,在開發旅程遇到許多困難的問題,通常可以從Tutorial找到清楚的答案。不過一般的Tutorial卻不適合快速的了解與學習一種技術,所以這個“Android Tutorial”系列的文章,試著可以讓你可以使用比較簡短的時間,快速認識開發Android應用程式的方式,還有認識Android有哪一些可以讓你發揮創意的可能性。
“Android Tutorial”系列文章會使用一個應用程式專案,帶領你走過開發Android應用程式需要的基本認識,還有了解Android與其它平臺整合的應用。讓你花費比較少的時間,就可以認識Android應用程式怎么做與可以做什么。全部的內容分為六章、每一章有三到四節,適合你使用完整或片段的時間閱讀,也非常適合用來當作六到十二個小時的課程教材。在系列專欄文章連載完成以后(可能會早一些),也會以電子書在Google Play圖書上架。
參考資料:
* 西游記校注 / 吳承恩原著 ; 徐少知校 ; 朱彤, 周中明注 / 里仁書局
* Android Developer:[http://developer.android.com/](http://developer.android.com/)
注:
1. 雖然大部份的人認為孫悟空是因為頭上的金箍兒,只要唐三藏使用必殺技“緊箍咒”,這只潑猴就不得不乖乖聽話。不過在第二十七回,唐三藏因為誤會趕走孫悟空,而且發誓不再唸緊箍咒,后來孫悟空還是因為心軟又回來保護唐三藏。
2. Android從出現到普及這短短的幾年之間,的確讓一些行動裝置作業系統走向歷史,也讓iOS不再保持獨大的優勢,不過我絕對沒有說它們是“妖魔鬼怪”的意思,只是個人在Android和孫悟空之間的聯想,請各平臺的擁護者見諒。
課程相關的檔案都可以GitHub瀏覽與下載。
[?https://github.com/macdidi5/AndroidTutorial](https://github.com/macdidi5/AndroidTutorial)
- 第一堂
- 第一堂(1)西游記里的那只猴子
- 第一堂(2)準備 Android Studio 開發環境
- 第一堂(3)開始設計 Android 應用程式
- 第一堂(4)開發 Android 應用程式的準備工作
- 第二堂
- 第二堂(1)規劃與建立應用程式需要的資源
- 第二堂(2)設計應用程式使用者界面
- 第二堂(3)應用程式與使用者的互動
- 第二堂(4)建立與使用 Activity 元件
- 第三堂
- 第三堂(1)為ListView元件建立自定畫面
- 第三堂(2)儲存與讀取應用程式資訊
- 第三堂(3)Android 內建的 SQLite 數據庫
- 第四堂
- 第四堂(1)使用照相機與麥克風
- 第四堂(2)設計地圖應用程式 - Google Maps Android API v2
- 第四堂(3)讀取裝置目前的位置 - Google Services Location
- 第五堂
- 第五堂(1)建立廣播接收元件 - BroadcastReceiver
- 第五堂(2)系統通知服務 - Notification
- 第五堂(3)設計小工具元件 - AppWidget
- 第六堂
- 第六堂(1)Material Design - Theme與Transition
- 第六堂(2)Material Design - RecylerView
- 第六堂(3)Material Design - Shared Element與自定動畫效果