-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
防疫期間 星期日公休
9/23 新書到! 9/14 新書到! 9/7 新書到! 8/31 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Android Jetpack應用指南

( 簡體 字)
作者:葉坤類別:1. -> 程式設計 -> 手機程式 -> Android
譯者:
出版社:電子工業出版社Android Jetpack應用指南 3dWoo書號: 53011
詢問書籍請說出此書號!

有庫存
NT定價: 395
折扣價: 371

出版日:7/1/2020
頁數:248
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121390555
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

推薦序

聽到葉坤新書出版的消息,我是十分開心的,因為葉坤最初跟出版社合作第一本書的時候,是我從中牽線的,也算做了一點微小的貢獻,現在看到新作又將問世,就有種幻覺,仿佛這其中也有我的功勞一樣。
讀了本書的樣章,風格一絲不茍,自律、內斂,力圖準確、簡潔,精微之處的講解與注釋又甚為細致,讀起來不困不累,言簡意賅,我作為Android開發的“門外漢”也能很容易讀明白。文如其人,葉坤給我的感覺就是這樣,日常十分歡樂,講解專業問題時認真而生動,對細節的要求又十分嚴格,近乎一種“變態”的自律。
我們雖然曾為同事,座位也就一步之遙,但在技術工作上的共事并不算多,不過葉坤給了我極其重要的指導,他教會了我如何完成馬拉松(不是抽象的長跑,是要跑42公里的那種馬拉松),葉坤是我的第一位長跑教練。
記得當時我找他咨詢如何報名越野馬拉松,聽聞我這輩子從沒跑過10公里以上,他當時就震驚了,委婉地批評了我的愚蠢自大后,他就帶我從“半馬”開始練起:一邊給予熱情的鼓勵以免自我勸退,一邊進行嚴格的訓練指導以保證完賽。我的第一次“半馬”在葉坤如機器般精準的配速領跑下得以順利完成,作為一個跑過幾十個“馬”的資深跑者,葉教練穩定精確的跑姿給我留下了極為深刻的印象。雖然跑步是一項孤獨的運動,但優秀的領跑的確能讓人更容易領悟其美妙之處。從此我也走上了這條“不歸路”。
希望本書的讀者,也能跟隨作者嚴謹而快樂的節奏,一步步腳踏實地,完成一次美妙的旅程。
豆瓣資深產品研發工程師 蘇丹
作者序


2017年我在翻譯《Android高性能編程》這本書時,負責與我對接的是電子工業出版社的符隆美。在快要完稿時,為了加快校對進度,我在某個周末去了一趟電子工業出版社。隆美非常辛苦地陪我校對了一整天的文字,還熱情地為我們點了咖啡和外賣。我們邊吃外賣邊聊天,隆美問我有沒有興趣寫一本書。我當時有點意外,也非常開心。這相當于我的工作成果在某種程度上得到了認可,作為譯者,自然是非常開心和自豪的。但是我對自己也有一些要求,我認為寫作是一件嚴肅的事情,白紙黑字需要經受得住時間和讀者的雙重考驗,這不僅是對讀者負責,也是對自己負責。出一本沒人看的書,或者市場同質化嚴重的書,對我而言沒有意義。由于沒有找到自己滿意的題材,這件事便不了了之了。
2018年11月,我離開豆瓣,開啟了一段自由職業的經歷。在這段時間里,除了旅行和學習阿根廷探戈,我基本沒干什么正經事。這樣的日子讓我覺得空虛。于是我打算利用閑暇時間,總結一下自己在Android應用研發方面的經驗。在此過程中,我發現Jetpack這一新鮮且重要的題材,并沒有哪本書專門系統地介紹過,于是便萌生了將其匯聚成書的想法。很快我便聯系了隆美,這便有了這本《Android Jetpack應用指南》。
2020年是我來北京的第5年,我時常覺得自己很幸運,能夠在5年前加入豆瓣,這是改變我人生軌跡的一件事。豆瓣為我帶來的機會和價值,遠比我為它所付出的要多得多。在豆瓣同事們的影響下,我對自己有了更高的要求,我希望自己能盡量做一些有意義的事情。這本書對讀者而言是知識的載體,對我來說是個人價值的一種體現。將知識傳播出去,讓更多的人受益,是我的追求和目標。我努力斟酌書中的文字,希望降低讀者的學習成本,節約讀者的時間。如果這本書能夠幫到你,我會非常開心!




