高級Android開發強化實戰 ( 簡體 字) |
作者:王辰龍 | 類別:1. -> 程式設計 -> 手機程式 -> Android |
譯者: |
出版社:電子工業出版社 | 3dWoo書號: 49339 詢問書籍請說出此書號!【有庫存】 NT售價: 445 元 |
出版日:6/1/2018 |
頁數:296 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787121342981 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:在編程之余,有時候我就在想,什么樣的程序員屬于高級程序員呢?或者說,高級程序員有哪些特性呢?工作年限一定不是一個關鍵的指標,許多工作多年的程序員依然寫不出優雅的程序。無論是在Android開發還是其他領域,高級程序員一定是勤奮的,可以快速地掌握大量的新技術、新框架,不僅懂得原理,還能把新的技術落地到公司的產品中去。這是衡量程序員工作能力的一個重要標準,那么怎樣才能將技術運用自如呢?唯有實踐。基于此,我想把自己在日常實踐中的一些經典案例,編著成一本成體系的書,以便為想要進步的Android程序員增加更多的實戰經驗,這也是編寫本書的核心目的所在。 編寫本書的另外一個目的,是幫助程序員建立產品的思想,對于技術而言,孤立的存在是沒有任何意義的,技術只有與需求相結合,才能具有自身的價值。技術人員在開發的過程中,要時刻了解所完成的功能可以為公司帶來哪些價值,是提升用戶的訪問興趣,還是提升用戶的使用流暢度,抑或是其他。當以產品思維去思考技術的時候,就會有動力、有目的地學習更多有價值的技術,而不是嘩眾取寵地學一些“看似有用”的新技術。 除此之外,還有理解架構的本質。一些技術人員經常會問:“為什么要使用架構?這只會增加額外的代碼量,而且并不會對功能或性能有所提升,只需要完成必要的開發任務即可。”這種想法是非常淺顯的,因為任何一個應用都不是一次成型的,需要不斷地迭代,不斷地擴展,同時需要不斷地修改已有的業務邏輯,這就會涉及系統兼容性的問題。如何修改新的業務邏輯而不影響舊的業務邏輯?如何最大限度地復用已有的業務邏輯?架構就是解決這類問題的鑰匙,一個優秀且合適的項目架構可以保證系統的穩定性,當開發新的功能或者修改舊的功能時,不至于破壞已有的業務體系。 本書的實例都是經典實戰實例,每一個例子都代表一類在開發中需要掌握的技巧。本書由淺入深地逐個講解需要掌握的開發理論與實踐,共分為七部分。 進階基礎:偏重于源碼的解析和理解,介紹閱讀源碼的技巧,以Activity和View為例,管中窺豹地分析其中的基礎知識。讀者也可依據此類方法,分析其他系統組件的源碼。 高階控件:介紹若干復雜的控件布局,即AppBarLayout、CoordinatorLayout和ConstraintLayout。通過實例,讓讀者理解在復雜控件布局中子視圖是如何組合和相互關聯的。 項目架構:分析主流架構的設計思想,即Google推薦的MVP和MVVM,還有Facebook的Flux。理解這些架構是如何組織和管理大型項目的,以及它們的優點和缺點各有哪些。 響應式編程:響應式是一種編程思想,在處理網絡請求和功能測試時,基于響應式框架的項目擁有更好的可擴展性和可維護性,響應式編程三劍客即RxJava、Dagger和Retrofit。 酷炫功能與精美動畫:實現兩個稍復雜的功能,分別是基于第三方控件和基于系統控件的擴展;并實現兩個動畫效果,分別用于頁面展開和頁面切換。對于功能和動畫,不同的需求或樣式層出不窮,本部分側重于開發思路的分享。 Kotlin與SVG:Kotlin是用于替代Java的高階編程語言,SVG是用于替代PNG格式的圖像技術,本書著重介紹一些基礎概念,提綱挈領,以便于讀者后續進行自主學習。 測試與優化:分享一個主流的自動化測試框架,以及優化內存與電量的一些常見方法。產品的性能與功能同樣重要,應用的高品質也會提升產品的用戶體驗。 這七部分幾乎已經包含高級Android編程的全部內容,本書的每個部分都會通過多個實例,從不同的角度引領讀者親身實戰,真正地掌握高級編程的核心開發技巧。但是,實例的數量終究有限,希望讀者更多地關注于實戰中的開發思想,而不是具體的代碼邏輯,代碼總會不斷地更迭,解決問題的思維卻歷久彌新。本書中的實例更多的是以點帶面,讀者可以一邊閱讀和思考,一邊編寫代碼,相信讀完本書,一定受益匪淺;同時,通過本書的實例可以解決一些常見的開發需求。衷心希望每位讀者在閱讀完本書之后,都“不虛此行”! 將本書送給我正在懷孕的妻子,感謝你在生活和工作中給予我的支持和幫助。 王辰龍 2018年5月于北京海淀 |
內容簡介:本書收集了約20個關于高級Android開發的進階實例,這些實例都是對在日常開發中遇到的問題的抽象,涉及整個Android開發的各個技術棧。本書從常見的問題入手,引導讀者逐步地掌握進階的各個實例,同時提供分析和解決問題的思考過程,尋求最優方案。本書的內容分為以下幾個部分。進階基礎:通過管中窺豹,剖析Activity和View的一些基本概念,展示源碼分析的常見方法;高階控件:講解MD的兩個復合布局和約束布局,介紹高級控件的開發流程;項目架構:架構是項目的骨骼,該部分介紹主流的MVP系列和Flux架構;響應式編程:解析響應式編程三劍客RxJava+Dagger+Retrofit的不同特性組合使用方法;功能與動畫:列舉若干實際開發中的經典實例,包含功能定制和頁面動畫等;Kotlin與SVG:講解Kotlin編程語言和SVG圖像技術的若干開發技巧;測試與優化:介紹自動化測試框架的設計方法,以及優化應用的常用工具。通過對本書的學習,讀者可以極大地提高Android開發的工程能力,從而成為一名合格的高級Android工程師,不僅在理論上有所提升,在實踐中也能直接應用。高級Android工程師通過對本書的學習也能完善知識體系和技術棧。 |
目錄:第1章 進階基礎 1 1.1 深入剖析 Activity 的生命周期 1 1.1.1 Activity的生命周期的各種狀態 2 1.1.2 實例:準備 4 1.1.3 實例:因硬件導致的生命周期變化 6 1.1.4 實例:頁面切換時的生命周期變化 11 1.1.5 實例:由系統原因導致的生命周期變化 16 1.2 深入剖析Activity的啟動模式 20 1.2.1 ADB命令 20 1.2.2 標準模式 21 1.2.3 棧頂復用模式 25 1.2.4 棧內復用模式 27 1.2.5 單實例模式 32 1.2.6 startActivity 34 1.3 深入剖析View的工作流程 36 1.3.1 裝飾視圖和MeasureSpec 38 1.3.2 測量 39 1.3.3 布局 44 1.3.4 繪制 45 1.4 深入剖析View的動畫原理 47 1.4.1 默認視圖動畫 48 1.4.2 自定義視圖動畫 51 1.4.3 幀動畫 54 1.4.4 屬性動畫 54 1.4.5 列表控件 58 第2章 高階控件 62 2.1 熟練掌握AppBarLayout的開發技術 62 2.1.1 搭建項目框架 63 2.1.2 頁面設置ViewPager布局 67 2.1.3 頁面添加AppBarLayout布局 73 2.1.4 頁面添加AppBarLayout邏輯 76 2.1.5 頁面添加AppBarLayout動畫 81 2.2 熟練掌握 CoordinatorLayout的開發技術 85 2.2.1 項目框架 86 2.2.2 布局設計 86 2.2.3 聯動邏輯 90 2.2.4 圖片交互 93 2.3 熟練掌握 ConstraintLayout 的開發技術 96 2.3.1 工程配置 97 2.3.2 約束布局 99 2.3.3 鏈式結構 107 第3章 項目架構 110 3.1 頂層設計 Android 的工程架構 110 3.1.1 MVC架構 111 3.1.2 MVP架構 116 3.1.3 MVVM架構 120 3.2 頂層設計基于Flux的流式架構 124 3.2.1 視圖 125 3.2.2 行為創建器 129 3.2.3 調度器 131 3.2.4 存儲器 133 第4章 響應式編程 141 4.1 全面解析響應式庫RxJava的使用方式 141 4.1.1 項目框架 142 4.1.2 鏈式表達式 144 4.1.3 流的加工函數 148 4.1.4 Ambda表達式 151 4.1.5 網絡請求 152 4.1.6 控件的異步事件 159 4.1.7 線程安全 161 4.2 全面解析依賴注入庫 Dagger 的使用方式 164 4.2.1 工程配置 165 4.2.2 主頁邏輯 166 4.2.3 詳情邏輯 169 4.3 基于響應式編程的網絡數據同步及緩存框架 173 4.3.1 工程配置 174 4.3.2 首頁 175 4.3.3 數據源 177 4.3.4 依賴注入 179 4.3.5 無緩存模式 181 4.3.6 緩存模式 183 第5章 炫酷功能 186 5.1 設計與實現朋友圈視頻的滾動播放功能 186 5.1.1 項目框架 187 5.1.2 視頻列表 189 5.1.3 視頻項的適配器 193 5.1.4 視頻列表項 196 5.2 設計與實現基于 DialogFragment 的底部彈窗布局 200 5.2.1 首頁邏輯 201 5.2.2 彈窗樣式 202 5.2.3 彈窗邏輯 204
第6章 精美動畫 208 6.1 實現頁面切換中元素分享的動畫效果 208 6.1.1 項目框架 208 6.1.2 效果顯示動畫 210 6.1.3 預留位置動畫 214 6.2 實現頁面展開中圓形爆炸的動畫效果 220 6.2.1 首頁邏輯 221 6.2.2 新頁邏輯 223 6.2.3 顯示動畫 226 6.2.4 退出動畫 229 第7章 Kotlin與SVG 231 7.1 Kotlin基礎教程 231 7.1.1 基礎部分 232 7.1.2 進階部分 237 7.2 SVG基礎教程 241 7.2.1 Vector圖像 242 7.2.2 Vector動畫 245 7.2.3 第三方Sharp庫 249 第8章 測試與優化 254 8.1 基于Espresso和Dagger的自動化測試框架 254 8.1.1 工程配置 255 8.1.2 業務邏輯 257 8.1.3 功能測試 265 8.2 優化內存泄漏與電量消耗的技術框架 272 8.2.1 內存泄漏 272 8.2.2 電量優化 282 |
序: |