Android 學習指南(2017版)
Android 學習指南
不斷有新人來詢問如何學習Android,很多都是無從下手,沒有任何概念。正好好久沒寫文章了,今天來整理一下Android學習大綱,同時也會附上部分學習資料,主要還是希望大家能夠根據我提供的關鍵詞和思路,自己逐個突破。
Java基礎
首先是學習Java語言基礎,很多人不明白,我不是學Android麼,怎麼又學Java了?你家的房子是用磚頭堆出來的,隔壁的小區也是磚頭堆出來的,就算是故宮,那還得用磚頭呀。當然了,還有很多建築物不是用磚頭的,有的是純木頭建造,有的是玻璃的、鋼材的、石頭的等等。Java不僅可以用於Android開發,還有其他的開發用途,反之,Android也不是隻能用Java開發,其他也行,這個我們下面再講。
Java的體系很大,但是我們並不需要全部學習,只需要學習Android開發中用到的內容,至於Java相關的其他內容比如Swing、JSP、SpringMVC框架等這些內容我們並不需要學習。
我們需要學習的Java知識有:
- Java 基本資料型別
- Java 變數型別
- Java 修飾符
- Java 運算子與表示式
- Java 分支:if...else/switch
- Java 迴圈語句:for/while/do...while
- Java Array、List、Map、Set、Collection
- Java 流(Stream)、檔案(File)和IO
- Java 異常
- Java 繼承、介面、抽象類
- Java 重寫(Override)與過載(Overload)
- Java 多型
- Java 泛型
- Java 執行緒
- Java 面向物件思想
網上關於Java的學習視訊有很多,比如馬士兵、Mars的都可以,當然這些都是比較老的教程了,不過對於我們學習語言基礎並無大礙,反而經典。
當然學習Java之前你還要搭建好Java開發環境,啥,你以為隨便寫幾行程式碼就能執行嗎?不給你地皮,再多的磚頭也造不了房子。環境搭建很簡單,無非就是安裝JDK、配置環境變數,不同的系統略有差異。然後是開發工具,用什麼來開發呢?最簡單的可以用記事本,通過命令列編譯執行,也可以用其他整合開發工具,例如Eclipse。用什麼工具無所謂,不會加工資的,主要是學會Java語言基礎。
如果你喜歡用記事本的話,那麼給你推薦幾款編輯器:
Android基礎
學完Java就可以步入Android的學習環節了,先講講Android開發用什麼開發工具呢?有人說Eclipse呀,沒錯,幾年前我們確實用Eclipse,通過配置ADT外掛,就可以進行Android開發,以後後來Google還出了整合ADT版的Eclipse,更省事,不過這都是幾年前了。現在Google已經不再支援Eclipse,推出了自己的開發工具Android Studio(Eclipse可不是Google的,Android是Google的),所以我們Android開發就是使用Android Studio,且Android Studio是最好用的Android開發工具,沒有之一。
我們需要學習的Android知識有:
- Android UI元件
- Android Dialog、PopupWindow
- Android Activity和Fragment
- Android 事件機制
- Android 繪圖和動畫
- Android 資料儲存
- Android 廣播(Broadcast)和服務(Service)
- Android 網路訪問
- Android 藍芽及相關硬體開發、多媒體等等
以上Android內容只是粗略的章節,大家需要去細化學習,同樣,網上也有很多教學視訊,不過這裡必須推薦我自己錄製的Android教程不吹不黑,絕對是最實用、最新、最詳細的Android視訊教程,隨便看兩集便知。
視訊教程:
書籍參考:
- 《第一行程式碼》,作者部落格:
至此,恭喜你,你可以去面試找一份Android開發崗位的工作了,在工作中再去慢慢打磨,一步一步踩坑,做個APP出來是沒啥問題的。那麼到這就結束了?當然不是,畢竟建個豬圈跟建個東方明珠塔還是有區別的,很多知識是別人教不了的,只有在不斷的實踐中才能悟出真道理,只需謹記:求知若渴,虛懷若愚。
Android進階
不能僅限於最基礎的開發、控制元件的基本使用、API的正常呼叫,很多內容我們只有深入理解之後才能發現新大陸。
- 深入理解Android事件分發機制
- 深入理解Android訊息機制
- 擅長View的自定義繪製
- 理解並能合理運用各類設計模式
- 熟悉多執行緒機制
- 快取設計
- 效能優化
- 閱讀和理解原始碼Android原始碼
這裡我就不推薦書籍了,推薦幾個部落格吧:
Kotlin
為什麼又要學習Kotlin呢,不是已經學了Java了嗎?在2017年 Google I/O 開發者大會上,Google宣佈將Kotlin作為Android官方開發語言。如同Apple推出Swift一樣,Kotlin是否會完全取代Java成為Android開發的主流語言,這將由市場一步步驗證。作為開發者,我們要做的就是不斷提升自己,豐富技能,以應對快速迭代的市場環境。
不建議大家直接學習Kotlin,畢竟目前還沒有整體過渡到Kotlin,一切以實際情況為主,還是先把Java學好,並且Java和Kotlin是可以混合使用的。本人後期也會考慮錄製Kotlin的視訊教程。
學習參考:
常用庫
在實際開發中,很多時候我們會在專案中使用目前比較成熟的開源庫,能夠節省大量的開發時間,且這些庫有專門的人或團隊在維護,比我們自己寫可能會更好,何必重複造輪子呢,而且別人的輪子說不定更好。這邊我整理了比較常用的開源庫供大家參考:
整合第三方SDK
你的專案還可能用到很多第三方SDK,那麼就需要熟悉第三方的SDK使用,還好,這不是什麼難點,遇到一個攻克一個即可。
- 百度地圖、高德地圖
- QQ登入、微信登入、微博登入
- QQ分享、微信分享、微博分享
- 微信支付、支付寶支付、銀聯支付
- 極光推送、個推
- 友盟統計
MVP模式
MVP是一種開發上的模式,它使得我們不再把所有的程式碼都寫在Activity或者Fragment中,實現了View和Model的解耦,通過Presenter來銜接。
M : Model
V : View
P : Presenter
各人各公司寫法多有不同,但是大同小異,Google也給出了相應的Demo供參考:
混合開發
在不斷的探索中,一種很常用的開發方式已經產生,就是混合開發。什麼是混合開發?就是在Android專案中插入H5頁面,通過Java和JavaScript之間的相互呼叫,實現頁面之間的無縫對接。這種方式有什麼好處呢?節省人力、降低維護成本、適配性好,更新方便。
- 掌握WebView控制元件的使用
- addJavascriptInterface
- loadUrl
- shouldOverrideUrlLoading
- 其他
- 熟悉H5開發的相關內容
- Html5
- CSS
- Javascript
當然,輪子還是有的,可以參考或直接使用Github上的開源專案:
外掛化
外掛化開發主要利用 Java ClassLoader 的原理,對於 Android 來說是 DexClassLoader,目前也有很多開源框架。
參考部落格:
熱修復
熱修復和外掛化屬於一個知識體系,Github上也有很多開源專案,列舉幾個相對熱門的:
NDK
上面都是在說應用層開發,也是絕大多數人可能從事的內容。當然,大家也可以往底層發展,做NDK相關的開發內容,不好意思,本人沒有相關經驗。
跨平臺開發框架
這個其實不完全屬於Android開發內容了,應當屬於前端範疇,作為補充知識瞭解一下。所有WebApp框架(一套程式碼兩個包)基本都有以下特點:
- 使用 Html5 + CSS + JavaScript 開發
- 豐富的UI元件庫
- 封裝大量JavaScript API
- 提供原生API訪問介面
- 提供硬體訪問介面
- 提供除錯、打包等服務
- 適配性好
介紹幾款還算常用的跨平臺框架:
-
React Native
React Native 是 Facebook的開源框架。 -
MUI
國產,DCloud出品,配合HBuilder使用,官網號稱最接近原生APP體驗的高效能前端框架。
MUI 網址
之前也寫過一篇關於MUI的文章,大家可以參考 -
Ionic
用Ionic必須會AngularJS -
其他
程式碼管理
在協作開發以及多版本開發時,我們需要使用程式碼管理工具來幫助儲存合併程式碼,常用以下兩種:
網站推薦
如果看到這你還不知道還如何學習Android的話,那麼也沒關係,世界那麼大,為什麼非要搞Android呢。
作者:天哥在奔跑
連結:https://www.jianshu.com/p/f6681e417d40
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。