前 言


開發應用程序就像搭積木。我們對產品業務及功能模塊的劃分和封裝,就像在搭建積木一樣。積木不能太大,這不利于修改和拆解;積木也不能太小,否則管理起來可能會很混亂。只有基于穩健、合理的架構,項目才能輕松應對需求的變化,才有可能健康成長。沒有良好架構的應用程序,就像沒有搭好底座的積木,隨著項目復雜度的上升,維護起來會困難重重,工程師會不停地陷入技術債務之中—“積木的倒塌”只是時間問題。
如何把握模塊的粒度,在保持模塊獨立性的同時,又不影響模塊間的通信,是全世界優秀的Android工程師共同追求的目標。為了解決這一問題,各類架構模式層出不窮,比較著名的有MVC、MVP和MVVM。Jetpack正是在這一背景下誕生的。它由Google官方推出,用于方便工程師搭建符合MVVM規范的Android應用程序。
本書特色
《Android Jetpack應用指南》是國內外第一本系統介紹Jetpack的圖書。它可以讓你對Jetpack中的各個組件有一個全面且清晰的了解。本書的每個章節都從實際出發,通過實際案例告訴你,如何使用這些Jetpack組件,為什么需要這些組件,它們能解決開發過程中的什么問題。不僅如此,本書還對其中部分組件的源碼進行了簡要的分析,讓讀者能夠了解組件背后的原理。知其然,更知其所以然。
周末帶上這本書,到咖啡館點上一杯咖啡,相信只需要一個下午的時間,你就會對Jetpack有一個全面的了解了。如果你愿意按照書中的示例代碼運行一遍程序,相信你在下一次面試時,面對面試官提出的關于Jetpack和MVVM的問題,就可以“重拳出擊”,而不是“唯唯諾諾”了。
目標讀者
讀者只需要對Android應用程序開發有基本的了解即可,不需要具備豐富的Android開發經驗。
如果讀者是一位初級Android工程師,對項目架構充滿好奇,想嘗試自己來架構應用程序,那么本書一定適合你。它將帶領你了解什么是Jetpack,如何使用Jetpack組件構建符合MVVM規范的應用程序,讓你少走彎路。
如果讀者是一位資深的Android工程師,希望了解Jetpack組件對于架構手頭正在研發的項目是否有幫助,那么本書同樣適合你。通過本書,你可以快速獲知Google對Android的態度,以及Android未來將朝著哪個方向發展。
無論是初級工程師還是資深工程師,相信本書都會對你有所幫助。擁抱Jetpack,就是在擁抱Android的未來!不要有壓力,書中有豐富的插圖和代碼示例,相信你一定可以快速掌握Jetpack!
學習建議
讀者可以跳過部分章節,直接學習自己感興趣的組件,但如果讀者對各個組件之間的關系還不太熟悉,強烈建議先按先后順序閱讀一遍。因為本書的章節之間存在一定的關聯性,按順序閱讀有助于讀者更加清晰地了解組件之間的關系。
書中的代碼示例基本涵蓋了所有的核心代碼。讀者在閱讀的過程中,若對其中的某些內容感到不解,不妨打開Android Studio,新建一個項目,按照書中提供的代碼示例運行一遍,這對讀者理解組件會有非常大的幫助。
本書力求通過最簡單的示例,將Jetpack各組件的作用和使用方法向讀者闡述清楚。但作者能力有限,無法具體到組件的方方面面,若要透徹、深入地掌握某個組件,還需要讀者后續進行自行學習。學習的渠道包括但不限于Google搜索引擎、Android官方文檔、StackOverflow、GitHub等。
作者致謝
這本書能夠順利出版,首先要感謝電子工業出版社的符隆美,沒有她,這本書不可能順利與大家見面。感謝隆美耐心細致地回復和處理我的每一通電話、每一封郵件。這甚至占用了她不少的周末和假期時間,感激隆美的默默付出!
感謝本書的設計師李玲,封面實在太好看了,我非常喜歡!
感謝本書的編輯崔志偉,她耐心細致地為我找出了書中不少的文字和語法錯誤。
感謝本書的排版員李明燕,她耐心地優化文字和代碼的樣式,讓本書能夠更好地呈現在讀者面前。
感謝網龍、搜狐暢游17173、豆瓣及美餐網,感謝你們為我提供了這么好的發展平臺。
感謝美餐網同事王運山對我的照顧和幫助,運山專業的技術能力和工作態度讓我受益匪淺。
感謝為我寫推薦語的各位前同事,你們不僅在工作中對我關照有加,還對我這本書鼎力相助。
感謝我的探戈舞蹈老師李松巖,你毫無保留地教授我探戈技巧,讓我理解探戈,并熱愛探戈。
感謝“狗哥”李雅雯和“狗子”李五弟。智慧與美麗并重的“狗哥”是我生命里非常重要的一個人。
感謝我的父親葉碧何、母親陳忠英、妹妹葉閩,以及兩個可愛的小外甥林宇釩、林若熙,你們是我的全部。
最后,我想感謝那些曾經對我提出過質疑和否定的人,是你們讓我走得更遠。


