Android 開發有什麼進階的書么?

兩個月看完了第一行代碼,最近也在做一個校園 APP 項目 做項目的時候,老是覺得有些乏力。 想繼續深入下去,比如原來只知道 Activity 載入自已的 XML 布局, 實際上到後來才知道他其實是有這麼一個層級關係的,發現自已了解的東西完全處於表面,深層次的東西基本上不知道。 就像一個人說的那樣,可能知道

How to do,不知道Why to do。不知道其底層實現原理


看了題主的問題,個人認為更應該去閱讀源碼,通過Android Studio跟一下繼承關係,比看書來得快。

Android方面進階的書籍很少,如果要推薦只推薦兩本:

  • 《Android開發藝術探索》

  • 《APP研發錄》

  • 《Android高級進階》

  • 《深入理解Android內核設計思想》

這幾本書非常值得一讀。

進階除了理論外,更多的是經驗和更深入地思考,這些都是需要親身實踐才會印象深刻,就算你看了書,也不一定能夠吸收,因為你沒遇到過,可能無法理解其中的含義。舉幾個例子:

  • 在java的finallize方法中釋放與類相關的資源是不靠譜的;

  • 在onCreate方法中直接顯示PopupWindow會掛掉;
  • e.printStackTrace會比較耗時(頻繁調用就知道了);
  • Activity設置為透明主題後,某些系統回調方法不會被調用;

這些知識在沒有親身實踐之前去看書或者官方文檔,多半會一帶而過,但遇到這些問題之後去看書或者查資料會讓你更加印象深刻,很難忘記。

還有到了一定程度,就不能只專註於Android了,要想更好地理解每個知識點,需要看其它方面的書和閱讀源碼。比如網路方面需要熟悉網路協議;性能方面需要了解演算法、JVM和操作系統原理;程序設計需要了解設計模式;要了解某一個類的實現原理需要閱讀源碼;音視頻方面需要了解編解碼、數字信號處理方面的內容。。。;

還有一些知識是書上看不來的,比如緩存、非同步載入、程序數據分離、動態更新等解決方案,這都需要自己去思考、摸索、實踐、總結。

最後強烈建議看官方文檔,Android的官方文檔太詳細了,比什麼書都好。如果你想了解基礎知識之外的一些知識,看官方文檔、技術博客、遇到問題後使用谷歌搜索都是很有幫助的。

學無止境,相比於知識本身,個人認為程序員最應該重視的是解決問題的能力,在工作和學習過程中形成一套屬於自己解決問題的方案,就算你不知道某一方面的知識,也可以通過自己去解決這些問題。


6月8日,阿里云云棲社區機構號 聯合IT圖書專業出版社 人民郵電出版社:非同步社區為大家帶來十本經典機器學習相關書籍。得到了大夥的點贊和評論的支持。為此,我們本周繼續《Android開發精選書籍推薦》:

書籍名稱:《深入理解Android內核設計思想(第2版)(上下冊)》

書籍簡介:

本書從操作系統的基礎知識入手,全面剖析進程/線程、內存管理、Binder機制、GUI顯示系統、多媒體管理、輸入系統、虛擬機等核心技術在Android中的實現原理。書中講述的知識點大部分來源於工程項目研發,因而具有較強的實用性,希望可以讓讀者「知其然,更知其所以然」。

本書分為編譯篇、系統原理篇、應用原理篇、系統工具篇,共4篇25章,基本涵蓋了參與Android開發所需具備的知識,並通過大量圖片與實例來引導讀者學習,以求盡量在源碼分析外為讀者提供更易於理解的思維方式。

本書既適合Android系統工程師,也適合於應用開發工程師來閱讀,從而提升Android開發能力。讀者可以在本書潛移默化的學習過程中更深刻地理解Android系統,並將所學知識自然地應用到實際開發難題的解決中。

點擊了解書籍詳情:深入理解Android內核設計思想(第2版 套裝上下冊)

書籍名稱:《Android Studio應用開發實戰詳解》

書籍簡介:

全書共分18章,依次講解了Android開發基礎、搭建Android開發環境、Android Studio集成開發環境介紹、Android Studio常見操作、分析Android應用程序文件的組成、Gradle技術基礎、UI界面布局、Material Design設計語言、核心組件介紹、Android事件處理、圖形圖像和動畫處理、開發音頻/視頻應用程序、GPS地圖定位、Android感測器應用開發、編寫安全的應用程序、Google Now和Android Wear、Android應用優化以及Android TV開發。本書幾乎涵蓋了Android Studio應用開發所能涉及的所有領域,在講解每一個知識點時,都遵循了理論聯繫實際的講解方式,用具體實例徹底剖析了Android Studio開發的每一個知識點。本書講解方法通俗易懂,特別有利於初學者學習並消化。

