內容簡介
本書介紹了關係型資料庫和 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 文檔譯者和維護者。