Android Jetpack組件是庫的集合,這些庫是為協同工作而構建的,你可以單獨使用某個組件,也可以混合搭配使用它們。
內容簡介:

本書講解的是 Android Jetpack 最核心的內容——架構。第 1 章將對 Jetpack 做一個大致的介紹。第 2 章至第 9 章,將分別詳細介紹為搭建 MVVM 架構而設計的各個 Jetpack 組件,包括LiveData、 ViewModel、 DataBinding 等。第 10 章是對前面各章節的總結,將向讀者詳細介紹什么是數據模型驅動界面更新、 什么是 MVVM 架構, 以及如何利用 Jetpack 組件搭建符合 MVVM架構規范的應用程序。本書假設讀者對 Android 應用程序有基本的了解,希望系統學習 Jetpack,并打算最終使用Jetpack 組件架構符合 MVVM 規范的應用程序。
目錄:

第1章 初識Jetpack 1
1.1 Android應用程序架構設計標準的缺失概論 1
1.2 什么是Jetpack 2
1.3 Jetpack與AndroidX 3
1.4 遷移至AndroidX 4
1.5 新建項目默認支持AndroidX 6
1.6 總結 8
第2章 LifeCycle 9
2.1 LifeCycle的誕生 9
2.2 使用LifeCycle解耦頁面與組件 10
2.2.1 案例分析 10
2.2.2 LifeCycle的原理 11
2.2.3 解決方案 12
2.3 使用LifecycleService解耦Service與組件 15
2.3.1 LifeCycleService基本介紹 15
2.3.2 LifecycleService的具體使用方法 16
2.4 使用ProcessLifecycleOwner監聽應用程序的生命周期 19
2.4.1 ProcessLifecycleOwner存在的意義 19
2.4.2 ProcessLifecycleOwner的具體使用方法 19
2.5 總結 22
第3章 Navigation 24
3.1 Navigation的誕生 24
3.2 Navigation的主要元素 25
3.3 使用Navigation 26
3.3.1 創建Navigation Graph 26
3.3.2 添加NavHostFragment 28
3.3.3 創建destination 30
3.3.4 完成Fragment頁面切換 33
3.3.5 使用NavController完成導航 36
3.3.6 添加頁面切換動畫效果 38
3.4 使用safe args插件傳遞參數 40
3.4.1 常見的傳遞參數的方式 40
3.4.2 使用safe args傳遞參數 40
3.5 NavigationUI的使用方法 43
3.5.1 NavigationUI存在的意義 43
3.5.2 案例分析 43
3.5.3 擴展延伸 48
3.6 深層鏈接DeepLink 49
3.6.1 DeepLink的兩種應用場景 49
3.6.2 PendingIntent的方式 50
3.6.3 URL的方式 52
3.7 總結 54
第4章 ViewModel 56
4.1 視圖與數據模型之間的橋梁ViewModel 56
4.2 ViewModel的生命周期特性 57
4.3 ViewModel的基本使用方法 58
4.4 ViewModel的原理 62
4.5 ViewModel與AndroidViewModel 64
4.6 ViewModel與onSaveInstanceState() 方法 65
4.7 總結 65
第5章 LiveData 67
5.1 實時數據LiveData 67
5.2 LiveData和ViewModel的關系 68
5.3 LiveData的基本使用方法 68
5.4 LiveData的原理 71
5.5 LiveData.observeForever()方法 72
5.6 ViewModel+LiveData實現Fragment間通信 73
5.7 總結 79
第6章 Room 80
6.1 Android官方ORM庫Room 80
6.2 Room的基本使用方法 81
6.2.1 Room的相關概念 81
6.2.2 案例分析 82