本書適合Android初級讀者、Android應用開發人員、Android愛好者、Android Studio開發人員、Android智能家居、Android可穿戴設備研發人員學習,也可以作為相關培訓學校和大專院校相關專業的教學用書。

點擊了解書籍詳情:Android Studio應用開發實戰詳解

書籍名稱:《深入解析Android 虛擬機》

書籍簡介:

Android系統從誕生到現在的短短几年時間裡,憑藉其易用性和開發的簡潔性,贏得了廣大開發者的支持。在整個Android系統中,Dalvik VM一直是貫穿從底層內核到高層應用開發的核心。本書循序漸進地講解了Android虛擬機系統的基本知識,並剖析了其整個內存系統的進程和運作流程,並對虛擬機系統優化和異常處理的知識進行了詳細講解。

本書幾乎涵蓋了Dalvik VM系統的所有主要內容,並且講解方法通俗易懂,特別有利於讀者學習並消化。

點擊了解書籍詳情:深入解析Android 虛擬機-圖書 - 非同步社區

書籍名稱:《Android感測器開發與智能設備案例實戰》

書籍簡介:

本書主要介紹Android感測器和外設的開發,共29章,主要包括Android開發技術基礎、獲取並編譯源碼、Android技術核心框架分析、Android感測器系統分析、使用地圖定位、光線感測器詳解、接近警報感測器詳解、磁場感測器詳解、加速度感測器詳解、方向感測器詳解、陀螺儀感測器詳解、旋轉向量感測器詳解、距離感測器詳解、氣壓感測器詳解、溫度感測器詳解、濕度感測器詳解、Android藍牙系統概述、低功耗藍牙技術詳解、語音識別技術詳解、手勢識別技術詳解、NFC近場通信技術詳解、拍照解析條形碼技術詳解、基於圖像處理的人臉識別技術詳解、行走軌跡記錄器、手勢音樂播放器和智能家居系統等。

本書幾乎涵蓋了Android感測器和外設開發所需的所有主要內容,講解方法通俗易懂。

點擊了解書籍詳情:Android感測器開發與智能設備案例實戰-圖書 - 非同步社區

書籍名稱:《構建安全的Android App》

書籍簡介:

本書介紹了主流的Android安全技術開發的方法,並把此方法應用在整個Android應用開發的代碼里。書中作者使用詳細的例子,從成百上千個他已經親自審核的應用程序中,幫助讀者解讀應用程序被攻擊的原因,然後演示更安全的解決方案。書中包括身份驗證、網路、資料庫、伺服器攻擊、數據、硬體等技術,並闡明了每種技術代碼示例的含義和作用,可以幫助讀者達到學以致用的目標。

點擊了解書籍詳情:構建安全的Android App

書籍名稱:《Android 應用測試指南》

書籍簡介:

《Android應用測試指南》是一本移動測試實用工具書。本書針對當前流行的技術、框架和工程質量改進工具進行了介紹,一步一步清晰地指導大家如何去寫應用程序的測試用例,利用各種測試手段來保證Android項目質量。

本書首先介紹了TTD(Android測試驅動開發)。TTD是軟體開發過程中一個敏捷模式,能讓你在早期發現應用中的Bug。書中給出了一些典型的樣例工程來示範測試,包括最簡單的單元測試和最複雜的性能測試。另外,本書以診斷的方式來詳細描述Android測試中較廣泛、較流行的應用技術。對於夢想在Android測試領域啟航的程序員和測試人員來說這無疑是一本非常珍貴、有用的參考書。

點擊了解書籍詳情:Android 應用測試指南-圖書 - 非同步社區

書籍名稱:《精通Android網路開發》

書籍簡介:

本書詳細介紹了Android網路開發的有關內容,全書共分為5篇,共計25章,從搭建Android開發環境和核心框架分析講起,依次講解了Android技術核心框架,網路開發技術基礎,HTTP數據通信,URL處理數據,處理XML數據,下載遠程數據,上傳數據,使用Socket實現數據通信,使用WebKit瀏覽網頁數據,Wi-Fi系統應用,藍牙系統應用,郵件應用,RSS應用,網路視頻處理,網路流量監控,網路RSS閱讀器,開發一個郵件系統,在Android中開發移動微博應用、網路防火牆系統,開發Web版的電話本管理系統、移動微信系統等知識。

本書幾乎涵蓋了Android網路應用中的所有主要內容,講解方法通俗易懂。

點擊了解書籍詳情:精通Android 網路開發-圖書 - 非同步社區

書籍名稱:《Java和Android開發學習指南(第2版)》

書籍簡介:

本書是Java語言學習指南,特別針對使用Java進行Android應用程序開發展開了詳細介紹。

全書共50章。分為兩大部分。第1部分(第1章到第22章)主要介紹Java語言基礎知識及其功能特性。第2部分(第23章到第50章)主要介紹如何有效地構建Android應用程序。

本書適合任何想要學習Java語言的讀者閱讀,特別適合想要成為Android應用程序開發人員的讀者學習參考。

