日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

如何自学Android

發布時間:2025/3/21 Android 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何自学Android 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

看到很多人提問非科班該如何學習編程,其實科班也基本靠自學。有句話叫“師傅領進門修行靠個人”,再厲害的老師能教你的東西都是很有限的,真正的修行還是要靠自己。博主本科是數學專業,雖研究生是計算機專業,但研究生往往是做研究工作(偏學術型研究),編程只是工具,可能很多時候Matlab就搞定了基本需求,再或許用一些科研型仿真軟件就可完成課題研究中涉及的編程模塊,學業上不太需要很多編程。

關于編程(比如Java)完全是靠擠時間自學的,而Android則更是參加工作后才開始自己倒騰。不少人認為我學習能力強、博客產出高,是如何做到的??一份興趣 + 一份堅持,很簡單,只是把大家用來娛樂、游戲等閑散時間,擠出來用于學習技術、寫博客而已。

關于如何學習Android系統, 這就好比讀書, 是經由一個由薄讀厚,再由厚讀薄的過程. 前者是指剛接觸一個新領域, 知之甚少,開始不斷努力專研探索, 慢慢地隨著時間地積累, 當你會發現自己專研得越來越多, 自己掌握得知識體系非常龐大, 但當遇到一個新問題需要從大腦檢索很久,甚至需要重新review一下曾經看過的已知東西, 那么說明自己以完成了”由薄讀厚”;接下來, 需要進行一個”由厚讀薄”的過程, 用程序員都能理解的一個詞就是知識歸納與建立索引的過程,通過思考將所有相關聯的知識 整理到一起, 形成自己大腦體系的完整知識目錄.進而你會發現自己大腦里面留下得便是整個知識架構, 架構里面的每一層只要拉開抽屜就能取出所有完整的知識點. 到此,我覺得才是完成一個知識的學習的過程.

接下來從基礎篇和高級篇兩個層次來說說如何學習Android, 本文涉及的所有書籍都是Gityuan?在學習過程中所讀過的部分較經典的一些書籍才推薦給大家。

一. Java篇

Java是Android的語言基礎,建議初學者一定要先學習Java基本知識,進而再學習Android,循序漸進,只有扎實的基礎才能建造牢固的上層建筑。

當然,這里說的要有一定Java基礎,而并非讓大家上來先精通Java。作為Android開發者來說,完全沒有必要一開始都對Java理解得那么深,只有要看過一兩本Java基本書,掌握Java面向對象的思想的核心要義即萬物皆為對象,掌握Java基本語法,基本就可以開啟Android的學習之路。在后續對Android也有一定理解后,如遇不懂可再回過頭看看Java高級知識點,慢慢地同步提升Java和Android水平。

Java書籍

  • Thinking in Java: 中文版《Java編程思想 》,這是一本非常經典的Java書籍,很多人都說這個書不適合初學者,我記得自己當初看的第一本Java書便是這本書。看完第一遍對Java有了整體的理解,但很多細節沒有完全理解,查了資源又看了第二遍,對Java有了更深地理解。再后來一段時間后,能力也有所提升,再拿起這本書又看了第三遍,發現對面向對象有了更深一步的理解,這本書就是適合反復的閱讀。
  • Effective Java:Java進階書,這本書采用“條目”的方式來展開的,總提出了78條Java具體的建議,對Java平臺精妙之處的獨到見解,還提供優秀的代碼范例。作為Java進階之書,對Java水平的提升大有裨益。
  • Java concurrency in Practice:中文版《Java并發編程實戰》,本書采用循序漸進的講解方式,從并發編程的基本理論講起,再講述了結構化并發應用,性能與測試,最后將顯式鎖、原子變量、非阻塞算法這些高級主題。對于Java并發這一塊算得上是一本很棒的書。
  • Java Performance:中文版《Java性能優化權威指南》,Java之父James Gosling推薦的一本Java應用性能優化的經典之作,包含算法結構、內存、I/O、磁盤使用方式,內容通俗易懂,還介紹了大量的監控和測量工具。關于優化都是屬于較深的領域,對Java有一定基礎后,很有必要了解看看。

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

  • The Java Language Specification,官方Java文檔(英文版)
  • The Java? Virtual Machine Specification,官方Jvm文檔(英文版)
  • 深入理解java虛擬機:這是國內關于Java虛擬機講得非常全面的一本書,從Java GC到Java虛擬機內部實現以及優化策略,作為Java高手非常值得一看的書籍。

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

二、Android基礎篇

高效看書的姿態:學習過程會需要看書,網上一搜,往往會有一大推的書推薦給大家去閱讀,面對這么多書,該如何選擇,如何閱讀的呢,對于同一個層級的書籍選擇一本精讀,其余的粗讀、略讀即可,大同小異,對于精讀書籍需要反復的閱讀。

2.1 入門級別

