欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

扣丁學(xué)堂解讀零基礎(chǔ)如何自學(xué)Android開發(fā)

2018-08-31 10:28:39 1509瀏覽

隨著互聯(lián)網(wǎng)IT行業(yè)的發(fā)展,越來越多的人選擇入坑互聯(lián)網(wǎng),程序員是一個很好的選擇,但是很多沒有基礎(chǔ)的同學(xué)都會選擇先去培訓(xùn)機構(gòu)培訓(xùn),今天小編先來給大家講一下如果你不參加Android培訓(xùn),該如何自學(xué)Android開發(fā)。



一、基礎(chǔ)篇

看書的姿態(tài):學(xué)習(xí)過程往往大家都需要看書,網(wǎng)上一搜,往往會有一大推的書推薦給大家去閱讀,面對這么多書,該如何選擇,如何閱讀的呢,對于同一個層級的書籍選擇一本精讀,其余的粗讀、略讀即可,大同小異,對于精讀的書籍需要反復(fù)的閱讀。

1.1Java篇

Java是Android的基礎(chǔ),建議初學(xué)者一定要先學(xué)習(xí)Java基本知識,進(jìn)而再學(xué)習(xí)Android,循序漸進(jìn),切莫心急,只有扎實的基礎(chǔ)才能建造牢固的上層建筑。

Java書籍

ThinkinginJava:中文版《Java編程思想》,這是一本非常經(jīng)典的Java書籍,很多人都說這個書不適合初學(xué)者,我記得自己當(dāng)初看的第一本Java書便是這本書??赐甑谝槐閷ava有了整體的理解,但很多細(xì)節(jié)沒有完全理解,查了資源又看了第二遍,對Java有了更深地理解。再后來一段時間后,能力也有所提升,再拿起這本書又看了第三遍,發(fā)現(xiàn)對面向?qū)ο笥辛烁钜徊降睦斫?,這本書就是適合反復(fù)的閱讀。

EffectiveJava:Java進(jìn)階書,這本書采用“條目”的方式來展開的,總提出了78條Java具體的建議,對Java平臺精妙之處的獨到見解,還提供優(yōu)秀的代碼范例。作為Java進(jìn)階之書,對Java水平的提升大有裨益。

JavaconcurrencyinPractice:中文版《Java并發(fā)編程實戰(zhàn)》,本書采用循序漸進(jìn)的講解方式,從并發(fā)編程的基本理論講起,再講述了結(jié)構(gòu)化并發(fā)應(yīng)用,性能與測試,最后將顯式鎖、原子變量、非阻塞算法這些高級主題。對于Java并發(fā)這一塊算得上是一本很棒的書。

JavaPerformance:中文版《Java性能優(yōu)化權(quán)威指南》,Java之父JamesGosling推薦的一本Java應(yīng)用性能優(yōu)化的經(jīng)典之作,包含算法結(jié)構(gòu)、內(nèi)存、I/O、磁盤使用方式,內(nèi)容通俗易懂,還介紹了大量的監(jiān)控和測量工具。關(guān)于優(yōu)化都是屬于較深的領(lǐng)域,對Java有一定基礎(chǔ)后,很有必要了解看看。

Java虛擬機,這是作為進(jìn)階Java高手必需有所了解:

TheJavaLanguageSpecification,官方Java文檔(英文版)

TheJava?VirtualMachineSpecification,官方Jvm文檔(英文版)

深入理解java虛擬機:這是國內(nèi)關(guān)于Java虛擬機講得非常全面的一本書,從JavaGC到Java虛擬機內(nèi)部實現(xiàn)以及優(yōu)化策略,作為Java高手非常值得一看的書籍。

本文的重點是講如何學(xué)習(xí)Android,所以姑且把Java基礎(chǔ)與進(jìn)階的書都放到Android學(xué)習(xí)的基礎(chǔ)篇里。作為Android開發(fā)者來說,完全沒有必要一開始都對Java理解得那么深,只有要看一兩本Java基本書,掌握J(rèn)ava面向?qū)ο蟮乃枷氲暮诵囊x即萬物皆為對象,掌握J(rèn)ava基本語法,基本就可以開啟Android的學(xué)習(xí)之路。在后續(xù)對Android也有一定理解后,再慢慢不斷提升Java和Android水平。

有朋友私信我覺著這個java書難度有點高,可能是本人在看Java書籍之前,還看過些許C和C++的入門書的緣故,所以看的第一本書《Java編程思想》。如果你真的是零基礎(chǔ),第一次接觸編程,想以Java作為自己的入門語言,那么你可以先看看《Java語言程序設(shè)計》(基礎(chǔ)篇)或者《Java從入門到精通》,作為初學(xué)者險掌握J(rèn)ava基本語法,平時遇到不熟悉的方法,多查看API文檔即可,慢慢地就熟悉了。