點擊了解書籍詳情:Java和Android開發學習指南(第2版)-圖書 - 非同步社區

書籍名稱:《Android開發進階:從小工到專家》

書籍簡介:

本書是一本專門介紹Android開發的圖書。書中首先對Android開發的核心知識點進行深入講解,然後介紹單元測試、代碼規範、版本控制、重構、架構等重要的知識,使得讀者在深入掌握技術的同時也幫助他們開闊眼界,且能夠以更專業的方式設計應用軟體,完成從只會實現功能的初級程序員到軟體工程師、設計師的轉變。

本書的主要內容為:構成Android系統基石的四大組件、創造出豐富多彩的UI設計的控制項、保證App流暢的多線程開發、必知必會的HTTP網路請求應用、數據存儲的核心SQLite資料庫、讓程序更優秀的性能優化、讓程序更整潔的代碼規範、管理程序的好幫手Git版本控制,以及需要掌握的高級技術,如單元測試、六大原則與設計模式、重構和綜合實戰等。

點擊了解書籍詳情:Android開發進階:從小工到專家-圖書 - 非同步社區

書籍名稱:《Android框架揭秘》

書籍簡介:

《Android框架揭秘》通過對Android系統源代碼的分析,主要介紹Android框架的初始化過程及主要組件的工作原理。作者直接分析和整理了Android框架的主要源代碼,並詳細講解了理解框架工作原理所需的各種基礎知識和構成實際Android平台骨幹的服務框架。其中的主要內容包括:通過啟動程序了解Android框架的概要,移植Android以及如何開發適合各種機器的應用程序,分析Android框架所需的基礎知識,JNI(Java Native Interface)與Binder基礎知識,Zygote、Service Manager、Service Server等Android核心組件,Android服務框架的結構與理解,通過Camera Service、Activity Manager Service等服務分析實際的Android服務等。《Android框架揭秘》不僅可以供具備一定開發經驗的Android開發人員參考閱讀,也可作為Android開發初學者的Android框架入門教材使用。

點擊了解書籍詳情:Java和Android開發學習指南(第2版)-圖書 - 非同步社區

這裡是彩蛋:

10本書作為福利贈送給社區小夥伴們

拿書規則:

請在原文: Android開發精選書籍推薦 - 知乎專欄 評論區中回復以上10本中你最想看的一本書籍名稱。(請不要在此回答中評論)

我們將在7月20日,從評論中想閱讀書籍名稱的用戶,抽取10名幸運小夥伴免費贈送以上正版書籍一本哦。

往期內容推薦:

機器學習入門到進階十本好書推薦 - 知乎專欄

後續我們還將推薦更多優質書籍,喜歡的小夥伴可以關註:阿里云云棲社區 - 知乎 或專欄:我是程序員 - 知乎專欄,及時收到內容提醒。


掃了一眼回答,很慚愧,幾個高票回答推薦的Android進階的書我基本都沒看過,買了一本藝術探索,書質量很不錯的,但看了2章感覺對我提升不大就沒繼續看下去。

看題主是希望對Activity的繼承關係做詳細的了解,關於這部分的內容,一般對於校招的學生,問到View的繪製流程就足夠了,對於社招,我一般會從渲染的角度繼續深挖下去,但我似乎並沒有見到有哪本書對這部分有比較詳細的介紹。Android這類應用技術本身帶有更多的技巧性,讀者對於這類書的期望更多也是能解決實際問題,Android相關的書自然也更偏向這個方面,從讀者群的角度考慮,Android類書籍也不太可能向某個方向深挖,如果說了半天看不懂,或者解決不了實際的問題,那為什麼要買你的書呢?

另外什麼叫進階?每個公司,每個團隊,對於Android工程師的要求肯定是不同的。大部分公司要求的只是熟練調用API, 技巧相對來說更重要,那進階對你來說,橫向把你負責的模塊完全搞懂,對整個項目每個Module都有所了解;縱向把用的開源庫源碼看一遍,了解其中的特性,能做一些定製和二次開發,這也就足夠了,對於這樣的團隊,高票推薦的很多書都是非常適合的。但如果你所在的團隊規模更為龐大,要求更高,那麼技巧的重要性就大大降低了。比如最近一年的時間我沒寫過一個Activity, 全都在做Android音視頻相關的基礎組件,需要對播放器、渲染、編解碼、Http協議、Socket等都有詳細的了解,還需要解決劫持、流控、監控等各種問題,在這個領域想要進階,那高票推薦的這些書是完全沒有用的,更依賴的是基礎知識的積累。

總結一下我的觀點,進階因人而異,並不是越深入越好。如果真的想在Android方面成為某個領域的大牛,看Android方面的書是完全不夠的。至於學習方法,要達到熟練調用API的程度,相關的回答和資料已經非常多了,並沒有什麼難度。如果你的進階是指在這之上更進一步,那麼團隊、項目、基礎知識、學習能力缺一不可。

