商品簡介
本書首先介紹Android組件化開發的基礎知識,剖析組件化的開發步驟和常見問題,探究組件化編譯原理和編譯優化措施。其次在項目架構上,介紹如何組織團隊來使用組件化開發,並將業務和人力進行解耦。最後深入介紹組件化分發技術及運用,探討組件化架構的演進及架構的思維。
序
前 言
這是一本關於Android組件化的書籍
這是一本關於Android入門的書籍。
這是一本關於Android進階的書籍。
這是一本關於Android編程原理的書籍。
這是一本關於Android架構的書籍。
我更願意將這本書看作一本關於思維哲學的書籍。
書的用途,因人而異,有人用來墊書桌,有人將其作為工具,有人將其細細品味……
你用什麼角度和什麼態度來看待圖書,它就會以什麼形態展現在你眼前。
? 當你將它作為一本Android工具書時,它會指導你對Android的進階學習。
? 當你將它作為一本軟件架構書籍時,它會將工具和人的思想關聯來調整你對架構的認知。
? 當你將它作為一本思維哲學書籍時,你有可能對Android開發有新的認識。
本書概要
第1章:組件化基礎。
本章重點介紹組件化中開發的基礎概念。首先介紹組件化中的依賴和解耦,然後介紹組件化中AndroidManifest的合成差異,最後深度認識Application的重要作用。
第2章:組件化編程。
本章介紹組件化中相關的開發編程技術,包括組件化通信、組件化存儲、跨模塊跳轉、資源衝突解決、多模塊渠道、資源混淆、數據庫運用、簽名相關的運用及原理剖析。
第3章:組件化優化。
本章介紹如何使用Gradle對組件化中多種使用方式的優化,以及對編譯適配的優化。隨後介紹使用Git倉庫來組織多人進行組件化開發,以及多人開發的項目解耦。
第4章:組件化編譯。
本章介紹如何在組件化項目中縮短編譯時間。首先介紹Gradle的打包流程,以及Gradle構建基礎。隨後介紹Instant Run的使用和適用場景。最後介紹Freeline增量編譯,以及部分原理剖析。
第5章:組件化分發。
本章介紹如何在單頁面中處理複雜的業務邏輯。首先介紹Activity、Fragment、View的生命週期,以及組件化分發架構的嵌入。隨後介紹依賴倒置型的設計和層級問題的解決方法,其中插敘了編譯期注解的高效生成代碼的形式。最後介紹動態加載配置的形式。
第6章:組件化流通。
本章介紹如何在組件化中工程封裝工具SDK。首先介紹Maven基礎和組件化中的緩存策略,隨後介紹組件化中SDK的合成方式,最後介紹如何將SDK發佈到流通平臺中。
第7章:架構模板。
本章介紹如何制定組件化多人開發規範。首先介紹自定義Android Studio的模板及組件化模板的製作,隨後介紹注解提示的使用。
第8章:架構演進。
本章介紹Android工程架構的演進,包括線程工程架構、組件化基礎架構、模塊化架構、多模板架構,以及進程化架構的原理基礎。讓讀者能對Android架構有更加深入的瞭解。
讀者對象
本書適合以下學習階段的讀者閱讀:
? Android進階學習階段;
? Android組件化學習階段;
? Android架構初級學習階段
? 移動端開發思維哲學學習階段。
致謝
感謝父母對我的思想啟蒙的培育;感謝我的妻子丸子對我寫作的鼓勵和生活的照顧;感謝我曾經就職的廣州三星和現在在職的歡聚時代。感謝Android組件化架構QQ群中的映客科技King、搜狐56夜閃冰、RetroX、亞倫,以及各位同學對我出版書籍內容上的建議。
勘誤和互動
如果讀者發現本書中文字、代碼和圖片的信息存在錯誤或者紕漏,歡迎反饋給我。若是對書中內容或者Android組件化架構存在疑問,可以在我的簡書、掘金、QQ群中與我互動,屆時會在這些平臺發佈勘誤的信息,並歡迎各位讀者的提問和建議。
QQ群:316556016
簡書:http://www.jianshu.com/u/cd0fe10b01d2
掘金:https://juejin.im/user/565c6d3100b0acaad47e9050
GitHub:https://github.com/cangwang
蒼王
目次
第1章組件化基礎1.1你知道組件化嗎1.2基礎組件化架構介紹1.2.1依賴1.2.2聚合和解耦1.3重新認識AndroidManifest1.3.1AndroidManifest屬性匯總1.3.2AndroidManifest屬性變更1.4你所不知道的Application1.4.1Applicaton的基礎和作用1.4.2組件化Application1.5小結第2章組件化編程2.1本地廣播2.1.1本地廣播基礎介紹2.1.2使用方法2.1.3本地廣播源碼分析2.2組件間通信機制2.2.1組件化層級障礙2.2.2事件總線2.2.3組件化事件總線的考量2.3組件間跳轉2.3.1隱式跳轉2.3.2ARouter路由跳轉2.3.3Android路由原理2.3.4組件化最佳路由2.3.5空類索引2.4動態創建2.4.1反射基礎2.4.2反射進階2.4.3反射簡化jOOR2.4.4動態創建Fragment2.4.5動態配置Application2.5數據存儲2.5.1數據的存儲方式2.5.2組件化存儲2.5.3組件化數據庫2.6權限管理2.6.1權限機制2.6.2組件化權限2.6.3動態權限框架2.6.4路由攔截2.7靜態常量2.7.1資源限制2.7.2組件化的靜態變量2.7.3R2.java的秘密2.8資源衝突2.8.1組件化的資源匯合2.8.2組件化資源衝突2.9組件化混淆2.9.1混淆基礎2.9.2資源混淆2.9.3組件化混淆2.10多渠道模塊2.10.1多渠道基礎2.10.2批量打包2.10.3多渠道模塊配置2.11小結第3章組件化優化3.1Gradle優化3.1.1Gradle基礎3.1.2版本參數優化3.1.3調試優化3.1.4資源引用配置3.1.5Gradle4.1依賴特性3.2Git組件化部署3.2.1submodule子模塊3.2.2subtree3.3小結第4章組件化編譯4.1Gradle編譯4.1.1Android基礎編譯流程4.1.2InstantRun4.1.3更優的Gradle構建策略4.2極速增量編譯4.2.1Freeline的使用4.2.2Free