有了一定的Java基礎(不需要精通Java),就可以開始入門Android。建議初學Android者,一定要先搭建自己的開發環境,先準備jdk和Android Studio環境,現在就不要再用Eclipse了,對于Android開發者來說過時。在看書的過程一邊看知識點一邊寫著示例程序,一來加深印象,二來提高動手能力。

  • 《瘋狂Android講義》:作者李剛,這是我看過的第一個Android書籍,目前有第三版了,我當時看的是第二版基于Android 4.2,書中有大量的實例,記得當時每看完一個實例就跟著敲了一遍,大概花了一周時間把這本書看完并把大部分的實例代碼都親手敲了一遍。
  • 《第一行代碼》:作者郭霖,網上有不少人都推薦這本書作為Android入門書,但我當時沒有看過。這是圖靈系列圖書,前段時間圖靈的編輯看到我的博客gityuan.com,聯系到我問是否有興趣出書,便提到郭霖的《第一行代碼》是他們出版社推出的,然后就給我免費郵寄了一本(多謝贈書之誼)。我大概掃了一掃這本書,內容的確比較基礎,作者文筆不錯,書中還穿插了不少打怪漲經驗升級的片段,比較風趣,初學者可以看看。

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

有朋友好奇私信我是否即將要出書了,目前沒有相關計劃,自覺能力尚不及很多前輩,還需加深內功修為,將更多的知識寫成文章來分享大家。

2.2 一手資料

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

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

  • developer.android.com:Android開發官網,下面列舉常用的資料:
    • Android training:Android培訓文檔;相應地,國內有一個中文翻譯文檔Android培訓課程中文版;
    • Android API指南:Android組件、Manifest配置文件,動畫/圖像等相關介紹;
    • Android Tools:性能、測試、Android Studio等各種工具說明文檔;
    • source.android.com:介紹Android開源碼相關的內容;
  • Android Performance Patterns:2015年Google陸續在Youtube上發布的Android性能優化的視頻,目前已更新第4季。
    • 國內Google組織在優酷上發布了相應的中文視頻?(中文)Android 性能模式 第四季;
    • 對官方視頻進行翻譯并整理:Android性能優化典范中文版文檔;
  • android-developers.blogspot.com:Android官方博客,有一些比較不錯的feature,博客會第一時間呈現。

2.3 開源資源

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

  • android-arsenal.com:作者vbauer整理收集Github中各種開源庫與工具,并提供搜索功能,是國外整理得最全面的庫;
  • Android 開源項目匯總:作者Trinea整理的各種開源庫,是國內整理得最全面的庫;
  • codeKK 開源項目源碼分析:從源碼的角度,分析Android較流行的優秀開源框架;
  • codota.com:這是一個代碼搜索引擎,收集的是各種API的優秀示例Java代碼。

當然還有很多優秀的博客和網站值得推薦,這里就不一一介紹。

三、Android高級篇

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

如果想成為Android系統工程師,那么閱讀Android系統源碼便是必修課。

如果想成為高級App開發工程師,那么閱讀Android系統源碼算是選修課,閱讀一些優秀的開源框架庫算是必修課。

如果你是剛剛入門,建議先打好基礎,千萬不要一上看源碼,一來看得費勁,二來你可能在代碼間來回跳轉,可能會迷失在某一個環節,更甚是理解錯誤,記住一定要循序漸進。

3.1 閱讀源碼的重要性

借用Linux之父Linus Torvalds的一句名言:Read the fucking source code。不管是閱讀Andoid系統源碼還是優秀的開源框架,對能力那都會有一個很大提升;首先,能學習到優秀的代碼風格和設計思想;其次,能真正做到“知其然,還知其所以然”;最后,能指導自己更加靈活的使用API,能更加快速地找到系統bug的根源。

