- Android編程權威指南(第4版)
- (美)克莉絲汀·馬西卡諾 布賴恩·加德納 比爾·菲利普斯 克里斯·斯圖爾特
- 2695字
- 2021-06-15 15:29:04
如何學習Android開發
對新手來說,學習Android開發一開始會很難。就像初次踏入異國他鄉一樣,即使會說當地語言,一開始也絕不會有舒服自在的感覺。周圍人習以為常的東西你不能理解,原有的知識儲備在新環境下也完全派不上用場。
Android有自己的語言文化——使用Kotlin或Java語言(或者兩者兼而有之)。但要深入理解Android,僅掌握Kotlin或Java還不夠,你還需要學習諸多新理論和新技術。涉足陌生領域時,有個向導會很有幫助。
這就是我們的作用所在。在Big Nerd Ranch,我們認為,要成為一名Android開發人員,你必須:
- 著手開發一些Android應用;
- 充分理解你的Android應用。
本書將協助你完成以上兩件事。我們用它成功培訓了數千名專業的Android開發人員。本書將指導你開發多個Android應用,并根據需要介紹各種概念和技術。在學習過程中,如果遇到知識疑難點,請勇敢面對。我們也會盡最大努力抽絲剝繭,讓你知其然更知其所以然。
我們的教學方法是:在學習理論的同時,就著手運用它們開發實際的應用,而非先學習一大堆理論,再考慮如何將其應用于實踐。讀完本書,你將具備必要的開發經驗和知識。以此為起點,深入學習,你會逐漸成長為一名合格的Android開發者。
閱讀前提
使用本書,你需要熟悉Kotlin語言,包括類、對象、接口、監聽器、包、內部類、對象表達式以及泛型類等基本概念。
如果不熟悉這些概念,沒翻幾頁你就會看不下去了。對此,建議先放下本書,找本Kotlin入門書看一看。市面上有很多優秀的Kotlin入門書,你可以基于自己的編程經驗及學習風格去挑選。或許你可以看看《Kotlin編程權威指南》1這本書。
1此書已由人民郵電出版社出版,詳情請見圖靈社區。——編者注
如果你熟悉面向對象編程,但Kotlin知識掌握得不牢靠,那么閱讀本書應該不會有太大問題。碰到Kotlin語言點,我們會進行簡單的解釋。不過,在學習的過程中,還是建議手邊備上一本Kotlin參考書,以方便查閱。
第4版有哪些變化
第4版是一次重大更新,每一章的內容都做了修改。要說最大的變化,當數應用開發語言從Java換成了Kotlin。因為這個緣故,我們私下稱第4版為“Android 4K”。
另一個重大改變是全面引入了Android Jetpack組件庫。第4版使用Jetpack庫(又稱AndroidX)代替了原來的支持庫。而且,只要有可能,我們就會整合使用全新的Jetpack API。例如,第4版會使用ViewModel來處理設備旋轉的UI狀態持久化問題,使用Room和LiveData來實現數據庫及其數據查詢,使用WorkManager來調度后臺工作,等等。在學習過程中,你還會在一個個項目的開發中看到更多Jetpack組件的應用。
為重點關注現代Android應用是如何開發的,除了Android框架本身以及Jetpack內的API,第4版開始使用第三方庫。例如,書中優先使用Retrofit及其依賴庫,而非原來的HttpURLConnection和一些低級別的網絡API。相比之前的版本,這屬于很大的改變,我們認為這有助于讀者更好地適應專業的Android應用開發。而且,書中選用的這些第三方庫也是我們為客戶開發應用時日常使用的。
Kotlin與Java
Kotlin獲Android開發官方支持是在2017年的Google I/O大會上宣布的。在那之前,一直是民間Android開發者力量在推動使用Kotlin。自2017年官宣后,Kotlin已被人們廣為接受,并迅速成為大多數開發者進行Android開發的首選語言。在Big Nerd Ranch,所有的應用開發項目都采用Kotlin,即使是過去那些大量使用Java的遺留項目。
轉向使用Kotlin這股潮流依然浩蕩向前。Android框架團隊已開始向平臺遺留代碼加入@nullable注解。他們不斷發布用于Android開發的Kotlin擴展。本書撰寫時,Google正忙于向Android官方開發文檔中添加Kotlin示例和支持。
Android框架最初是使用Java開發的,也就是說,你用到的大部分Android類是用Java編寫的。幸運的是,Kotlin支持與Java互操作,所以使用Kotlin開發不會有任何問題。
本書選擇使用Kotlin API,即使這些API背后的開發語言是Java。無論你喜歡Kotlin還是Java,本書傳授的都是如何開發Android應用。你所學的Android平臺上的開發經驗和知識,對這兩種語言都適用。
如何使用本書
本書不是一本參考書。我們的目標是幫你跨越學習的初始障礙,進而充分利用其他參考資料和實例類圖書來深入學習。本書基于Big Nerd Ranch培訓機構的五天教學課程編寫而成,從基礎知識講起,各章內容循序漸進,所以建議不要跳讀,以免學習效果大打折扣。
我們為學員提供了良好的培訓環境:專用的教室、可口的美食、舒適的住宿條件、動力十足的學習伙伴,以及隨時答疑解惑的指導老師。
作為本書讀者,你同樣需要類似的良好環境。因此,你需要保證充足的睡眠,然后找一個安靜的地方開始學習。參考以下建議也很有幫助。
(1) 和朋友或同事組成閱讀小組。
(2) 集中安排時間逐章學習。
(3) 參與本書論壇的交流和討論。
(4) 向Android開發高手尋求幫助。
本書內容
本書會帶你學習開發七個Android應用。有些應用很簡單,一章即可講完,有些則相對復雜。最復雜的一個應用跨越了11章。通過這些精心編排的應用,你能學到很多重要的理論知識和開發技巧,并獲得最直接的開發經驗。
GeoQuiz
本書中的第一個應用,用來學習Android應用的基本組成、activity、界面布局以及顯式intent。
CriminalIntent
本書中最復雜的應用,能夠記錄辦公室同事的種種陋習,用來學習fragment、list-backed用戶界面、數據庫、菜單選項、相機調用、隱式intent等內容。
BeatBox
一個可以嚇退對手的應用,用來學習媒體文件的播放與控制、MVVM架構、數據綁定、單元測試、主題以及drawable資源。
NerdLauncher
一個個性化啟動器,用來深入學習intent、進程以及Android任務。
PhotoGallery
一個從Flickr網站下載照片并進行顯示的客戶端應用,用來學習后臺任務調度、多線程、網絡內容下載等知識。
DragAndDraw
一個簡單的畫圖應用,用來學習如何處理觸摸手勢事件以及如何創建個性化視圖。
Sunset
一個漂亮的日落動畫應用,用來學習Android動畫。
挑戰練習
大部分章末配有練習題。你可借此機會實踐所學,查閱官方文檔,鍛煉獨立解決問題的能力。
強烈建議你完成這些挑戰練習。在練習過程中,不妨嘗試另辟蹊徑,這有助于你鞏固所學知識,增強未來開發應用的信心。
若遇到一時難以解決的問題,請訪問本書論壇求助。
深入學習
部分章末還包含“深入學習”一節。這一節對該章內容進行了深入講解或提供了更多信息。這一節不屬于必須掌握的部分,但希望你有興趣閱讀并有所收獲。
版式說明
為方便閱讀,本書會對某些特定內容采用專門的字體。變量、常量、類型、類名、接口名和函數名會以代碼體顯示。
所有代碼與XML清單也會以代碼體顯示。需要輸入的代碼或XML總是以粗體顯示。應該刪除的代碼或XML會打上刪除線。例如,在以下代碼里,我們刪除了Toast.makeText(...).show()函數的調用,增加了checkAnswer(true)函數的調用。
trueButton.setOnClickListener { view: View ->Toast.makeText(this,R.string.correct_toast,Toast.LENGTH_SHORT).show()checkAnswer(true) }
Android版本
本書教學主要針對當前廣泛使用的各個系統版本(Android 5.0 至 Android 11.0)。雖然更老的系統版本仍有人在用,但對于大多數開發者來說,為支持這些版本而付出努力得不償失。
如果應用確實需要支持 Android 5.0 之前的系統版本,請參考本書第3版(Android 4.4及以上版本)、第2版(Android 4.1及以上版本)和第1版(Android 2.3及以上版本)的相關內容。
新版本的Android系統還會不斷發布。請放心,Android支持向后兼容(詳見第7章),即便有了新系統,本書所授知識也不會過時。我們也會在本書論壇上不斷跟蹤Android開發新動向,及時為你提供開發指導和支持。
- C語言程序設計(第3版)
- 兩周自制腳本語言
- INSTANT FreeMarker Starter
- 算法精粹:經典計算機科學問題的Python實現
- Mastering Scientific Computing with R
- Quantum Computing and Blockchain in Business
- 小程序從0到1:微信全棧工程師一本通
- Sails.js Essentials
- 貫通Tomcat開發
- SAP Web Dynpro for ABAP開發技術詳解:基礎應用
- Mastering OpenStack
- HikariCP數據庫連接池實戰
- Spring Boot 3:入門與應用實戰
- Hands-On Data Visualization with Bokeh
- Spring MVC Cookbook