PS: 分享一下今年的書單:

已讀完:圖解HTTP, 深入理解Java虛擬機 (感謝 @姐一笑地動山搖 贈書)

準備讀:重構, Effective java


就在上周,聯合十多位Android技術圈的小網紅,做了一份Android書籍推薦:Android開發書籍推薦:從入門到精通系列學習路線書籍介紹

本系列書籍推薦方法:

1、按照自身的學習路程,親自看過的書籍;

2、寫一個小小邀請,邀請一些開發牛人給列一個書單,然後綜合篩選;

3、整理完畢了,網路上讓大家繼續推薦,隨時更新;

4、你的一些整理方法,總之做出一份優質的推薦書籍就好哈;

5、因為Android發展太快了,所以一些時間特別久遠的書籍可能不合適了,比如2012年前出版的一些Android開發書籍已經不適用了;

6、需要有一些適當的JAVA基礎書籍推薦。

相信這應該是一份比較客觀的書單吧!

JAVA入門書籍:

《 Introduction to java programming 》

《 Core java 》

JAVA進階書籍:

《Thinking in java》

《Effective Java》

湯濤推薦理由:第二本要反覆多看幾遍,另外Java學習還有個技巧,把各種代碼檢查工具報告的警告都正確處理掉,一個不漏,保證你成長飛快。

stormzhang推薦理由:公認的Java進階必備,《Effective Java》是一本實用至上的書,78條建議,滿滿的乾貨。

袁輝輝推薦理由:《Thinking in java》:非常經典的Java書籍,有些人覺得這個書不適合初學者,可就是我看的第一個本Java書,或許是當初自學Java沒有高人指點,便挑選了經典書來入手。看一本經典書,第一遍能理解個大概,能對整體有一個概念,這就可以了,反覆多讀幾遍,細細咀嚼,每一遍都會有不同的領悟。

1、Android入門:

Android Training

Android API Guides

胡凱推薦理由:入門使用官方的這兩份文檔是最好不過的了,沒有比這個更權威,更準確的Android學習資料了。中文書可以隨便買兩本入門,配合一起看看就好了。在實踐的過程中多參考官方的Sample Code,多按照官方的推薦進行代碼實踐!

湯濤推薦理由:官方文檔,權威專業,入門不二之選,正確的入門姿勢,對後續的成長幫助非常之大。

《第一行代碼》

《瘋狂Android講義》

《Android4高級編程》

《Android編程權威指南》

徐宜生推薦理由:全面、基礎,內容豐富!基礎類型的書只要看一本就夠了,用來全面了解知識體系和結構,不用全部精讀,只需要有概念即可。

CJJ推薦理由:《第一行代碼》作者郭霖,看了郭霖很多博客文章,每一篇都寫的很詳細,也很用心。這本書大概瀏覽了一遍,內容淺顯易懂,非常適合初學者!

任玉剛推薦理由:《第一行代碼》作者郭霖,手把手教你入門,清晰易懂。

袁輝輝推薦理由:《瘋狂Android講義》正是這樣一本書,也是我看過的第一本Android書籍,書中並沒有深奧的理論,有大量的實例,邊看的過程中,邊在電腦面前跟著敲了一遍實例代碼,最好能做到理解性地敲,而非看一個單詞再電腦面前敲一個。我大概花了一周時間把這本書看完並把大部分的實例代碼都親手敲了一遍。《第一行代碼》作者郭霖,網上有不少人都推薦這本書作為Android入門書,我大概掃了一遍,知識點較基礎,作者文筆不錯,書中還穿插了不少打怪漲經驗升級的片段,比較風趣。

二、Android進階

《App研發錄》

《Android群英傳》

《深入理解Android》

《Android開發藝術探索》

《Android系統源代碼情景分析》

袁輝輝推薦理由:《深入理解Android》鄧凡平,作者功力深厚,以情景為分支,從framework源代碼層面來,深入分析Android系統,非常適合高級應用開發工程師和系統工程師閱讀。《Android系統源代碼情景分析 》羅昇陽,對Android系統的理解非常深,老羅知識體系很全,文章從app/framework/native/kernel等全方面剖析,這是Android界的盡人皆知的大牛,「老羅栽樹,大家乘涼」,非常值得一看,前提要是有紮實基礎。

stormzhang推薦理由:《Android開發藝術探索》這是一本Android進階類書籍,採用理論、源碼和實踐相結合的方式來闡述高水準的Android應用開發要點,Android開發進階值得擁有!

任玉剛推薦理由:《Android開發藝術探索》,作者任玉剛。分析android核心知識點,直指高級工程師進階要點!(作為藝術探索一書的讀者,我也是激勵推薦的!!非常贊的一本書!)

《Clean Code》

《Clean Coder》