6.3 Room與LiveData、ViewModel結合使用 87
6.3.1 LiveData和ViewModel帶來的好處 87
6.3.2 案例優化 89
6.4 Room數據庫升級 91
6.4.1 使用Migration升級數據庫 91
6.4.2 異常處理 92
6.4.3 Schema文件 93
6.4.4 銷毀與重建策略 95
6.5 預填充數據庫 96
6.5.1 createFromAsset() API和createFromFile() API 96
6.5.2 createFromAsset() API的使用方法 97
6.6 總結 101
第7章 WorkManager 102
7.1 WorkManager的作用 102
7.2 WorkManager的3個重要特點 102
7.3 WorkManager的兼容方案 103
7.4 WorkManager的基本使用方法 104
7.4.1 添加依賴 104
7.4.2 使用Worker類定義任務 104
7.4.3 使用WorkRequest配置任務 105
7.4.4 將任務提交給系統 107
7.4.5 觀察任務的狀態 107
7.4.6 取消任務 108
7.4.7 WorkManager與Worker之間的參數傳遞 108
7.4.8 周期性任務PeriodicWorkRequest 110
7.4.9 任務鏈 110
7.5 總結 112
第8章 DataBinding 113
8.1 DataBinding的意義和優勢 113
8.2 DataBinding的簡單綁定 114
8.2.1 未采用DataBinding的編碼方式 114
8.2.2 采用DataBinding完成簡單的綁定 116
8.3 DataBinding響應事件 124
8.4 二級頁面的綁定 127
8.5 BindingAdapter的原理 130
8.6 自定義BindingAdapter 132
8.6.1 自定義BindingAdapter的基本方法 132
8.6.2 方法重載 135
8.6.3 多參數重載 137
8.6.4 可選舊值 138
8.7 雙向綁定 141
8.7.1 單向綁定和雙向綁定 141
8.7.2 實現雙向綁定 142
8.7.3 使用ObservableField優化雙向綁定 145
8.7.4 ObservableField與LiveData 146
8.8 RecyclerView的綁定機制 147
8.9 總結 154

第9章 Paging 155
9.1 Paging組件的意義 155
9.2 Paging支持的架構類型 155
9.3 Paging的工作原理 157
9.4 Paging的3個核心類 158
9.5 3種DataSource 159
9.6 PositionalDataSource的使用方法 160
9.7 PageKeyedDataSource的使用方法 176
9.8 ItemKeyedDataSource的使用方法 184
9.9 BoundaryCallback的使用方法 190
9.9.1 BoundaryCallback的意義 190
9.9.2 BoundaryCallback的使用流程分析 191
9.9.3 項目演示 192
9.10 總結 202
第10章 MVVM架構 204
10.1 MVVM架構與Jetpack 204
10.2 數據模型驅動界面更新 204
10.3 簡要回顧Jetpack組件 206
10.4 使用Jetpack組件構建MVVM應用程序 207
10.5 總結 224
序: