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語言基礎。
- 下載 JDK
- 下載 Eclipse
如果你喜歡用記事本的話,那么給你推薦幾款編輯器:
- EditPlus (Windows版)
- Notepad (Windows版)
- Sublime Text (Windows版) (Mac版)
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 Studio
我們需要學習的Android知識有:
- Android UI組件
- Android Dialog、PopupWindow
- Android Activity和Fragment
- Android 事件機制
- Android 繪圖和動畫
- Android 數據存儲
- Android 廣播(Broadcast)和服務(Service)
- Android 網絡訪問
- Android 藍牙及相關硬件開發、多媒體等等
以上Android內容只是粗略的章節,大家需要去細化學習,同樣,網上也有很多教學視頻,不過這里必須推薦我自己錄制的Android教程《Android開發視頻教程(Java版 | 2017年最新錄制)》不吹不黑,絕對是最實用、最新、最詳細的Android視頻教程,隨便看兩集便知。
視頻教程:
- Android開發視頻教程(Java版 | 2017年最新錄制)
書籍參考:
- 《第一行代碼》,作者博客:郭霖 CSDN
至此,恭喜你,你可以去面試找一份Android開發崗位的工作了,在工作中再去慢慢打磨,一步一步踩坑,做個APP出來是沒啥問題的。那么到這就結束了?當然不是,畢竟建個豬圈跟建個東方明珠塔還是有區別的,很多知識是別人教不了的,只有在不斷的實踐中才能悟出真道理,只需謹記:求知若渴,虛懷若愚。
Android進階
不能僅限于最基礎的開發、控件的基本使用、API的正常調用,很多內容我們只有深入理解之后才能發現新大陸。
- 深入理解Android事件分發機制
- 深入理解Android消息機制
- 擅長View的自定義繪制
- 理解并能合理運用各類設計模式
- 熟悉多線程機制
- 緩存設計
- 性能優化
- 閱讀和理解源碼Android源碼
這里我就不推薦書籍了,推薦幾個博客吧:
- 天哥在奔跑 - 簡書(自己的務必推薦)
- 郭霖 - CSDN
- 鴻洋 - CSDN
- 任玉剛 - CSDN
Kotlin
為什么又要學習Kotlin呢,不是已經學了Java了嗎?在2017年 Google I/O 開發者大會上,Google宣布將Kotlin作為Android官方開發語言。如同Apple推出Swift一樣,Kotlin是否會完全取代Java成為Android開發的主流語言,這將由市場一步步驗證。作為開發者,我們要做的就是不斷提升自己,豐富技能,以應對快速迭代的市場環境。
不建議大家直接學習Kotlin,畢竟目前還沒有整體過渡到Kotlin,一切以實際情況為主,還是先把Java學好,并且Java和Kotlin是可以混合使用的。本人后期也會考慮錄制Kotlin的視頻教程。
學習參考:
- Kotlin - 官方文檔
- Kotlin - 菜鳥教程
常用庫
在實際開發中,很多時候我們會在項目中使用目前比較成熟的開源庫,能夠節省大量的開發時間,且這些庫有專門的人或團隊在維護,比我們自己寫可能會更好,何必重復造輪子呢,而且別人的輪子說不定更好。這邊我整理了比較常用的開源庫供大家參考:
-
網絡請求
- OKHttp
- Retrofit
- Volley
-
圖片加載
- UniversalImageLoader
- Picasso
- Glide
- Fresco
-
時間日期
- joda-time
-
數據庫
- LitePal
- GreenDAO
-
依賴注入
- butterknife
- dagger
-
Log日志
- logger
集成第三方SDK
你的項目還可能用到很多第三方SDK,那么就需要熟悉第三方的SDK使用,還好,這不是什么難點,遇到一個攻克一個即可。
- 百度地圖、高德地圖
- QQ登錄、微信登錄、微博登錄
- QQ分享、微信分享、微博分享
- 微信支付、支付寶支付、銀聯支付
- 極光推送、個推
- 友盟統計
MVP模式
MVP是一種開發上的模式,它使得我們不再把所有的代碼都寫在Activity或者Fragment中,實現了View和Model的解耦,通過Presenter來銜接。
M : Model
V : View
P : Presenter
各人各公司寫法多有不同,但是大同小異,Google也給出了相應的Demo供參考:
- MVP - Google Demo
混合開發
在不斷的探索中,一種很常用的開發方式已經產生,就是混合開發。什么是混合開發?就是在Android項目中插入H5頁面,通過Java和JavaScript之間的相互調用,實現頁面之間的無縫對接。這種方式有什么好處呢?節省人力、降低維護成本、適配性好,更新方便。
- 掌握WebView控件的使用
- addJavascriptInterface
- loadUrl
- shouldOverrideUrlLoading
- 其他
- 熟悉H5開發的相關內容
- Html5
- CSS
- Javascript
當然,輪子還是有的,可以參考或直接使用Github上的開源項目:
- Github:WebViewJavascriptBridge
插件化
插件化開發主要利用 Java ClassLoader 的原理,對于 Android 來說是 DexClassLoader,目前也有很多開源框架。
參考博客:
- Android博客周刊專題之#插件化開發#
熱修復
熱修復和插件化屬于一個知識體系,Github上也有很多開源項目,列舉幾個相對熱門的:
- Github:AndFix
- Github:HotFix
- Github:Nuwa
NDK
上面都是在說應用層開發,也是絕大多數人可能從事的內容。當然,大家也可以往底層發展,做NDK相關的開發內容,不好意思,本人沒有相關經驗。
跨平臺開發框架
這個其實不完全屬于Android開發內容了,應當屬于前端范疇,作為補充知識了解一下。所有WebApp框架(一套代碼兩個包)基本都有以下特點:
- 使用 Html5 + CSS + JavaScript 開發
- 豐富的UI組件庫
- 封裝大量JavaScript API
- 提供原生API訪問接口
- 提供硬件訪問接口
- 提供調試、打包等服務
- 適配性好
介紹幾款還算常用的跨平臺框架:
-
React Native
React Native 是 Facebook的開源框架。
React Native 中文網 -
MUI
國產,DCloud出品,配合HBuilder使用,官網號稱最接近原生APP體驗的高性能前端框架。
MUI 網址
之前也寫過一篇關于MUI的文章,大家可以參考HBuilder+MUI那些事兒 -
Ionic
用Ionic必須會AngularJS
Ionic 網址 -
其他
代碼管理
在協作開發以及多版本開發時,我們需要使用代碼管理工具來幫助保存合并代碼,常用以下兩種:
-
SVN
可使用命令行或可視化工具,工具推薦:TortoiseSVN
教程參考:- SVN教程 - 菜鳥教程
- TortoiseSVN 安裝配置 - 百度經驗
-
Git
可使用命令行或可視化工具,工具推薦:SourceTree
教程參考:- Git 教程 - 廖雪峰
- 常用 Git 命令清單 - 阮一峰
- SourceTree 的使用 - 百度經驗
網站推薦
- 安卓巴士(初學者可以多看看,很多demo可以幫助學習)
- Android開發技術周報
- 美團點評技術團隊
如果看到這你還不知道還如何學習Android的話,那么也沒關系,世界那么大,為什么非要搞Android呢。
作者:天哥在奔跑
鏈接:https://www.jianshu.com/p/f6681e417d40
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權并注明出處。
總結
以上是生活随笔為你收集整理的Android 学习指南(2017版)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java Calendar 获取时间为明
- 下一篇: android sina oauth2.