湯濤推薦理由:進階是個大話題,只看一兩本是不夠的,甚至只看書也是不夠的,能進階到什麼程度只能靠自己積極主動的積累。 硬要推薦的話,就不說 Android 的書了,市面上幾本熱門書都可以看看。這裡推薦的兩本,同一人所寫,都有中文譯本。教你代碼怎麼寫得更好,以及怎麼做一個更職業的程序員。

《HeadFirst設計模式》

《重構:改善既有代碼的設計》

胡凱推薦理由:在大量實踐Android程序之後,我們需要會分辨哪種寫法是更優秀的,通過重構來改善既有的代碼,通過設計模式的不斷理解實踐對既有的框架進行優化,追求更加設計良好的程序。

三、Android底層

《深入理解Android ***》系列書籍,鄧凡平老師寫的系列。

《Android源碼設計模式》,結合設計模式分析源碼

《Android框架揭秘》,底層架構的一本好書

徐宜生推薦理由:底層書籍對於應用開發者來說,不用過於深入,主要用於學習設計思路和了解底層設計機制

《Linux內核設計與實現》

《深入理解Linux內核》

袁輝輝推薦理由:Android底層是基於Linux Kernel,所以想成為Android全棧工程師,了解Linux Kernel是非常有必要的。這方面書籍較多,我就列舉兩本《Linux內核設計與實現》,《深入理解Linux內核》。第一階段只需加深對Android系統整體性的理解,不必拘泥於每個細節都理解,看完能大抵理解kernel進程的管理和調度機制,內存管理和內存定址,I/O驅動設備(字元設備、塊設備、網路設備)和調度機制等有所了解就夠了;如果都理解了也就夠了,如果想再深入,可以結合Kernel代碼多看兩遍。

小結

不管看多少書,更重要的是自己思考,動手重複的實踐!也許這個過程很耗時間,但是,這個不斷以代碼去驗證自己的某些猜想的過程,便是技術成長的歷程!

END

END

END


我之前有在回答裡面推薦過盡量使用Fragment來做頁面展示,Activity只負責管理

關於 Android,用多個 activity,還是單 activity 配合 fragment? - 知乎用戶的回答

那你知道為什麼要這麼做么?

因為Fragment也有生命周期,相對於Activity而言使用靈活,可以組件化,不需要在Manifest中註冊,啟動消耗的資源比Activity低,管理更方便等等好處。

如果你閱讀了【Android開發藝術探索】的Activity工作過程那部分,你就會明白為何啟動一個Activity相對於啟動一個Fragment會更慢。

既然你清楚了setContentView只是把自己的view添加到DecorView子節點下,那也意味著你發現了SlidingMenu的原理了(在DecorView和直接子節點中間插入了一層自己的Layout來實現側滑)

同時使用這個原理還可以實現app內任意位置可拖動的小紅點組件。

https://github.com/lsxiao/DraggableDot

只有在了解了一些Android底層運行機制後,你開發的代碼才能更好的為應用層服務。

所以我推薦【Android開發藝術探索】這本書,能夠真正的增加你對Android底層的認識,而又能夠帶給你應用層技術的提升。


剛好桌上有幾本,基本夠你看了,同時我也做了個校園APP~ 一併放這供你參考,不過校園app已經是我的第二個項目了。我將Android基本的東西過一遍之後是自己做了一款簡單的閱讀類app,在此之後才看一些深入的書籍,我建議你先嘗試做些小項目,這樣之後的體會也許會更不一樣。

