發表於2024-12-15
Android進階之光 pdf epub mobi txt 電子書 下載
1 業界知名專傢鄧凡平、張鴻洋、徐宜生、陳國華、李文東聯袂力薦
2 《Android進階之光》基於Android 7.0和Android Studio,對Android開發進階要點進行深入講解,為工程師的進階之路帶來指引和光明。
3 《Android進階之光》是目前市場上詳細介紹有關Android新特性、Material Design、網絡框架、事件總綫、RxJava、依賴注入框架和應用架構設計的難得一見的圖書。
本書是一本Android進階類書籍,書中各知識點由淺入深、環環相扣,最終這些知識點形成瞭一個體係結構。本書共分為11章。第1章介紹Android 5.0到Android 7.0的新特性。第2章介紹Material Design。第3章介紹View體係,包括View的事件分發、工作流程、自定義View等知識點。第4章介紹多綫程的知識。第5章介紹網絡編程與網絡框架的知識。第6章介紹常用的設計模式。第7章介紹事件總綫。第8到第10章介紹架構設計所需要的知識點。第11章簡單介紹Android係統框架與MediaPlayer框架。本書詳細並深入講解Android開發者必備的和前沿的知識,適閤有一定開發基礎的開發者閱讀,這有助於他們提高技術水平;同時,本書係統的知識體係結構也令高級開發者從中獲益良多。
劉望舒
Android高級工程師,擁有多年開發和技術管理經驗,對Android框架層及應用層開發有著深入的理解。熱愛技術和分享,連續6年在CSDN發錶技術文章,有多篇文章廣受好評,並被授予CSDN博客專傢稱號。此外,他還活躍在簡書和掘金。曾在多傢知名公司從事Android開發。
App開發是講究框架使用的,但眾多框架層齣不窮、各有特色,它們適閤什麼場景,到底怎麼用?相信這本書會給讀者一個滿意的答案。
——鄧凡平
一本基礎知識講解環環相扣、主流框架分析刨根究底的書,可以讓你獲益匪淺。
——張鴻洋
Android進階之路,本書照耀你前行。作為學習者的指路明燈,本書一定會令你事半功倍。
——徐宜生,《Android群英傳》作者
目前Android開發市場逐漸開始飽和,麵對激烈的競爭,Android開發者迫切需要一本進階書。而本書的內容成體係化、環環相扣,對新技術、新框架和常用的技術都有著深入的講解,正是Android開發者需要的那本難得一見的進階書。
——陳國華,Android資深工程師
從Android第1個版本到現在已經近10年瞭,Android在手機操作係統領域早已超過瞭半壁江山,這自然也吸引瞭成韆上萬的開發者。開發者迫切需要“老猿”的指點迷津。本書的作者為從業多年的資深開發者,自然有和彆人不一樣的體驗與心得。相信讀者在讀完本書之後,一定會有豁然開朗的感覺。
——李文東,趣皮士科技聯閤創始人&CTO;
第1章 Android新特性 1
1.1 Android 5.0新特性 1
1.1.1 Android 5.0主要新特性概述 1
1.1.2 替換ListView和GridView的RecyclerView 3
1.1.3 卡片CardView 13
1.1.4 3種Notification 18
1.1.5 Toolbar與Palette 23
1.2 Android 6.0新特性 29
1.2.1 Android 6.0主要新特性概述 29
1.2.2 運行時權限機製 30
1.3 Android 7.0新特性 43
1.3.1 Android 7.0主要新特性概述 43
1.3.2 多窗口模式 44
1.4 本章小結 47
第2章 Material Design 48
2.1 Material Design概述 48
2.1.1 核心思想 48
2.1.2 材質與空間 49
2.1.3 動畫 49
2.1.4 樣式 50
2.1.5 圖標 51
2.1.6 圖像 51
2.1.7 組件 51
2.2 Design Support Library常用控件詳解 54
2.2.1 Snackbar的使用 54
2.2.2 用TextInputLayout實現登錄界麵 55
2.2.3 FloatingActionButton的使用 60
2.2.4 用TabLayout實現類似網易選項卡的動態滑動效果 61
2.2.5 用NavigationView實現抽屜菜單界麵 68
2.2.6 用CoordinatorLayout實現Toolbar隱藏和摺疊 74
2.3 本章小結 86
第3章 View體係與自定義View 87
3.1 View與ViewGroup 87
3.2 坐標係 89
3.2.1 Android坐標係 89
3.2.2 View坐標係 90
3.3 View的滑動 91
3.3.1 layout()方法 92
3.3.2 offsetLeftAndRight()與offsetTopAndBottom() 94
3.3.3 LayoutParams(改變布局參數) 95
3.3.4 動畫 95
3.3.5 scrollTo與scollBy 96
3.3.6 Scroller 98
3.4 屬性動畫 99
3.5 解析Scroller 105
3.6 View的事件分發機製 108
3.6.1 源碼解析Activity的構成 108
3.6.2 源碼解析View的事件分發機製 112
3.7 View的工作流程 119
3.7.1 View的工作流程入口 119
3.7.2 理解MeasureSpec 122
3.7.3 View的measure流程 126
3.7.4 View的layout流程 132
3.7.5 View的draw流程 135
3.8 自定義View 139
3.8.1 繼承係統控件的自定義View 140
3.8.2 繼承View的自定義View 141
3.8.3 自定義組閤控件 147
3.8.4 自定義ViewGroup 152
3.9 本章小結 164
第4章 多綫程編程 165
4.1 綫程基礎 165
4.1.1 進程與綫程 165
4.1.2 綫程的狀態 167
4.1.3 創建綫程 168
4.1.4 理解中斷 170
4.1.5 安全地終止綫程 171
4.2 同步 173
4.2.1 重入鎖與條件對象 173
4.2.2 同步方法 175
4.2.3 同步代碼塊 176
4.2.4 volatile 177
4.3 阻塞隊列 183
4.3.1 阻塞隊列簡介 183
4.3.2 Java中的阻塞隊列 184
4.3.3 阻塞隊列的實現原理 186
4.3.4 阻塞隊列的使用場景 188
4.4 綫程池 190
4.4.1 ThreadPoolExecutor 190
4.4.2 綫程池的處理流程和原理 192
4.4.3 綫程池的種類 193
4.5 AsyncTask的原理 197
4.6 本章小結 203
第5章 網絡編程與網絡框架 204
5.1 網絡分層 204
5.2 TCP的三次握手與四次揮手 205
5.3 HTTP協議原理 207
5.3.1 HTTP簡介 207
5.3.2 HTTP請求報文 208
5.3.3 HTTP響應報文 209
5.3.4 HTTP的消息報頭 210
5.3.5 抓包應用舉例 211
5.4 HttpClient與HttpURLConnection 212
5.4.1 HttpClient 212
5.4.2 HttpURLConnection 216
5.5 解析Volley 218
5.5.1 Volley基本用法 218
5.5.2 源碼解析Volley 223
5.6 解析OkHttp 231
5.6.1 OkHttp基本用法 232
5.6.2 源碼解析OkHttp 240
5.7 解析Retrofit 255
5.7.1 Retrofit基本用法 255
5.7.2 源碼解析Retrofit 261
5.8 本章小結 270
第6章 設計模式 271
6.1 設計模式六大原則 271
6.2 設計模式分類 273
6.3 創建型設計模式 273
6.3.1 單例模式 274
6.3.2 簡單工廠模式 277
6.3.3 工廠方法模式 279
6.3.4 建造者模式 281
6.4 結構型設計模式 284
6.4.1 代理模式 285
6.4.2 裝飾模式 288
6.4.3 外觀模式 291
6.4.4 享元模式 295
6.5 行為型設計模式 298
6.5.1 策略模式 298
6.5.2 模闆方法模式 301
6.5.3 觀察者模式 304
6.6 本章小結 307
第7章 事件總綫 308
7.1 解析EventBus 308
7.1.1 使用EventBus 308
7.1.2 源碼解析EventBus 314
7.2 解析otto 324
7.2.1 使用otto 324
7.2.2 源碼解析otto 327
第8章 函數響應式編程 333
8.1 RxJava基本用法 333
8.1.1 RxJava概述 333
8.1.2 RxJava基本實現 334
8.1.3 RxJava的不完整定義迴調 336
8.2 RxJava的Subject 338
8.3 RxJava操作符入門 339
8.3.1 創建操作符 339
8.3.2 變換操作符 340
8.3.3 過濾操作符 344
8.3.4 組閤操作符 349
8.3.5 輔助操作符 352
8.3.6 錯誤處理操作符 355
8.3.7 條件操作符和布爾操作符 357
8.3.8 轉換操作符 360
8.4 RxJava的綫程控製 362
8.5 RxJava的使用場景 362
8.5.1 RxJava結閤OkHttp訪問網絡 362
8.5.2 RxJava結閤Retrofit訪問網絡 364
8.5.3 用RxJava實現RxBus 368
8.6 RxJava源碼解析 370
8.6.1 RxJava的訂閱過程 371
8.6.2 RxJava的變換過程 372
8.6.3 RxJava的綫程切換過程 376
8.7 本章小結 381
第9章 注解與依賴注入框架 382
9.1 注解 382
9.1.1 注解分類 382
9.1.2 定義注解 384
9.1.3 注解處理器 385
9.2 依賴注入的原理 392
9.2.1 控製反轉與依賴注入 392
9.2.2 依賴注入的實現方式 393
9.3 依賴注入框架 395
9.3.1 為何使用依賴注入框架 395
9.3.2 解析ButterKnife 395
9.3.3 解析Dagger2 405
9.4 本章小結 421
第10章 應用架構設計 422
10.1 MVC模式 422
10.2 MVP模式 423
10.2.1 應用MVP模式 424
10.2.2 MVP結閤RxJava和Dagger2 431
10.3 MVVM模式 438
10.3.1 解析Data Binding 439
10.3.2 應用Data Binding 457
10.4 本章小結 459
第11章 係統架構與MediaPlayer框架 460
11.1 Android係統架構 460
11.2 Android係統源碼目錄 463
11.2.1 整體結構 463
11.2.2 應用層部分 464
11.2.3 應用框架層部分 465
11.2.4 C/C++程序庫部分 465
11.3 Source Insights使用 466
11.4 MediaPlayer框架 467
11.4.1 Java Framework層的MediaPlayer分析 467
11.4.2 JNI層的MediaPlayer分析 469
11.4.3 Native層的MediaPlayer分析 471
11.5 本章小結 478
後記 479
為什麼寫這本書
從2008年Android係統發布以來,Android已經發展瞭9年。在此期間,Android開發也相當火熱。這時,大量人員湧入Android開發職場,並導緻Android開發人纔市場相對飽和。如此一來,很多Android開發者會發現工作越來越難找,企業對開發者的要求也越來越高,企業需求最多的不再是初中級彆的Android工程師,而是Android高級工程師。但是,Android高級工程師有限。有些人在從事瞭幾年開發工作後,對很多技術的理解卻仍停留在會用的階段。他們對於原理不求甚解,這導緻他們進入技術瓶頸期並長期無法得到提高。很多開發者為瞭突破技術瓶頸,看瞭大量的網絡視頻和博客。盡管如此,他們仍舊無法突破自身的技術瓶頸。其主要原因是,他們沒有將學到的知識點形成體係化。因此,這就需要有一本成體係的進階書來幫助這些開發人員成為Android高級工程師並突破自身的技術瓶頸。縱觀市麵上Android開發相關的書籍,其中大部分書籍是入門級彆類圖書,還有一部分係統源碼、逆嚮分析和係統移植類圖書,而關於應用開發進階的書籍則少得可憐。本書正是一本成體係的應用開發進階圖書,書中所要傳達的不僅僅是知識,其同時還會告訴讀者以下幾點。
1.要關注Android新技術;
2.Java基礎和設計模式很重要;
3.學習框架要深入其原理;
4.要學習架構設計;
5.要瞭解和學習係統源碼。
本書內容
本書共分為11章,各章內容如下。
·第1章介紹Android5.0、Android6.0、Android7.0的新特性,包括Android5.0的RecyclerView、Android6.0的運行時權限機製和Android7.0的多窗口模式等知識點。
·第2章介紹MaterialDesign以及DesignSupportLibrary常用的控件,並給齣實例將DesignSupportLibrary中的常用控件結閤在一起使用。
·第3章介紹View相關的進階知識,包括View的滑動、View的事件分發和View的工作流程。最後結閤以上知識點來介紹自定義View。
·第4章介紹多綫程編程,本章不僅包括基礎的綫程知識,還會介紹綫程同步和綫程池等進階知識點,最後結閤這些知識點來分析Android7.0的AsyncTask的源碼。
·第5章介紹網絡編程的基礎知識以及常用的網絡框架:Volley、OkHttp和Retrofit的使用方法和原理分析。
·第6章將設計模式進行分類,並介紹每個分類中常用的設計模式。
·第7章介紹事件總綫EventBus和otto的使用方法和原理。
·第8章介紹函數響應式編程RxJava的使用方法,包括RxJava的基本使用、操作符、使用場景和源碼分析等知識點。
·第9章介紹注解的知識點和依賴注入框架ButterKnife和Dagger2的使用方法以及原理。
·第10章介紹Android應用架構設計,包括MVP框架以及MVP結閤RxJava和Dagger2,還有MVVM框架相關的DataBinding支持庫。
·第11章主要是指引讀者進行Android係統源碼閱讀並帶其入門,介紹Android係統框架、源碼目錄和閱讀源碼工具,並以分析MediaPlayer框架的源碼作為示例。
本書特色
本書主要有以下特點。
·本書整體結構由淺入深,從最簡單的第1章到難一些的第11章,其難度是逐步加深的。
·本書為瞭分析一些框架的原理,會介紹一些知識點做鋪墊,比如為瞭更好地介紹依賴注入框架,需要首先瞭解注解相關的知識點。再比如要分析AsyncTask的源碼,則需要瞭解綫程池和阻塞隊列等知識點。
·本書的知識點環環相扣,比如要介紹MVP框架的設計,就需要先學習Retrofit、RxJava和Dagger2的相關知識點。
·本書對於很多知識點都有很深入的講解。其中,對於常用的框架,比如OkHttp、Retrofit、EventBus和RxJava等不隻是講解瞭如何使用,而且更加深入地介紹瞭其原理。
·本書是目前市場上詳細介紹有關Android新特性、MaterialDesign、網絡框架、事件總綫、RxJava、依賴注入框架和應用架構設計的難得一見的圖書。
讀者對象
本書的章節設計是由淺入深的,適閤Android初、中、高級工程師閱讀。本書的定位是學習Android的第二本書,其閱讀前提是要有一定的Android基礎。
緻謝
感謝本書的策劃編輯付睿,她在CSDN博客中發現瞭我,並積極推動本書的齣版進度,這纔使得本書得以及時齣版。感謝本書的責任編輯李雲靜,她審稿時很細緻,這使得書中的一些錯誤能被提早發現並改正。感謝我的父母在寫書過程中對我的不斷鼓勵,這樣我纔得以全力以赴地投入編寫工作。感謝所有關注我的朋友們,你們的鼓勵和認可為我寫博客以及寫書帶來瞭不可或缺的動力。
勘誤與互動
本人雖已竭盡全力,但書中難免會有錯誤,歡迎大傢嚮我反饋,我也會在獨立博客和CSDN博客中定期發布本書的勘誤信息。
讀者服務輕鬆注冊成為博文視點社區用戶,掃碼直達本書頁麵。
·下載資源:本書如提供示例代碼及資源文件,均可在下載資源處下載。
·提交勘誤:您對書中內容的修改意見可在提交勘誤處提交,若被采納,將獲贈博文視點社區積分(在您購買電子書時,積分可用來抵扣相應金額)。
·交流互動:在頁麵下方讀者評論處留下您的疑問或觀點,與我們和其他讀者一同學習交流。
哎哎哎!!好失望!!失望的是這本書的翻譯質量。挺好的排版,印刷質量也好。可惜瞭。不止一處發現隻是簡單的直白翻譯,根本沒有看懂原有的意思就硬翻譯,導緻詞不達意,完全看不懂,翻瞭原來的英文版纔明白。看這本書的心情是,我是個校對者而不是新技術學習者。比如這本書第188頁寫到,“這些迴調函數可以像lambda一樣傳遞”,但這本書的上下文當中,從來沒有說起過lambda的傳遞方式,更無法理解所謂的迴調的傳遞方式是什麼。看英文版纔發現用的as單詞,應該翻譯為以lambda錶達式的形式來傳遞。意思是說這些迴調方法可以是lambda錶達式,也可以是對象的屬性引用。翻譯人員都沒思考,直接把as翻譯為”像…一樣”,根本沒考慮上下文的邏輯關係。導緻學習者每個字都認識,就是不知道書本在說什麼。其實英文版書的邏輯是很嚴謹的。唉唉唉。失望!逼我去找某寶打印店商傢去打印英文原版書瞭。。買瞭中文版。。也不算支持盜版吧。。
評分挺好的,挺實用
評分還不錯還不錯還不錯還不錯
評分趁便宜買的,每年都有那麼幾天,屯書的季節到瞭。。。。。。
評分看瞭書收獲頗多,書是正版的,字體印刷清晰,發貨送貨速度快!很滿意!
評分內容確實不錯,是一本很好的安卓進階的書。看完瞭第一行代碼,再看這本書,效果杠杠的。
評分滿減後還能用券 好便宜哦
評分看看看,好書買來就是看的,等哪天去圖書館,好好的看看
評分物流很快,上午下單下午就送過來瞭,很高興。
Android進階之光 pdf epub mobi txt 電子書 下載