Android學習路線總結,絕對乾貨


title: Android學習路線總結,絕對乾貨
tags: Android學習路線,Android學習資料,怎麼學習android
grammar_cjkRuby: true
---html

1、前言

不知不覺本身已經作了幾年開發了,由記得剛出來工做的時候感受本身能牛逼,如今回想起來感受好無知。懂的越多的時候你纔會發現懂的越少。java

若是你的知識是一個圓,當你的圓越大時,圓外面的世界也就越大。android

最近看到不少Android新手問Android學習路線,學習方法啊,如何入門啊,因此我從網上找了一些資料,而後以個人工做經驗給你們總結一下,讓大家少走彎路,提取一些工做中常常用到的技術。正則表達式

2、學習知識彙總

一、Java se基礎

1).Java基本數據類型與表達式,分支循環。
2).String和StringBuffer的使用、正則表達式。
3).面向對象的抽象,封裝,繼承,多態,類與對象,對象初始化和回收;構造函數、this關鍵字、方法和方法的參數傳遞過程、static關鍵字、內部類。
4).對象實例化過程、方法的覆蓋、final關鍵字、抽象類、接口、繼承的優勢和缺點剖析;對象的多態性:子類和父類之間的轉換、抽象類和接口在多態中的應用、多態帶來的好處。
5).Java異常處理,異常的機制原理。
6).經常使用的設計模式:Singleton、Template、Strategy模式。
7).JavaAPI介紹:種基本數據類型包裝類,System和Runtime類,Date和DateFomat類等。
8).Java集合介紹:Collection、Set、List、ArrayList、LinkedList、Hashset、Map、HashMap、Iterator等經常使用集合類API。
9).JavaI/O輸入輸出流:File和FileRandomAccess類,字節流InputStream和OutputStream,字符流Reader和Writer,以及相應實現類,IO性能分析,字節和字符的轉化流,包裝流的概念,以及經常使用包裝類,計算機編碼。
10).Java高級特性:反射和泛型。
11).多線程原理:如何在程序中建立多線程(Thread、Runnable),線程安全問題,線程的同步,線程之間的通信、死鎖。數據庫

二、android UI編程

1)、Android開發環境搭建:Android介紹,Android開發環境搭建,第一個Android應用程序,Android應用程序目錄結構。編程

2)、Android初級控件的使用:設計模式

TextView控件的使用
Button控件的使用方法
EditText控件的使用方法
ImageView的使用方法
RadioButton的使用方法
Checkbox的使用方法
Menu的使用方法安全

3)、Android高級控件的使用:性能優化

ListView的使用方法
GridView的使用方法
Adapter的使用方法
Spinner的使用方法
Gallary的使用方法
ScrollView的使用方法
RecyclerView服務器

四、對話框與菜單的使用:

Dialog的基本概念
BlockquoteAlertDialog的使用方法
DatePickerDialog的使用方法
Menu的使用方法
自定義Menu的實現方法

5.控件的佈局方法:

線性佈局的使用方法
相對佈局的使用方法

6.多Acitivity管理:

AndroidManifest.xml文件的做用
Intent的使用方法
使用Intent傳遞數據的方法
啓動Activity的方法
IntentFilter的使用方法
Activity Group的使用方法

七、自定義控件實現方法:

自定義ListView的實現方法
可摺疊ListView的使用方法
自定義Adapter的實現方法
自定義View的實現方法
動態控件佈局的上實現方法
上拉刷新下拉加載更多

三、android網絡編程與數據存儲

1).基於Android平臺的HTTP通信:

Http協議回顧
使用Get方法向服務器提交數據的方法
使用POST方法向服務器提交數據的實現方法
使用Http協議實現多線程下載
使用Http協議實現斷點續傳

2).Android數據存儲技術:

SQLite3數據庫簡介
SQL語句回顧
SQLite3編程接口介紹
SQLite3事務管理
SQLite3遊標使用方法
SQLite3性能分析
訪問SDCard的方法
訪問SharedPreferences的方法

參考自:http://www.cnblogs.com/zhuawang/p/3672228.html

3、進階之路(初級->中級->高級)

一、初級工程師