1.2Android基礎(chǔ)篇

有了一定的Java基礎(chǔ)(不需要精通Java),就可以開始入門Android。建議初學(xué)Android者,一定要先搭建自己的開發(fā)環(huán)境,先準(zhǔn)備jdk和AndroidStudio環(huán)境。再看書的過程,一邊看知識點一邊寫示例程序,一來加深印象,二來提高動手能力。

《瘋狂Android講義》:作者李剛,這是我看過的第一個Android書籍,目前有第三版了,我當(dāng)時看的是第二版基于Android4.2,書中有大量的實例,記得當(dāng)時每看完一個實例就跟著敲了一遍,大概花了一周時間把這本書看完并把大部分的實例代碼都親手敲了一遍。

Android的基本書籍,只需一兩本即可,沒有必要看太多基礎(chǔ)書籍,不同能力就該有不同的追求,這里就不再介紹其他基礎(chǔ)書籍。另外,Android開發(fā)過程中總是需要各種開發(fā)環(huán)境、工具的下載,再這里推薦一個不錯的網(wǎng)站AndroidDevTools.cn,收集整理了Android開發(fā)、設(shè)計等相關(guān)的各種工具大集合,非常全面,而且速度也不錯哦,最重要的不用翻墻就可下載到最新的工具。

1.3Android一手資料

何為Android一手資料?那就是Google官方給出的資料,這里往往是英文版的,營養(yǎng)價值極高。其實你只要英文還湊合+翻墻工具,強烈建議你直接看Android官網(wǎng)的資料,千萬別被英語所嚇倒,因為很多專業(yè)名稱,大家一看就明白比如Activity/Service等這些代碼名稱本身就是英語,剩下地都就非?;A(chǔ)語法,不懂可以隨時翻譯,我一般都是用Chrome瀏覽器+Google翻譯插件,哪里不會點哪里,媽媽再也不用擔(dān)心我的英語了。

言歸正傳,如果你能看完并理解下列的內(nèi)容,那么你完全可以沒有必要再看前面介紹的書籍,并且對于Android已有相當(dāng)熟悉了。

developer.android.com:Android開發(fā)官網(wǎng),下面列舉常用的資料:

另外由胡凱發(fā)起了Android培訓(xùn)課程中文版;對官方文檔進(jìn)行翻譯;

Androidtraining:Android培訓(xùn)文檔;

AndroidAPI指南:Android組件、Manifest配置文件,動畫/圖像等相關(guān)介紹;

AndroidTools:性能、測試、AndroidStudio等各種工具說明文檔;

source.android.com:介紹Android開源碼相關(guān)的內(nèi)容;

AndroidPerformancePatterns:2015年Google陸續(xù)在Youtube上發(fā)布的Android性能優(yōu)化的視頻,目前已更新第4季。

國內(nèi)Google組織,優(yōu)酷上發(fā)布了相應(yīng)的(中文)Android性能模式第四季;

另外由胡凱發(fā)起了Android性能優(yōu)化典范中文版文檔;對官方視頻進(jìn)行翻譯并整理;

android-developers.blogspot.com:Android官方博客,有一些比較不錯的feature,博客會第一時間呈現(xiàn)。

1.4Android資源整理

到這里,那么你已經(jīng)具備開發(fā)App的本領(lǐng)。平時需要自己動手多寫寫App,另外就是看看別人優(yōu)秀的App是如何寫的,下面列舉一些開源庫、工具以及App:

android-arsenal.com:作者vbauer整理收集Github中各種開源庫與工具,并提供搜索功能,是國外整理得最全面的庫;

Android開源項目匯總:作者Trinea整理的各種開源庫,是國內(nèi)整理得最全面的庫;

codeKK開源項目源碼分析:從源碼的角度,分析Android較流行的優(yōu)秀開源框架;

codota.com:這是一個代碼搜索引擎,收集的是各種API的優(yōu)秀示例Java代碼。

當(dāng)然還有很多優(yōu)秀的博客和網(wǎng)站值得推薦…//TODO

二、進(jìn)階篇

作為程序員,不去閱讀源碼,僅僅看API文檔,只是浮于表象,這是遠(yuǎn)遠(yuǎn)不夠的。.真正最能鍛煉能力的便是直接去閱讀源碼,不僅限于閱讀Andoid系統(tǒng)源碼,也包括閱讀各種優(yōu)秀的開源庫。

2.1閱讀源碼的重要性