3.2 閱讀源碼的準備

  • Java基礎:上層framework以及App層都是采用Java語法;
  • C/C++基礎:Android的jni/native層代碼采用C++,Linux 采用C;
  • Linux內核:Android內核基于Linux的,了解Linux相關知識對深入掌握Android還是很有必要。
  • Git工具:Android源碼采用git和repo進行管理;
  • Make:Android源碼采用Make系統編譯,源碼系統中會看到很多Android.mk之類的文件;
  • Source Insight:這絕對是看源碼的神器;可以在Java、C++、C代碼之間無縫銜接;
  • Android Studio:這是Google官方支持的App開發環境,另外,能方便地閱讀framework Java層面的系統源碼。
  • Atom: 是Github推出的開源文本編輯器,支持linux、window等多平臺,可能不是最好用的,但我已習慣Atom.
  • Google Drawings:這是畫圖工具,Gityuan博客中的文章都是采用Google Drawing完成,比如Binder開篇文中的圖。
  • StarUML:這是類圖,Gityuan博客文章的類圖和流程圖都是采用StarUML完成,比如理解Android進程創建流程文中時序圖。
  • 3.3 閱讀源碼的姿態

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

    閱讀Android源碼:

    如下以Android系統啟動為主線,展開一系列的文章Android開篇中的流程圖,在公司內部分享時我曾多次以下圖為流程,來闡述Android架構,如下圖:

    點擊查看大圖

    Android系統源碼

    android.googlesource.com:Google官方源碼,國內無法直接訪問,需要翻墻,對于一個程序員來說具備翻墻的能力是有必要的。Android源碼中包含的庫非常之多,下面列舉我在看Android源碼過程中涉及較多,也是比較常看的一些庫:

    • android/platform/packages/apps:Android自帶的app,比如Email,Camera, Music等,對于應用開發工程師主要關注的目錄;
    • android/platform/frameworks/base: Java framework,這是framework工程師看得最多的目錄;
    • android/platform/frameworks/native:Native framework;
    • android/platform/art:Art虛擬機;
    • android/kernel/common:Android內核,這是驅動工程師最關注的模塊;
    • android/platform/system/core?:核心系統;
    • android/platform/libcore:平臺的lib庫;

    另外,對于無法翻墻的朋友來說,還可以通過上Github通過?Android主頁?下載Android源碼,這些都是定時從Google官方源碼的鏡像同步而來的。還可以從androidxref來直接查看Android系統源碼。

    3.4 優秀資源

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

    Android 系統源碼分析

    • Innost的專欄
      • 鄧凡平前輩所寫博客,條例有序,覆蓋了Android系統大部分內容;
      • 《深入理解Android》 (卷I,卷II,卷III)
    • 老羅的Android之旅
      • 羅升陽前輩所寫博客,從各個層面介紹Android系統;
      • 《Android系統源代碼情景分析 》
    • Gityuan源碼分析
      • 對于鄧凡平和羅升陽兩位前輩的博客基于Android 2.x或4.x,目前Android已發展到Android 6.0。不管Android如何變化,其核心思維變化并沒有很大,所以兩位前輩的博客還是很有值得學習和參考的地方。話又說回來,Android經過了幾個大版本的迭代,無論是從代碼結構還是整體邏輯仍有不少變化。故博主計劃寫一關于Android 6.0源碼系列的博文。
      • Gityuan作為Android界新秀,能力尚不及很多前輩,但有一顆樂于分享的心,有一份癡于Android的品質,有一種堅持的態度,已經并一直還在努力奮斗的道路上…

    3.5 進階書籍

    • Linux內核設計與實現
    • 深入理解Linux內核
    • 深入Linux內核架構
    • Linux設備驅動程序
    • 重構 改善既有代碼的設計
    • 編程珠璣 (卷1, 卷2)
    • 設計模式
    • 設計模式之禪
    • 人月神話

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

    需要再次強調一下,此處高級篇更主要的是針對系統工程師,對于android開發高級工程師的修煉之路,只需要掌握其中一部分即可,更核心的重點還是在app層面的知識。

    四、其他

    4.1 開發書籍推薦

    如果還想看更多關于開發書籍的推薦, 可以看看diycode發起的,由一群社區較活躍的Android人士(包括Gityuan在內)一起共同撰寫的Android開發書籍推薦。

    4.2 解決問題的方式

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

    • 百度一下,很多時候還是能有所幫助的,不要過分強調google,完全拋棄百度,畢竟中文資料對大多數人來說理解起來更快;
    • Google搜索,建議先用中文關鍵詞google一下;再英文關鍵詞google一下;
    • stackoverflow.com、知乎等技術問答網站內直接搜索;
    • 查看官方文檔;
    • 如果有源碼,嘗試直接看源碼,看能否解決;

    另外,有空可以多逛逛github,多看看Google官方文檔,多關注社區,定會收獲不少;

    4.3 番外篇

    最后,再說說關于學習編程的番外篇:

    • 好奇心比雄心走得更遠:很多人對未來空有滿腔的雄心壯志,往往不如對技術要有一份好奇心,一份探索欲,再加上一份執著的人。
    • 要有open的心態:曾經的我也只是把自己的所思所得都放入自己的云筆記,很少整理,這其實不利于技術發展,有空應該多整理自己零散的知識點,覺得不錯的點可以拿出來寫成博客,那是對能力的又一層提升。另外,在低頭做技術的同時,還應該有空抬頭看世界,不能閉門造車。
    • 天道酬勤:學歷只能代表過去,能力代表現在,潛力代表未來! 你不把自己逼一把,你壓根不知道自己有多優秀,只要努力去學習,去挖掘潛力,進而提升自我技術修為,未來不再是夢!共勉之!
    • 當然,最最重要的是能靜得下心,持之以恒地專研技術。

    from:?http://gityuan.com/2016/04/24/how-to-study-android/

    總結

    以上是生活随笔為你收集整理的如何自学Android的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。