小明以前徹底沒接觸過Android開發,是個應屆生,他的待遇是13k,而後小明以校招的身份進入了百度,而後小明須要怎麼學習才能成爲初級工程師呢?這個時候,小明對編程基礎、數據結構、C語言都有必定基礎,Java語法什麼的也都掌握的比較好,Android纔有java語言,無奈的是小明並不會搞Android。

小明首先須要購買一本Android入門的書籍,爲了更快地學習Android,小明業餘時間也都用來一邊看書一邊照着書中的例子敲代碼,結果2周時間小明就把這本書學了一遍。看完這本書後,小明對Android的歷史、結構、代碼規範等都有了一個大概的瞭解,而且,小明已經能夠寫出一些簡單的Activity了。這個時候在小明眼裏,Android開發很簡單很好玩,經過在xml中擺放一些按鈕文本框什麼的就能夠作一些界面了。

小明開始跟着他的技術導師作需求,一些簡單的小需求小明天然是不在話下了。忽然有一天來了一個需求,該需求要求小明在Activity中爲一個button加一個動畫效果,小明慌了:「徹底沒接觸過,書上也沒有講,怎麼辦呢?」小明冷靜了下,打開了百度搜索,輸入「Android 動畫」,打開前幾個連接,小明恍然大悟,照着網上的例子把需求給實現了。後來導師告訴他:「學好Android,官方文檔是必須看的,既全面又權威」。而後小明如獲至寶,花了一年時間把上面的guide和training都看了一遍,而且他還動手抄了幾個小例子。

有一天,小明又須要作一個動畫相關的需求,這可難不倒小明,它熟練地打開了www.baidu.com,輸入「Android 動畫」,忽然他楞了一下:」總不能每次寫動畫都要百度一下吧!「,因而他在CSDN開了一個博客,把動畫相關的知識點都寫上去,爲的是後面再寫動畫相關的代碼就不用百度去搜了,事實如何呢?後面再寫動畫相關的代碼,小明的確不用再去百度搜了,由於經過寫一篇動畫博客,他把動畫相關的細節都已經記住了,這樣他就能夠不用再去參考任何文檔了,後來小明還學會了把一些瑣碎的不方便放在博客上的東西寫到了印象筆記上面,何時忘了10秒鐘之內均可以快速找回來,而不是花10分鐘去再次搜索一遍。

這裏總結一下,Android入門的時候,須要有一本入門書,好好學習書中的內容,同時花一年時間把Android官方文檔中的training和guide看一遍,同時經過寫博客和記筆記的方式來作總結,建議讓本身的每篇博客都有價值些。經過一年時間的學習,相信每一個人均可以達到中級工程師的水平。

技術要求:

  • 基本知識點
    好比四大組件如何使用、如何建立Service、如何進行佈局、簡單的自定義View、動畫等常見技術
  • 書籍推薦
    《第一行代碼 Android》、《瘋狂Android》

二、中級工程師

小明通過一年的努力學習終於成爲Android中級工程師了,月薪變成了17k。到了中級工程師,已經能夠在公司裏幹不少體力活了,可是一些很重要的任務小明還不能一我的承擔起來,這個時候小明須要學習的內容就不少了,以下所示:

  • AIDL:熟悉AIDL,理解其工做原理,懂transact和onTransact的區別;
  • Binder:從Java層大概理解Binder的工做原理,懂Parcel對象的使用;
  • 多進程:熟練掌握多進程的運行機制,懂Messenger、Socket等;
  • 事件分發:彈性滑動、滑動衝突等;
  • 玩轉View:View的繪製原理、各類自定義View;
  • 動畫系列:熟悉View動畫和屬性動畫的不一樣點,懂屬性動畫的工做原理;
  • 懂性能優化、熟悉mat等工具
  • 懂點常見的設計模式

學習方法

閱讀進階書籍,閱讀Android源碼,閱讀官方文檔並嘗試本身寫相關的技術文章,須要有必定技術深度和自我思考。在這個階段的學習過程當中,有2個點是比較困擾你們的,一個是閱讀源碼,另外一個是自定義View以及滑動衝突。

