跟隨《第一行程式碼》從零基礎到安卓應用上架

阿狸不歌發表於2017-08-14

第一行程式碼第二版

自從2008年穀歌推出 Android 的第一個版本之後,安卓的市場佔有率就勢如破竹,短短兩年間就佔據了手機作業系統的頭把交椅,現如今已經佔據了全球智慧手機作業系統 70%以上的份額。如果你是打算從“零”開始加入到Android開發的陣營裡,那麼被譽為“Android開發第一書”的《第一行程式碼(第2版)》應該是你的不二之選。


Android 學習基礎

當然,在寫 Android 的第一行程式碼之前,還是要有些別的基礎的,郭老師在開篇就做了介紹——

學習本書內容之前,你並不需要有任何的Android基礎,但是你需要有一定的Java基礎,因為Android開發都是使 用Java語言的,而本書並不會去專門介紹Java方面的知識。

我希望你已經是一個頗有經驗的 Java 程式設計師,這樣你理解本 書的內容時將會輕而易舉,因為 Android 程式都是使用 Java 語言編寫的。如果你對 Java 只是略 有了解,那閱讀本書應該會有一點困難,不過一邊閱讀一邊補充 Java 知識也是可以的。但如果 你對 Java 完全沒有了解,那麼我建議你可以暫時將本書放下,先買本介紹 Java 基礎知識的書學上兩個星期,把 Java 的基本語法和特性都學會了,再來繼續閱讀這本書。

由於本書使用的是Java 8,並且引入了Lambada表示式和函數語言程式設計,所以即使有Java 的基礎也應該再看看《Java 8實戰》和《Java 8函數語言程式設計Java 8實戰Java 8函數語言程式設計


Android 開發環境

與本書第一版使用的eclipse不同,這次用了谷歌官方的 Android Studio,幫助我們簡化了搭建開發環境的過程,將所有需要用到的工具都幫我們整合好了——使用Android Studio,這是安卓開發的大勢所趨。當然下載Android Studio還要有些“科學上網”的方法,或者另走捷徑,這些書中有所介紹,不再贅述。

郭老師在手把手的教我們安裝好Android Studio之後,就開始教我們寫Hello World了,郭老師教我們寫的 Hello World 有何獨特之處?看看某童鞋的評價——

本人年前根據網上教程自己搭建了安卓的開發環境,找了幾個開源小專案就開始蒙著頭研究,遇到不懂的就各種百度,做了一個月後,雖然也有不少收穫,但總感覺腦子裡是一團漿糊……看這本書評價挺好,就入手了一本。看了之後,才發現,原來安卓是這麼系統這麼有調理這麼優秀的東西,瞬間豁然開朗了!


實戰使用者介面

手機App作為客戶端應用,是直接與使用者打交道的,而活動(Activity)作為安卓的四大元件之一,正是負責互動這部分的,是最基本也是最頻繁使用的部分,可以說是基本功所在,一定要掌握好!第二章從實戰角度出發,依次介紹了最常用的——Toast、Menu、Intent,以及Activity的生命週期、啟動模式、最佳實踐。我們跟著郭老師把第二章這一趟走下來,

毫不誇張地說,你在 Android 活動方面已經算是一個小高手了!

第三章主要介紹了Android的基本控制元件和基本佈局,Android Studio 提供了視覺化編輯器,允許使用拖放控制元件的方式來編寫佈局,並能在檢視上直接修改控制元件的屬性。使用過Visual Studio 做過桌面應用開發或者用過Dreamweaver做過網頁的肯定對這種拖拽式佈局不會陌生。當然郭老師並不推薦我們使用這種方式來編寫介面,因為視覺化編輯工具並不利於我們去真正瞭解介面背後的實現原理。就像寫Web應用一定要熟悉HTML一樣,我們做安卓開發也一定要完全掌握使用 XML來編寫介面。

第四章的Fragment,主要功能是可以讓介面在安卓平板上更好地展示,鑑於安卓平板並不是那麼熱門,這一章對於初學者而言其實可以略過。


廣播

第五章介紹了四大元件之二 —— Broadcast,安卓依靠廣播來實現訊息的收發,結合介面部分學到的知識,本書教我們做了一些有趣的實踐,比如App開發經常會接觸到的使用者登入。

值得一提的是,本章當中,郭老師順帶著把Git的概念和最基本的實踐給我們安利了一遍,竊以為這種安排還是很有實戰意義的,在後續的過程中我們也會持續用到Git對程式碼進行版本管理,有關Git的知識可以進一步參考《GitHub入門與實踐》,關於Git在協同開發中的作用可以參考《Git團隊協作GitHub入門與實踐Git團隊協作


資料

程式的執行離不開資料,任何一個App,其實就是在不停地和資料打交道,沒有資料的App就是一個空殼。第6-9章基本上就是圍繞著各類資料展開。第6章首先涉及的是資料持久化,包含檔案儲存、 SharedPreferences儲存以及資料庫儲存。第7章 Content Provider是安卓四大元件之一,涉及不同的應用程式之間實現資料共享的功能,並且詳細介紹了安卓的許可權機制。第8章首次教我們在實機上執行自己編寫的App,並且教我們玩些有趣的東西——使用通知、 呼叫攝像頭、從相簿中選取照片、播放音訊和視訊檔案等等。第9章則是通過網路與服務端進行資料互動,寫過Web程式的童鞋對於這一章可能不會太陌生。


服務

服務(Service)是 Android 中實現程式後臺執行的解決方案,適合去執行那些不需要和使用者互動而且還要求長期執行的任務(比如偷偷的在後臺跑個流量啊什麼的就是它? )。第10章專門介紹安卓四大元件中的最後一項:服務。服務實現的核心是安卓多執行緒程式設計,熟悉Java的童鞋會比較容易上手,因為語法都是一樣的。本章的實踐以一個典型的多執行緒場景——下載檔案為例,涉及第7、8 、9 、10 章的多項內容,綜合程度很高,完成這個例子基本就算跨過安卓開發的入門門檻了。另外,如欲深入瞭解Java的多執行緒程式設計可以看結城浩的作品《圖解Java多執行緒設計模式圖解Java多執行緒設計模式


進階

完成了前面的內容後,我們已經成功脫離了安卓初級開發者的身份。第11-14章則從多方面介紹高階開發涉及的內容:基於位置服務很接地氣的結合了百度的LBS SDK;Material Design教我們如何開發更有谷歌味道的漂亮UI;最後以一個很考驗綜合應用能力的天氣軟體實戰收尾,讓我們體驗一把開發一個具有完整功能的App的全過程。當然,更加深入細緻的知識,我們還要多看書、多實踐、多學習 —— 《Android程式設計權威指南(第3版)》在等著你!Android程式設計權威指南


總結

整本書學習下來的兩大感覺就是:(1)入門容易,郭老師就像是坐在你的邊上,手把手的教你,真是沒法學不會啊!(2)接地氣,結合了國內開發的實際,比如 LBS 用的是百度、廣告用的是廣點通、安卓市場用的是360,大大的方便了我們國內的開發者進行實踐。

最後,還有啥不明白的就到郭老師的網站上去提問吧 http://guolin.tech

相關文章