官术网_书友最值得收藏!

如何學習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開發新動向,及時為你提供開發指導和支持。

主站蜘蛛池模板: 阜城县| 盘锦市| 勃利县| 芮城县| 荔波县| 崇文区| 新郑市| 团风县| 绥阳县| 军事| 光山县| 梓潼县| 昌吉市| 灵璧县| 襄城县| 雅江县| 河南省| 鹰潭市| 内黄县| 和顺县| 河曲县| 清徐县| 札达县| 西峡县| 浦城县| 丰台区| 米林县| 五常市| 荃湾区| 会同县| 肥乡县| 黔西县| 东辽县| 瓮安县| 新丰县| 洪洞县| 巩义市| 神农架林区| 新郑市| 普兰县| 广宗县|