如何閱讀源碼呢?這是個頭疼的問題,可是源碼必需要讀。閱讀源碼的時候不要深刻代碼細節不可自拔,要關注代碼的流程並儘可能挖掘出對應用層開發有用的結論。另外仔細閱讀源碼中對一個類或者方法的註釋,在看不懂源碼時,源碼中的註釋能夠幫你更好地瞭解源碼中的工做原理,這個過程雖然艱苦,可是別無他法。

如何玩轉自定義View呢?個人建議是不要經過學習自定義view而學習自定義view。爲何這麼說呢?由於自定義view的種類太多了,各式各樣的絢麗的自定義效果,如何學的玩呢!咱們要透過現象看本質,更多地去關注自定義view所需的知識點,這裏作以下總結:

  • 搞懂view的滑動原理
  • 搞懂如何實現彈性滑動
  • 搞懂view的滑動衝突
  • 搞懂view的measure、layout和draw
  • 而後再學習幾個已有的自定義view的例子
  • 最後就能夠搞定自定義view了,所謂萬變不離其宗

大概再須要1-2年時間,便可達到高級工程師的技術水平。我我的認爲經過《Android開發藝術探索》和《Android羣英傳》能夠縮短這個過程爲0.5-1年。注意,達到高級工程師的技術水平不表明就能夠馬上成爲高級工程師(受機遇、是否跳槽的影響),可是技術達到了,成爲高級工程師只是很簡單的事。

技術要求:

  • 稍微深刻的知識點
    AIDL、Messenger、Binder、多進程、動畫、滑動衝突、自定義View、消息隊列等
  • 書籍推薦
    《Android開發藝術探索》、《Android羣英傳》

三、高級工程師

小明成爲了求之不得的高級工程師,月薪達到了20k,還拿到了一丟丟股票。這個時候小明的Android水平已經不錯了,可是小明的目標是資深工程師,小明據說資深工程師月薪能夠達到30k+。

爲了成爲Android資深工程師,須要學習的東西就更多了,而且有些並非那麼具體了,以下所示:

  • 繼續加深理解」稍微深刻的知識點「中所定義的內容
  • 瞭解系統核心機制:
  1. 瞭解SystemServer的啓動過程
  2. 瞭解主線程的消息循環模型
  3. 瞭解AMS和PMS的工做原理
  4. 可以回答問題」一個應用存在多少個Window?「
  5. 瞭解四大組件的大概工做流程
  • 基本知識點的細節
  1. Activity的啓動模式以及異常狀況下不一樣Activity的表現
  2. Service的onBind和onReBind的關聯
  3. onServiceDisconnected(ComponentName className)和binderDied()的區別
  4. AsyncTask在不一樣版本上的表現細節
  5. 線程池的細節和參數配置
  • 熟悉設計模式,有架構意識學習方法

這個時候已經沒有太具體的學習方法了,無非就是看書、看源碼和作項目,平時多種總結,儘可能將知識融會貫通從而造成一種體系化的感受。同時這個階段對架構是有必定要求的,架構是抽象的,可是設計模式是具體的,因此必定要增強下設計模式的學習。關於設計模式的學習,最近一本新書推薦給你們《Android 源碼設計模式解析與實戰》,既能夠學習設計模式,又可能體會到Android源碼中的設計思想,我最近也在閱讀此書。

技術要求:

  • 稍微深刻的知識點
  • 系統核心機制
  • 基本知識點的細節
  • 設計模式和架構
  • 書籍推薦
    《Android開發藝術探索》、《Android 源碼設計模式解析與實戰》、《Android內核剖析》

參考自:http://blog.csdn.net/singwhatiwanna/article/details/49560409

4、學習視頻跟書籍

當你有了學習線路,學習哪些內容,也知道之後的路怎麼走了,理論看多了總要實踐的,我這裏給大家整理了大概80G的學習視頻跟書籍,趕快點我點我點我。。。下載。。

若是你想第一時間看咱們的後期文章,掃碼關注公衆號,每週不按期推送Android開發實戰教程文章,你還等什麼,趕快關注吧,學好技術,出任ceo,贏取白富美。。。。

Android開發666 - 安卓開發技術分享
            掃描二維碼加關注

Android開發666

相關文章
相關標籤/搜索