Android數據庫最佳實踐
內容描述
本書介紹了關系型數據庫和 SQLite 相關的理論知識,同時也介紹了在 Android 開發中和數據相關的方方面面,包括數據類型的定義、數據的增刪改查、數據的持久化和展示、使用 content provider 共享數據、使用 Intent API 傳遞數據,以及和遠程服務器進行數據交互等。本書的內容從相關 API 的基本使用到最佳實踐都有涉獵,對於提升 Android 開發水平,寫出更高質量的應用很有幫助。閱讀本書,並不需要對 Android 開發有很多的經驗,但是要求讀者有一些 Android 開發基礎,理解Android 的基礎組件。如果對 Android / Java 的線程模型有一些瞭解的話,對快速理解內容會很有幫助。
目錄大綱
第1章關係型數據庫1
數據庫簡史1
層次模型2
網狀模型2
關係模型簡介3
關係模型3
關係3
關係的屬性5
關聯6
參照完整性7
關係語言8
關係代數9
關係演算12
數據庫語言13
總結14
第2章SQL介紹15
數據定義語言15
表16
索引18
視圖21
觸發器22
數據操作語言26
INSERT 26
UPDATE 28
DELETE 29
查詢29
ORDER BY 31
連接32
總結35
第3章SQLite介紹36
SQLite的特性36
SQLite的特徵36
外鍵支持37
全文索引37
原子事務38
多線程支持39
SQLite的不足39
有限的連接支持39
視圖只讀40
有限的ALTER TABLE支持40
SQLite數據類型40
總結42
第4章Android中的SQLite 43
移動設備上的數據持久化43
Android中的數據庫API 43
SQLiteOpenHelper 44
SQLiteDatabase 53
數據庫升級策略53
重建數據庫54
修改現有數據庫54
複製表和刪除表55
數據訪問和主線程56
查看數據庫中的數據56
使用adb訪問數據庫56
使用第三方工具訪問數據庫67
總結70
第5章在Android中使用數據庫72
操作數據72
行插入73
行更新76
行替換78
行刪除79
事務80
使用事務80
事務與性能81
查詢82
快捷查詢方法82
原始查詢方法83
Cursor 84
讀取Cursor數據84
管理Cursor 86
CursorLoader 86
創建CursorLoader 87
啟用CursorLoader 90
重啟CursorLoader 91
總結91
第6章Content Provider 92
REST API 92
URI 93
暴露數據93
方法實現93
Content Resolver 98
對其他應用程序暴露Content Provider 99
Provider級權限99
單獨讀寫權限100
URI路徑權限100
Content Provider權限100
Content Provider合約類102
允許外部程序訪問104
實現Content Provider 104
繼承android.content.ContentProvider 105
insert() 108
delete() 109
update() 111
query() 112
getType() 117
何時該使用Content Provider 118
劣勢119
優勢120
總結121
第7章數據庫和UI 122
從數據庫到UI 122
使用cursor loader處理線程交互122
綁定cursor的數據到UI 123
cursor作為觀察者128
在Activity中使用Content Provider 130
Activity的實現細節131
創建cursor Loader 132
處理返回數據133
處理數據變化139
總結143
第8章使用Intent共享數據144
發送Intent 144
顯式Intent 144
隱式Intent 145
啟動一個目標Activity 145
接收隱式Intent 147
構造Intent 148
Action 148
Extra 149
Extras數據類型150
什麼不該放到Intent中153
Share菜單154
總結156
第9章網絡通信157
REST和Web Services 157
REST簡介157
REST風格的Web API 158
訪問Web API 159
使用Android標準API訪問Web Service 159
使用Retrofit訪問Web Service 168
使用Volley訪問Web Service 174
數據持久化181
數據傳輸和電量消耗181
數據傳輸和用戶體驗182
本地持久化182
SyncAdapter 182
AccountAuthenticator 183
SyncAdapter 186
手動同步遠程數據191
RxJava簡介191
Retrofit + RxJava 191
使用RxJava進行數據同步194
總結200
第10章Data Binding 201
在項目中使用Data Binding 201
View的Data Binding佈局202
將Activity和佈局綁定203
使用Binding對象更新View 205
處理數據變化208
使用Data Binding來去除重複代碼211
Data Binding的表達式語言214
總結216
作者介紹
本書作者Adam Stroud於2010年開始從事Android開發。
他是Runkeeper,、Mustbin和Chef Nightly等創業公司的早期員工。
從零開始主導這些團隊的Android應用開發。他熱愛Android和開源,除了寫代碼外,他還寫了另外一些Android的書籍。
他喜歡成為技術社區的一份子,經常在技術社區做分享和演講。
本書寫成時,Adam開始了新的一次創業,任技術聯合創始人,負責Android應用的開發。
廖祜秋,開源愛好者,《構建F8 App / React Native開髮指南》譯者和維護者,Fresco文檔譯者和維護者,Infer文檔譯者和維護者。