這是我桌上的幾本書,Android開發藝術探索這本書你可以挑一些你熟悉一些的點先看著。自己做等自己做完一個完整的項目後意識到自己的代碼爛了,就可以再看看一些設計模式之類的書籍:大話設計模式,設計模式之禪都可以 (我桌上這本是結合源碼來講設計模式的,這個可以等你對設計模式有一點了解後再看不遲。

當然,我們Android的開發語言是Java,Java基本功顯然也不能差。這裡推薦 Core Java,Thinking in Java兩本書,這兩本更多的是講語法的。等你Java不錯了,做項目過程中發現內存泄漏之類的問題,你就可以再看看我桌上那本 深入理解java虛擬機,我見過講的最好的一本書,沒有之一。

最底下這本,老羅的 Android系統源代碼情景分析,這個是講Android源碼,等你水平有階段性的提高後可以挑一些講Framework層的先看看。

最後附上我的兩個實戰項目。

閱讀類App:GitHub - MummyDing/Leisure: Leisure is an Android App containing Zhihu Daily,Guokr Scientific,XinhuaNet News and Douban Books

校園App :GitHub - MummyDing/Awesome-Campus: Jiangxi Normal University Android App

暫時想到這麼多,祝好運


剛在關於 Android 平台開發相關的有哪些推薦書籍? - 書籍推薦回答了一下,還可再答一遍嗎?

個人推薦如下:

  • 《深入理解計算機系統》——程序員是要跟計算機打交道的,那麼最好首先明白它的工作原理,才能讓你的代碼遊刃有餘。
  • 《圖解HTTP》——如今單機版的App還有嗎?絕大多數App的網路通信是基於HTTP協議的,所以你需要深入了解它。
  • 《Effective Java 中文版(第2版)》——會Java只能讓你寫出普通的Android App,而這本書將告訴你如何用Java寫出高效的App。如果你說你用H5、JS、Kotlin或者以後用Swift開發Android,那就當我沒推薦。
  • 《Efficient Android Threading》——Android中極為重要的概念之一,想一想每個界面的主線程、工作線程及線程通信吧。
  • 《Pro Android Apps Performance Optimization》——這本書教你從哪些方面並且怎樣進行Android性能優化。
  • 《Android開發藝術探索》——為數不多的國內作者寫的不錯的書,對Android知識點結合源碼進行較為深入的分析。
  • 《App研發錄》——也是國內作者寫的,我也看到某人在博文里批此書內容空洞,但我認為是一本好書,喜歡作者提綱挈領,概括總結的風格,而不是拘泥於細節和代碼。
  • 《構建安全的Android App》——你的App被反編譯過嗎或者你反編譯過別人的App嗎?在這個年代,App安全越來越得到重視,所以它也是你需要的。PS:此書剛剛到手,簡單翻閱了目錄,如果看完覺得不好,再把它撤下來。
  • Android官方開發文檔及Android源碼——原諒我不得不把它列進來,甚至它比上述所有書籍都重要,它是一座寶庫,希望大家千萬要重視並好好利用,同時還可以練習英語哦,一舉兩得。

具體文章地址:Android開發書籍推薦


謝謝邀請;

我想說其實很多時候看書並不如做項目來的實在,如果你只是剛剛學會基本組件,控制項的使用,那麼你去刷《Android群英傳》或者是《Android開發藝術探索》可能都不如你寫1W行代碼做一個項目來的效果好。比如你在題目中舉得例子,如果你寫的代碼不夠多,那八成只能是走馬觀花的了解一下。

剛看完入門書,到能夠做項目,其實缺的不是進階書,而是構建項目的經驗,這些經驗是需要通過不斷寫代碼遇到一個坑踩一個然後銘記在心積累下來的。很多時候編程技術就是這樣積累的,不要有遇到困難,就想著像閉關修鍊一樣看書,看完出關什麼問題都解決了的想法。

在開發過程中有些困難其實是Java基礎不牢靠所致的,比如基類抽象不好,有些模塊耦合度太高,泛型用不6。

有一些困難是使用框架的經驗少導致的,比如介面調用現在一般都用volley處理,自己用HttpClient/HttpURLConnection實現就要考驗你封裝模塊的水平,又回到了Java基礎上。組件間通信不知道使用EventBus,然後用BroadcastReceiver用的很蛋疼,或者說根本不知道怎麼做。

有一些問題則有可能是不熟悉Android組件導致的,比如不知道View的渲染流程,自定義控制項出了Bug,或者不知道觸控事件分發的流程,在設計上可能有滑動衝突時不知如何處理。

我覺得,從學完最基礎入門這個階段開始,既然你已經有項目做了,就一步一個腳印的走,遇到坑就踩過去,這個階段我建議你加強三個方面:

1. 基本的項目架構能力,了解Android項目開發的流程,這方面書籍比較少我看過比較有幫助的只有一本 App研發錄:架構設計、Crash分析和競品技術分析 (豆瓣),在項目構建上可以看看我的回答 https://www.zhihu.com/question/45517397/answer/99293671 ,我建議使用最基本的架構開始構建項目,先用熟練最基本的。

2. 對系統組件的熟悉,自定義控制項的能力,這方面《Android開發藝術探索》《Android群英傳》就挺不錯,可以一邊做項目一邊看了。

3. Java基礎,理解繼承,介面,泛型這些面向對象的概念,是熟練使用他們的基礎,而熟練使用它們可以讓你的代碼質量有很高的提升,這個《Thinking in Java》是個不錯的選擇,知乎上很多回答講的也很好。

希望能對題主有所幫助

=====ps 分割線=====

現在開發還是多了解一些框架的好,這樣起步要快點

android開發一般都使用什麼框架? - Android

有一些前人踩過的坑也可以看看參考一下

Android 開發中,有哪些坑需要注意? - 工作經驗

有一些小技巧也可以看一看

Android開發中,有哪些讓你覺得相見恨晚的方法、類或介面? - 程序員

總之遇到問題多查,多寫代碼,提升才會很快


樓上都在推薦書,其實除了書還得read the fucking source code.書的更新速度永遠趕不上代碼,而進階到了一定程度後,也只能不斷地去源碼里發現黃金了。

我覺得我進階的第一步,就是從閱讀大量以前看著暈的源碼開始,一開始可能很枯燥、看了很久還是理不清楚,但是堅持一段時間以後,對於android的各種機制會有全新的理解,彷彿打開了新世界的大門,編程時思考問題的方式也和以前不一樣。

具體來說,我是從看樓上很多人都推薦的《開發藝術探索》開始,先有了一個指導,然後大量閱讀系統源碼、開源庫源碼。一開始不要去看太底層的,如SurfaceFlinger、各種系統服務(WMS、AMS等),先從做應用最常用的View、Handler、Activity看起。有關如何閱讀系統,之前也有很多大牛提過,我就不獻醜了。

至於開源庫,入門級別的開發只是會用,進階的就得閱讀源碼理解它的原理和設計思想。比較知名的,如OKHttp、Volley、Picasso、Fresco、EventBus、LeakCanary,每一個都凝聚了不少大神的優秀代碼,初讀的時候總是忍不住驚嘆:為什麼這代碼這麼優雅地就把這功能實現了,我怎麼就寫不出來!光讀也是不夠的,讀完以後要總結,我一般喜歡在紙上列出用到的設計模式、畫出主要的類圖和主要流程的調用過程,能夠寫一篇博客詳細分析更好。更進一步的就是自己動手實現一個,真正去寫庫的時候才會發現原來要考慮這麼多,以前想不通人家為什麼要那樣寫,自己寫了才恍然大悟。

之前自己擼了一個圖片載入庫,發現裡面原來有這麼多可以深挖的東西,果然寫開源庫是最能提高的途徑之一。


曾經學習過1年Android開發,也是Android帶我進入了Java的世界。

在學習Android開發的過程中,我也大致看過一些寫的很好的書,有些還是去淘寶上買的掃描版電子書(僅僅是因為個人比較喜歡看電子版的書,如果喜歡看紙質書,還是推薦大家支持一下寫書作者,去買原版紙質書哈~)。這些電子書基本覆蓋了很多Android大牛推薦的書單,在這裡分享給大家:(如文件失效,歡迎私信~)(更多分享,歡迎關注我的微信公眾號:EnjoyMoving

《Android開發藝術探索》:

鏈接:http://pan.baidu.com/s/1bpiwaMN 密碼:iwbs

《Android開發進階從小工到專家》:

鏈接:http://pan.baidu.com/s/1nv6ycx7 密碼:vlun

《Android軟體安全與逆向分析》:

鏈接: https://pan.baidu.com/s/1eSzkOCE 密碼: 349a

《瘋狂Android講義》(第三版、含源碼):

鏈接:http://pan.baidu.com/s/1hrLln8K 密碼:lqop

《Android系統源代碼情景分析》:

鏈接:http://pan.baidu.com/s/1boC7YeN 密碼:vnnv

《Android Dalvik虛擬機結構及機制剖析 第2卷》:

鏈接:http://pan.baidu.com/s/1pKGnnEN 密碼:hvi3

《Android框架揭秘》:

鏈接:http://pan.baidu.com/s/1hsIdCGk 密碼:li6f

《Android內核剖析》:

鏈接:http://pan.baidu.com/s/1o7IrjS2 密碼:9qae

《深入理解Android 卷I》:

鏈接:http://pan.baidu.com/s/1slhn39V 密碼:k3u8

《深入理解Android 卷II》:

鏈接:http://pan.baidu.com/s/1slNQUID 密碼:gjwx

《深入理解Android 卷III》:

鏈接:http://pan.baidu.com/s/1hsDZV1q 密碼:fj28

《Android經典項目案例開發實戰寶典》:

鏈接:http://pan.baidu.com/s/1o7D7xz0 密碼:o6e2

《Android群英傳》:

鏈接:http://pan.baidu.com/s/1slK3gXf 密碼:mlec

《Android源碼設計模式解析與實戰》:

鏈接:http://pan.baidu.com/s/1mh8lPdm 密碼:nmrc

《App研發錄:架構設計、Crash分析和競品技術分析》:

鏈接:http://pan.baidu.com/s/1hrHNz2O 密碼:8t9d

《第一行代碼》:

鏈接:http://pan.baidu.com/s/1nvI9ztv 密碼:xz55


前排答題。安卓開發一年半,准搜狐安卓實習生。現在基本屬於入門進階了吧。個人覺得進階的話,首先慕課上的視頻都看一下,覺得都會的話,差不多可以深入研究了。

首先呢,《安卓藝術探索》鋪路,然後看《設計模式》,以後研究自定義view的繪製,事件分發,Canvas,項目架構,分包,封裝抽象,組件復用,viewgroup等等。 對了,我說的是,研究哦,不是隨便看看就覺得了解了。個人覺得,事件分發還是挺有趣的,如何攔截 分發和處理都挺重要的。資料的話可以參考博客啊,源碼啊,自己去研究,推薦一本書叫《Android源碼設計模式》,還不錯。最後理解了還是挺重要的。然後還可以學習下framework和整個linux的架構和架構理由。

做東西不要停留在會用,要懂。實習的時候,記得最深刻的一句話。共勉。

求贊!!!


App研發錄 這種垃圾書居然也有人推薦,還進階,進階你妹喔,真tm醉了。

這種爛書就應該被下架,別去禍害人。


Efficient Android Threading (豆瓣)

這本書, 結合Android源碼, 可以讓你透過UI的迷霧直接看透Android運行時的指令結構.

指令結構清楚了, 才能理解內存結構, 因為Java的內存引用樹的根節點在線程上.


Android開發的進階已經不需要看書了。深入學習AOSP的代碼和各個vendor的代碼即可。


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

裡面有講到進階之路 (初級-&>中級-&>高級)


瘋狂xx講義狗帶,

android編程權威指南


目前本人正在看的有:

《App研發錄》《Android開發藝術探索》《Effictive Java》《瘋狂java講義》《Java核心技術卷2》

然後不是這兒還有一大堆書么


今天又看到這個題目,剛好我感覺一本書很好.

特地來修改一下,以下為系統學習路線,純應用開發慎入.

--------------------------------------------------------------------------------------------

作為安卓自學者,走了很多彎路,買了很多書,去年七月買了第一本安卓瘋狂??,是垃圾中的戰鬥機,還號稱各個平台銷量第一,不知道怎麼好意思說的,我看到了第十一張,11月買了第二本,深入理解安卓,我是一次性買了三本,期間自學了下c++,這本書看的是暈暈乎乎的.第一次接觸源碼,是囫圇吞棗走馬觀花的看了一編,其間很多東西都不是很理解,只是死記硬背看了七八章.過完年聽說第一行代碼不錯,一個月看完了,然後看老羅的源碼情景分析電子書,難度有點大,這本書很厚,裡面講解的很細.以置於我根本看不到我想看到的,看一章磨掉我的耐心,看到LOG日誌那張我實在看不下去了開始反思應該應該找點簡單的看看,然後去看安卓編程權威指南,看了一大半多,聽說安卓藝術開發探索不錯,大致看了六七章.

正當我一籌莫展,找不到學習framework方向的時候,無意中我看到了Android框架揭秘,韓國人寫的(這本書真的不錯,強烈推薦).是因為發現裡面有關於Camera的分析,才拿起來看的。但我又有強迫症,然後我就從頭開始看了起來,還下好並編譯了源碼,看著看著發現以前在看深入理解安卓1那些不懂的概念和代碼都大概能看懂了。裡面講解binder的章節佔了很大一步分,從linux內核到驅動,到linux應用(也就是系統運行庫層),再到上層講解的都非透徹,讓我對RPC層的動作,IPC的通信協議,和驅動還有內核的調度有了清晰的認識。雖然給的例子都很簡單,但知道了原理,以後去分析問題就有了方向。

看了很多系統的公司都要求ams,wms,pms等系統服務,我一直想學會這些系統服務,但是不知道該如何下手,看大神的博客又看不下去.又不想看,看不懂是一,還有不能全面的學習,因為畢竟不是一個層次的,他們的積累當然比我們多的多,怎麼能通過一篇博客學會呢.

在碎片化的現在,知識的學習太散了,所以我就一直想通過看書來系統的學習,要學會上面的服務,.jni是走向系統的基礎,binder是重中之中,所有服務都是基於它運行的,知道了這個你才能知道跨進程調用方法是怎麼調用的.要知道服務駐留的是system_server進程,而system_server又是由zygote進程fork出的第一個java進程.而服務的管理是由servicemanager實現的,服務的註冊查詢都要經過它,所以我向你推薦這本書,裡面有詳細的解釋.

我現在只是剛剛準備去搞懂這些服務,雖然我還不懂,但有了以上知識的鋪墊,我感覺下一步應該不會太艱難,準備下一本看安卓內核剖析.


從事Android研發已經將近四年,但是確實沒有完整看過一本純粹關於Android的書籍。僅僅是書籍的話,個人喜好是,看書要偏理論的,或者偏抽象的,因為日常開發已經足以提升自己的代碼能力。

市面上的Android書籍,大部分都是偏API文檔,或者很淺顯易懂的Android基礎知識,這些東西只要有心學習,相信Google官方文檔完全滿足需要。

有部分講解Android整個系統框架的,比如zygote,systemserver,ams,binder等等這些,可以買一本兩本作為看源碼時參考的書籍倒是不錯的,能夠提高理解的效率、速度。

進階的書籍還是那些吧,操作系統,Linux,網路協議(TCP,HTTP等)等,根據實際個人方向需要還可以看,音視頻多媒體相關,安全領域相關等。


有本《Android群英傳》個人覺著不錯


推薦閱讀:

Android 上最好的 Mobi 閱讀器是什麼?
iPhone7,moto z,note7,選哪個?
谷歌是否會推出 Nexus 6?

TAG:編程 | Android開發 | Android |