借用Linux之父LinusTorvalds的一句名言:Readthefuckingsourcecode。不管是閱讀Andoid系統(tǒng)源碼還是優(yōu)秀的開源框架,對能力那都會有一個巨大的提升;首先,能學(xué)習(xí)到優(yōu)秀的代碼風(fēng)格和設(shè)計思想;能真正做到“知其然,還需知其所以然”;能指導(dǎo)自己更加靈活的使用API,能更加快速地找到系統(tǒng)bug的根源。

2.2閱讀源碼的準(zhǔn)備

Java基礎(chǔ):上層framework以及App層都是采用Java語法;

C/C++基礎(chǔ):Android的jni/native層代碼采用C++,Linux采用C;

Linux:Android內(nèi)核基于Linux的,了解Linux相關(guān)知識對深入掌握Android還是很有必要。

Git:Android源碼采用git和repo進(jìn)行管理;

Make:Android源碼采用Make系統(tǒng)編譯,源碼系統(tǒng)中會看到很多Android.mk之類的文件;

SourceInsight:這絕對是看源碼的神器;可以在Java、C++、C代碼之間無縫銜接;

Eclipse:熟悉常用快捷鍵,工欲善其事必先利其器;雖然SourceInsight很方便,但由于對Eclipse的熟悉感,對于frameworkJava層面的代碼,我還是更習(xí)慣用Eclipse來看,對于Native代碼以及l(fā)inux代碼則采用SourceInsight來看;

AndroidStudio:這是Google官方支持的App開發(fā)環(huán)境,關(guān)于AndroidStudiod使用教程;

GoogleDrawings:這是畫圖工具,Gityuan博客中的文章都是采用GoogleDrawing完成,比如Binder開篇文中的圖。

StarUML:這是類圖,Gityuan博客文章的類圖和流程圖都是采用StarUML完成,比如理解Android進(jìn)程創(chuàng)建流程文中時序圖。

2.3閱讀源碼的姿態(tài)

閱讀源碼絕不是從源碼工程按順序一個個的文件,從首行看到尾行。正確而高效地閱讀源碼的姿態(tài)應(yīng)該是以某一個主線為起點,從上層往底層,不斷地追溯,在各個模塊、文件、方法之間來回跳轉(zhuǎn),反復(fù)地閱讀,理清整個流程的邏輯。同時帶著思考去看源碼,嘗試去揣測作者的用意,去理解代碼的精妙之處,去思考代碼可能存在的缺陷,去總結(jié)優(yōu)秀的代碼設(shè)計思想。下面說說我在閱讀Android源碼過程常涉及的庫。

閱讀Android源碼:

下面是我以Android開機過程為主線,展開一系列的文章Android開篇中的一副流程圖,在公司內(nèi)部分享時我曾多次以下圖為流程整個Android架構(gòu),如下圖:


Android系統(tǒng)源碼

android.googlesource.com:Google官方源碼,國內(nèi)無法直接訪問,需要翻墻,對于一個程序員來說具備翻墻的能力是非常有必要的。Android源碼中包含的庫非常之多,下面列舉我在看Android源碼過程中涉及較多,也是比較??吹囊恍欤?br />
android/platform/packages/apps:Android自帶的app,比如Email,Camera,Music等,對于應(yīng)用開發(fā)工程師主要關(guān)注的目錄;

android/platform/frameworks/base:Javaframework,這是framework工程師看得最多的目錄;

android/platform/frameworks/native:Nativeframework;

android/platform/art:Art虛擬機;

android/kernel/common:Android內(nèi)核,這是驅(qū)動工程師最關(guān)注的模塊;

android/platform/system/core:核心系統(tǒng);

android/platform/libcore:平臺的lib庫;另外,對于無法翻墻的朋友來說,還可以通過上Github通過Android主頁下載Android源碼,這些都是定時從Google官方源碼的鏡像同步而來的。

2.4優(yōu)秀資源

牛頓曾說過:“如果我看得更遠(yuǎn)一點的話,是因為我站在巨人的肩膀上”,這句話很具有實用價值,看完前面的介紹,你千萬不要一上來就一頭扎進(jìn)源碼的世界,小心你會進(jìn)入二次元世界,處于混沌狀態(tài),最后崩潰乃至放棄求知之路,一定要合理利用現(xiàn)有的優(yōu)秀資源。

Android系統(tǒng)源碼分析

Innost的專欄

鄧凡平前輩所寫博客,條例有序,覆蓋了Android系統(tǒng)大部分內(nèi)容;

《深入理解Android》(卷I,卷II,卷III)

老羅的Android之旅

羅升陽前輩所寫博客,從各個層面介紹Android系統(tǒng);

