項目中用到的開源庫,若是不熟悉,網上搜一些文章進行學習,把開源庫的基本使用都瞭解了以後再去看項目,這樣就不會一頭霧水。php
當下比較流行的技術有 RxJava + Retrofit+okhttp,RecycleView,Butterknife,Glide等,這些技術在LookLook項目中都用應用,若是把 LookLook這個項目搞懂了,基本就沒有問題了html
剛開始看一些項目可能會感受沒有頭緒,項目看多了,就不會有這種感受了,只要靜下心,一切都ok了。android
準備工做: 下載項目,編譯後運行在虛擬機或真機上,讀README瞭解項目概況。數據庫
看 項目源碼:打開Manifest文件,找到入口activity,簡要瀏覽項目中有一些什麼activity,Broadcast Receiver,Service。而後在虛擬機或真機上打開程序對照源碼看。順藤摸瓜,一步一步往下看,第一遍可能不會徹底看懂。第一遍就是把程序運行 的主要脈絡搞懂,熟悉項目中用到的開源庫和知識點,若是有本身不熟悉的,上網搜一些文章學習。第一遍主要脈絡搞懂了以後,再進行第二遍,第三遍,甚至第四 遍,每一遍都會加深對代碼的理解。編程
若是你的項目看多了以後你會發現一個項目能夠分爲如下幾個模塊:網絡
1,activity 和fragment架構
2,adaptermvc
3,數據實體app
4,第三方開源庫的使用,網絡、圖片、其餘工具框架
5,一些工具類
6,項目配置類
7,自定義View
8,其餘(數據庫,activity、fragment的基類,API等)
任何事情均可以熟能生巧,在看了一些開源項目後,本身最好開發一個。
閱讀源碼對於中級工程師尤其重要,經過代碼能夠看做者的實現途徑,方法,思想。若是你源碼看多了,你就能夠靈活應用不一樣的途徑實現同一效果。對於一箇中級android開發者須要閱讀什麼源碼,android系統源碼?第三方開源庫源碼?完整項目源碼?這些源碼學習價值都很大,那咱們應該學習哪個?首先咱們要明白咱們的目的:短期提高咱們編碼技能,但願在工做能體現出來。從這個角度來看,閱讀android系統源碼的價值就不是很高。因此對於一箇中級工程師來講,要把第三方開源庫和完整項目做爲主要對象。下面我就講一下看第三方開源庫和完整項目源碼的一些方法和技巧。
我使用的是Android Studio來看源碼的;
若是你是一個閱讀源碼的新手,那我建議你首先找一些代碼量少的,本身感興趣的來看。
如何閱讀第三方開源庫
(1)選擇一些當下熱門、學習價值高的第三方開源庫,例如Volly;
(2)熱門的第三方開源庫,網上會有不少源碼解析文章,這樣就能夠快速的對項目的總體框架有一個大致的瞭解,再去看源碼具體實現就很快了。
(3)學會使用搜索引擎:對於搜索引擎,Google>bing>baidu.
(4)一些看不懂的代碼,先放一放,繼續往下看。閱讀第三方開源庫主要是學習他的設計思想。
如何閱讀開源完整項目
(1)下載項目,在真機或虛擬機上運行,最直觀的體驗app的功能。
(2)而後熟悉app的架構,mvc、mvp、mvvm,目前項目中mvvp用的比較少。
(3)而後打開build.gradle文件看看項目用了哪些網絡請求庫、圖片加載庫、其餘庫。若是有不熟悉的,上網找一些文章學習一下。
(4)而後就打開manifasts文件找的入口activity,順藤摸瓜往下看。一樣,不懂的地方放過。
(5)不要期望一遍就能夠搞定。
(6)這裏給你們推薦一個特別值得學習的項目LookLook,項目結構清晰,代碼量不是很大,學習價值高,涉及到:mvp架構,RxJava + Retrofit+okhttp,glide。
看源代碼的大致思想:
一、第一遍不要糾結於具體實現,先把程序的總體框架流程搞清楚。
二、不須要從頭至尾看,能夠跳着看,由於程序原本就是模塊化的。
三、項目的選擇也很重要,代碼量由少到多,功能由簡單到複雜。
很喜歡做者的這句話:
「最後須要記住的是若是你被龐大的源碼戰勝,不是由於你笨,而是由於你急躁,或是你選擇的項目不對。編程就像寫小說同樣,不只要多看,還要多練。總有一天你也會成爲一個優秀的「做家」。小夥伴們開始 趕快Read The Fucking Source Code 吧」。
左後把做者總結的經驗借鑑一下,而後就投入使用了:
1.要有決心,要有一個成爲高級工程師的決心。這一點誰也幫不了你,徹底靠本身。能夠提早暢想一下成爲高級工程師後的本身,挑女友、買HHKB,高清顯示屏,人工力學座椅、降噪耳機,漂亮的房子、汽車、人生贏家......
2.按部就班,任何事情須要一個過程,由易到難。不少小夥伴一開始不知道看什麼開源項目,我這裏給你們列順序。
第一階段android的官方Demo,90%都不難,有一些技術咱們不經常使用到,能夠直接略過。
第二階段2016年最值得學習的五大開源項目,能夠挑本身感興趣的看,也能夠在完整項目(泡在網上的日子)找一些。首先看項目src文件夾大小,在500kb如下均可以接受。
第三階段第三方熱門開源庫,Volly,Universal Image loader等。
第四階段看本身感興趣的,融會貫通,擴充知識廣度,最好本身再作一個開源項目,放在Github上。
3.計劃,給本身設定一個計劃,一個本身想完成的計劃。如幾天以內看完這個項目。我通常會制定周計劃、月計劃,這個月學些什麼內容,這個星期學一些什麼內容,不須要太詳細,簡要的內容就能夠,我會把他以便籤的形式放在電腦桌面上。一個月下來,學的東西比計劃裏的東西要多,可是不必定會完成所有計劃,計劃能夠做調整。
4.其餘。根據本身的習慣選擇。個人習慣:編程前把手洗乾淨,乾淨整潔的桌面,一個舒服的椅子或靠墊護腰,累了再加點輕音樂,不按期跑步、打球,天天傍晚一我的散步。對於我來講一我的去散步很重要,去不會碰就熟人的地方,能夠專心致志想不少事情.....。最後剩下的就是日復一日的堅持。
文/maat紅飛(簡書做者)原文連接:http://www.jianshu.com/p/be86e5678252著做權歸做者全部,轉載請聯繫做者得到受權,並標註「簡書做者」。