《Android系統(tǒng)源代碼情景分析》

Gityuan源碼分析

對于鄧凡平和羅升陽兩位前輩的博客基于Android2.x或4.x,目前Android已發(fā)展到Android6.0。不管Android如何變化,其核心思維變化并沒有很大,所以兩位前輩的博客還是很有值得學(xué)習(xí)和參考的地方。話又說回來,Android經(jīng)過了幾個大版本的迭代,無論是從代碼結(jié)構(gòu)還是整體邏輯仍有不少變化。故博主計劃寫一關(guān)于Android6.0源碼系列的博文。

Gityuan作為Android界新秀,能力尚不及很多前輩,但有一顆樂于分享的心,有一份癡于Android的品質(zhì),有一種堅持的態(tài)度,已經(jīng)并一直還在努力奮斗的道路上…

2.5進(jìn)階書籍

深入理解Linux內(nèi)核

深入Linux內(nèi)核架構(gòu)

Linux內(nèi)核設(shè)計與實現(xiàn)

Linux設(shè)備驅(qū)動程序

重構(gòu)改善既有代碼的設(shè)計

編程珠璣(卷1,卷2)

設(shè)計模式

設(shè)計模式之禪

人月神話

前4本書都是關(guān)于Linux,如果你不是需要從事Linux相關(guān)開發(fā),只想提升對Android整體的理解,那么只需看一到兩本,對Linux的進(jìn)程、內(nèi)存、IO以及驅(qū)動有所了解,對CPU調(diào)度、進(jìn)程間通信有所熟悉就基本可以。另外,優(yōu)秀的書還有很多,這里只介紹/列舉我看過的書,目前還在看一些優(yōu)秀的書,后續(xù)再更新。

三、其他

另外,可以推薦看看diycode發(fā)起的,由一群社區(qū)較活躍的Android人士共同撰寫(包括我)的Android開發(fā)書籍推薦。

最后,再說說關(guān)于學(xué)習(xí)編程的番外篇:

好奇心比雄心走得更遠(yuǎn):很多人對未來空有滿腔的雄心壯志,往往不如對技術(shù)要有一份好奇心,一份探索欲,再加上一份執(zhí)著的人。

要有open的心態(tài):曾經(jīng)的我也只是把自己的所思所得都放入自己的云筆記,很少整理,這其實不利于技術(shù)發(fā)展,有空應(yīng)該多整理自己零散的知識點,覺得不錯的點可以拿出來寫成博客,那是對能力的又一層提升。另外,在低頭做技術(shù)的同時,還應(yīng)該有空抬頭看世界,不能閉門造車。

天道酬勤:學(xué)歷只能代表過去,能力代表現(xiàn)在,潛力代表未來!你不把自己逼一把,你壓根不知道自己有多優(yōu)秀,只要努力去學(xué)習(xí),去挖掘潛力,進(jìn)而提升自我技術(shù)修為,未來不再是夢!共勉之!

解決問題的方式:遇到問題,一定要先嘗試自己解決,解決不了再請教他人。這是對自己的一個鍛煉,也是對他人的一個尊重,可以有多種途徑自行搜索:

百度一下,很多時候還是能有所幫助的,不要過分強調(diào)google,完全拋棄百度,畢竟中文看起來比較快;

先中文關(guān)鍵詞google一下;再英文關(guān)鍵詞google一下;

stackoverflow.com、知乎等技術(shù)問答網(wǎng)站內(nèi)直接搜索;

查看官方文檔;

如果有源碼,嘗試直接看源碼,看能否解決;

有空可以多逛逛github,多看看Google官方文檔,多關(guān)注社區(qū),定會收獲不少;

當(dāng)然,最最重要的是能靜得下心,持之以恒地專研技術(shù)。


以上這篇就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持扣丁學(xué)堂,想要了解更多詳情請登錄扣丁學(xué)堂官網(wǎng)咨詢或者關(guān)注微信公眾號,里面有最新的扣丁學(xué)堂Android視頻教程等你來看!

扣丁學(xué)堂微信公眾號



【關(guān)注微信公眾號獲取更多學(xué)習(xí)資料】



查看更多關(guān)于“Android開發(fā)技術(shù)的相關(guān)資訊>>

標(biāo)簽: Android培訓(xùn)

熱門專區(qū)

暫無熱門資訊

課程推薦

微信
微博
15311698296

全國免費咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權(quán)所有   北京市海淀區(qū)寶盛北里西區(qū)28號中關(guān)村智誠科創(chuàng)大廈4層
京ICP備2021002079號-2   Copyright ? 2017 - 2022
返回頂部 返回頂部