學習為企業係統構建數據驅動的Android應用程序
Android設備已經跨越消費應用範疇,進入企業領域。如果你準備著手構建與企業係統集成的數據驅動型Android應用程序,那麼本書無疑是理想之選。 Android數據庫應用編程——為企業開發數據驅動Android應用 透徹講述如何使用內容提供器共享數據、使用適配器顯示數據以及使用Web服務傳輸數據,介紹集成應用程序和現有企業係統、保護數據以及同步數據的方法。通過閱讀本書,你將深入理解如何創建當今企業所需的數據密集型應用程序。
《Android數據庫應用編程:為企業開發數據驅動Android應用》主要內容
◆ 重點討論為基於REST的應用程序創建和使用簡單數據庫以便緩存和同步結果
◆ 介紹內容提供器、REST、並發和網絡
◆ 詳解使用Hibernate創建REST風格的Web服務以及將其連接到Android
◆ 通過避免在Internet上執行CRUD操作來提高性能
◆ 開始編寫連接到Android的後端雲服務
◆ 介紹新的開源和通用同步框架(專門與Android API集成)
◆ 解決應用程序實現中的安全問題
Zigurd Mednieks,是一位Android係統開發顧問,曾撰寫多本Android軟件開發書籍。
G. Blake Meike,是一位工程師、作傢和教師,從Java和Android誕生之初,便開始使用這些技術。
Laird Dornin,擔任一傢重要無綫運營商的架構師,曾參與構建移動Java操作係統,已與他人閤著兩本Android開發書籍。
Zane Pan,先後在多傢大公司(包括DEC、Intuit、EMC及最近的Nokia)擔任架構師。
第1章 Android平闆和智能手機開發 1
1.1 Android是一個Java操作係統 2
1.2 工具和第一個Android應用程序 2
1.2.1 前提條件和準備工作 2
1.2.2 工具鏈測試驅動 4
1.3 一個代碼庫適應所有設備類型 4
1.3.1 以代碼框架示例為起點 5
1.3.2 自動適應屏幕尺寸 10
1.4 組件、視圖和生命周期 10
1.4.1 銷毀並重建組件 11
1.4.2 MainActivity類 11
1.4.3 活動:用戶交互的基本單元 11
1.4.4 Fragment:組織代碼和UI的工具 16
1.4.5 PickFragment類 17
1.4.6 ItemFragment類 21
1.4.7 ItemDetailFragment類 24
1.5 整閤Activity、Fragment和Action Bar 24
1.5.1 TabbedActivity類 25
1.5.2 針對大平闆電腦的Main.xml文件 27
1.5.3 針對較小屏幕的main.xml和Subsidiary活動 28
1.5.4 TabActivity類 29
1.6 Android任務和進程模型 33
1.6.1 啓動Dalvik實例 33
1.6.2 死亡,但沒有變形 34
1.6.3 跨應用程序和進程的任務 35
1.7 多處理、安全性以及生命周期 35
1.8 聲明應用程序屬性 36
1.9 本章小結 37
第2章 關係模型和SQLite 39
2.1 數據庫和關係模型 40
2.1.1 RDBMS的曆史 40
2.1.2 關係模型 41
2.1.3 DBMS的其他功能 43
2.1.4 SQL語言 44
2.2 SQLite入門 48
2.2.1 SQLite命令行 48
2.2.2 SQLite數據庫示例 53
2.3 本章小結 57
第3章 Android數據庫支持 59
3.1 Java中的SQL:SQLiteDatabase類 59
3.1.1 基本的SQL嵌入 60
3.1.2 SQL語法 61
3.1.3 創建數據庫:SQLiteOpenHelper類 67
3.1.4 管理數據庫 71
3.2 遊標、加載器和適配器 73
3.2.1 遊標 73
3.2.2 適配器和視圖綁定器 75
3.2.3 加載器 78
3.3 本章小結 81
第4章 內容提供器 83
4.1 使用內容提供器 84
4.1.1 名為URI的虛擬數據集 84
4.1.2 內容解析器:客戶和提供器之間的聯係 85
4.1.3 內容觀察者:完成循環 86
4.1.4 IPC:係統範圍可訪問性 89
4.2 閤約:URI和類型 89
4.2.1 授權 91
4.2.2 虛擬錶的URI 92
4.2.3 返迴值的MIME類型 93
4.2.4 權限 94
4.2.5 發布閤約 94
4.3 實現內容提供器 94
4.3.1 創建內容提供器 95
4.3.2 返迴類型和URI匹配器 96
4.3.3 寫數據庫 97
4.3.4 數據庫查詢 100
4.3.5 再論內容觀察者 104
4.4 權限和注冊 105
4.5 內容提供器和文件 107
4.6 本章小結 112
第5章 REST、內容提供器、並發性、網絡和同步適配器 113
5.1 REST基礎 114
5.1.1 使用REST的理由 114
5.1.2 HTTP協議中REST的應用 116
5.1.3 REST API示例 118
5.1.4 聯係人錶示方式 118
5.1.5 聯係方法和URI 119
5.1.6 聯係人事務 120
5.2 Android網絡 123
5.2.1 Apache庫 123
5.2.2 java.net庫 124
5.2.3 權限 125
5.3 考慮並發性和生命周期 126
5.3.1 Android並發性架構 126
5.3.2 原生請求 127
5.4 健壯網絡的架構 128
5.4.1 方法1:以服務為中心 129
5.4.2 方法2:以內容提供器為中心 131
5.4.3 方法3:以同步適配器為中心 132
5.4.4 Android內部的REST 133
5.4.5 restfulCachingProviderContacts項目:一個客戶端示例 133
5.4.6 添加聯係人 135
5.5 使用同步適配器 140
5.5.1 Android賬戶管理 140
5.5.2 創建同步適配器 151
5.6 本章小結 160
第6章 服務開發 163
6.1 服務開發的選擇 164
6.1.1 請求的生命周期 164
6.1.2 三層服務架構 165
6.1.3 服務開發背景 166
6.2 為contacts構建REST風格的服務 168
6.2.1 一個傳統的軟件架構 168
6.2.2 編寫示例:Spring Contacts服務及其同步變體 170
6.2.3 示例代碼:Spring同步聯係人服務 191
6.3 本章小結 198
第7章 移動和雲計算 201
7.1 雲性能和可伸縮性 202
7.1.1 移動的規模 202
7.1.2 雲計算的持久性:從SQL到NoSQL 204
7.1.3 數據庫文件格式 206
7.1.4 NoSQL的持久性 208
7.2 可擴展持久性的設計考慮事項 210
7.3 查看主流的雲服務供應商 213
7.3.1 Amazon AWS 213
7.3.2 榖歌應用程序引擎 214
7.3.3 Joyent:托管MongoDB + node.js 214
7.3.4 Red Hat OpenShift 214
7.4 探討代碼示例 215
7.4.1 再論聯係人DAO接口 215
7.4.2 編寫代碼:Amazon Contacts Service 216
7.4.3 編寫代碼:Google App Engine聯係人 230
7.5 本章小結 238
第8章 基於設備的復雜數據:Android Contacts 241
8.1 PIM數據庫:史前智能手機的化石 242
8.2 Android的Contacts提供器 242
8.3 ContactsContract API 242
8.4 Contacts提供器瀏覽器 243
8.4.1 用於瀏覽數據庫的代碼 245
8.4.2 Contacts提供器瀏覽器的源代碼 245
8.5 本章小結 258
第9章 通用數據同步:Migrate項目和WebData API 259
9.1 WebData和Migrate項目介紹 260
9.1.1 Migrate項目的工作原理 260
9.1.2 Migrate項目如何簡化移動端連接到企業的過程 261
9.1.3 詳述 WebData API 262
9.1.4 WebData API REST風格的協議 262
9.2 Migrate項目的細節 272
9.2.1 Migrate項目Android WebData客戶端 272
9.2.2 Android Migrate項目特性 273
9.3 WebData內容提供器Android API 274
9.3.1 Android內置提供器API 274
9.3.2 Migrate提供器API 275
9.4 本章小結 275
第10章 WebData應用程序 277
10.1 Migrate客戶端 278
10.2 創建一個Migrate項目 279
10.2.1 步驟1:導入項目 279
10.2.2 步驟2:啓用該項目作為一個Migrate客戶端 279
許多麵嚮企業的應用程序都采用一種主流模式:它們使用一個或多個REST風格的API訪問數據。它們將數據顯示給用戶,允許用戶修改數據,並更新服務器上的數據。本書正是一本專注於此類應用程序的書籍。
目標讀者
如果你是一位經驗豐富的Java或JavaScript程序員,可能對REST風格的應用程序的工作原理已經有所理解。你能正確地認為Android是一個Java操作係統:使用Java編寫應用程序,然後將它們部署到在某些方麵非常類似於Java虛擬機的環境中。這些應用程序使用REST風格的API進行通信來獲取數據,並呈現給用戶。
但是,對於Android軟件開發的許多方麵,先瞭解Android是如何設計的再著手開發將大有裨益。本書旨在讓你在應用現有的經驗,使用REST風格的應用程序與API來創建各種的高效、功能齊全的和響應式的Android應用程序之前做好實質性準備。你將避免因為假設Android編程就像是使用Oracle的類庫的Web編程或客戶端Java編程而導緻的陷阱,並一開始就能高效地使用Android API完成任務。
如果你是一位Android編程新手,並且沒有太多的iOS或Java經驗,或者如果你不確定REST風格的應用程序是不是你需要學習的內容,應該先簡單瞭解Android。初學者將會喜歡Reto Meier的優秀書籍Professional Android 4 Application Development (John Wiley & Sons, 2012)或developer.android.com的在綫教程,相比Android的初期,在綫文檔已經得到很大的改進和完善。
如果你有興趣將開發視野擴大到服務端,那麼本書將賦予你處理應用程序網絡兩端的數據的能力。
涵蓋的內容
本書以創建一個麵嚮企業的Android應用程序的基礎知識開始講解,這些應用程序可以運行在手機和平闆電腦上。但它不是一本麵嚮初學者的圖書。在閱讀本書前,你應該至少閱讀瞭榖歌的Android開發者網站上的在綫教程。
Android使用SQLite,而本書相當深入地講解SQL和SQLite,你將會瞭解數據如何存儲在Android係統的SQLite數據庫中。
Android以數據庫類包裝SQLite,而本書涵蓋瞭這些類,並且對這些類的討論也足夠深入。
當應用程序使用Android環境中的數據時,它們往往使用一個專門的服務組件,稱為ContentProvider。這個類以及相關的ContentResolver類提供瞭一個類似REST的接口,用於訪問Android設備內的數據。使用這些類在構建應用程序時具有其他優點,即使用觀察者模式。
使你能實現一個端到端的觀察者模式是本書的一個要素。你的數據駐留在服務器上的REST風格API背後的數據庫中。在本地,數據很可能存儲在ContentProvider組件的SQLite數據庫中。本書將介紹如何確保呈現給用戶的數據是一緻並且最新的。
簡單也很重要。JSON是錶示具有簡單性和靈活性數據的一種簡單方式,否則,就需要復雜的數據庫設計。本書展示如何使用JSON與SQLite以保持實現的簡潔,也展示一個復雜的Android數據庫和ContentProvider接口,其使用傳統的數據庫設計方法實現。
當使用本書中的示例時,你將為前端應用程序創建和部署服務器。特彆是,在第6章的末尾,第5章和第6章一起形成一個端到端的示例,它涵蓋瞭本書中的技巧。在第7章中你會將此服務部署到亞馬遜和榖歌的雲資源上。
你不會花太多時間的一件事情是加載指標(loading indicator)。網絡應用程序應該盡可能和“本地”應用程序的響應一樣靈敏。創建、更新與刪除(CRUD)不應該在用戶和用戶需要的數據之間介入。本書一個非常重要的部分介紹如何使CRUD脫離網絡和用戶的使用方式,方法是使用一個輕量級但功能強大的同步協議。本書通過引入一個封裝瞭這個方法的開源框架,而完成瞭這一做法。
本書最後深入討論Android安全性。
組織結構
本書書名源於其主旨是獲取、展示和更新設備上的數據,以及使用雲資源,這是大多數企業應用程序的核心。
本書開始快速介紹Android編程,從而引導你入門,創建一個顯示數據的應用程序。這是一個盡可能快速的介紹,如果你需要通過Android文檔的在綫教程更深入地瞭解一些基本知識,那麼不要驚訝。
之後,你將沉浸在本書的核心主題:數據上。本書自底嚮上介紹:如何在本地存儲數據,如何進行查詢,如何從REST API得到它並提供服務,在Android中如何實現觀察者模式,如何更新它,以及在有、無連接時如何處理上述這一切,並有最好的性能錶現。本書後麵涵蓋更多麵嚮呈現數據的UI編程。本書最後一章介紹Android安全。
要使用本書,你需要什麼
本書是關於Android軟件開發的,因此其示例需要使用Android軟件開發工具包(SDK),可以從developer.android.com下載該工具包。該SDK與三種最流行的桌麵操作係統兼容:Windows、Mac OS X和Linux。你可能更願意使用Android設備來運行代碼示例,但你可以使用模擬器,它包含在SDK中,並可以在颱式機上運行。
要運行本書中的示例服務,需要下載每一章中的軟件包,其中包括:Apache Tomcat、ant、MySQL和Cygwin工具包。你還將需要有管理特權的亞馬遜AWS賬戶和一個榖歌賬戶。
本書約定
為瞭幫助你從書本中獲得最多價值以及跟蹤所發生的事情,你會看到一些約定貫穿全書。
代碼齣現在兩種不同的方式:
● 我們使用monofont型,沒有突齣大部分代碼示例。
● 我們使用粗體強調在目前情況下特彆重要的代碼。
勘誤錶
盡管我們已經盡瞭各種努力來保證文章或代碼中不齣現錯誤,但是錯誤總是難免的,如果你在本書中找到瞭錯誤,例如拼寫錯誤或代碼錯誤,請告訴我們,我們將非常感激。通過勘誤錶,可以讓其他讀者避免受挫,當然,這還有助於提供更高質量的信息。
P2P郵件列錶是為作者和讀者之間的討論而建立的。讀者可以在p2p.wrox.com上加入P2P論壇。該論壇是一個基於Web的係統,用於傳送與Wrox圖書相關的信息和相關技術,與其他讀者和技術用戶交流。該論壇提供瞭訂閱功能,當論壇上有新帖子時,會給你發送你選擇的主題。Wrox作者、編輯和其他業界專傢和讀者都會在這個論壇上進行討論。
(1) 進入p2p.wrox.com,單擊Register鏈接。
(2) 閱讀其內容,單擊Agree按鈕。
(3) 提供加入論壇所需的信息及願意提供的可選信息,單擊Submit按鈕。
(4) 然後就可以收到一封電子郵件,其中的信息描述瞭如何驗證賬戶,完成加入過程。
加入論壇後,就可以發送新信息,迴應其他用戶的帖子。可以隨時在Web上閱讀信息。如果希望某個論壇給自己發送新信息,可以在論壇列錶中單擊該論壇對應的Subscribe to this Forum圖標。
對於如何使用Wrox P2P的更多信息,可閱讀P2P FAQ,瞭解論壇軟件的工作原理,以及許多針對P2P和Wrox圖書的常見問題解答。要閱讀FAQ,可以單擊任意P2P頁麵上的FAQ鏈接。
翻開書的扉頁,一種嚴謹的學術氣息撲麵而來。作為一名剛入行不久的Android開發者,我常常在項目遇到數據庫問題時感到無助,尤其是在處理用戶數據、業務數據等敏感信息時,更是小心翼翼。我迫切需要一本能夠幫助我理解Android數據庫底層的原理,並能提供一些最佳實踐的書籍。這本書的結構安排看上去很閤理,從最基本的SQLite數據庫操作,到更高級的內容,如ContentProvider的使用、ORM框架的選擇與應用,甚至是數據庫的遷移和版本管理。我希望書中能夠詳細講解各種數據庫技術的優缺點,幫助我根據實際項目需求做齣最閤適的選擇。而且,對於企業級應用來說,數據的可靠性和一緻性至關重要,我希望書中能夠提供一些關於如何設計健壯的數據庫Schema、如何進行數據驗證,以及如何處理並發訪問等方麵的深入指導。這本書的標題讓我感覺它能成為我的得力助手,解決我在實際開發中遇到的各種數據庫難題。
評分這本書拿在手裏沉甸甸的,感覺內容一定非常充實。我是一名經驗豐富的Android開發者,在多年的開發過程中,我接觸過多種數據庫技術,但始終覺得自己在Android原生數據庫開發方麵還有提升的空間。我一直對如何構建一個能夠輕鬆擴展、易於維護的數據庫架構感到好奇,尤其是在麵對日益復雜的業務需求時。我希望這本書能夠超越基礎的CRUD操作,深入探討一些高級的主題,比如如何設計更加靈活和可維護的數據庫Schema,如何利用Android Jetpack組件中的Room等ORM框架來簡化開發,以及如何處理跨平颱數據同步的問題。更重要的是,對於企業級應用,數據的可靠性和一緻性是生命綫。我希望書中能夠提供關於如何實現事務處理、如何進行數據校驗以及如何應對突發情況下的數據恢復策略等方麵的指導。這本書的標題讓我覺得它能夠為我帶來一些新的思路和啓發,幫助我突破瓶頸,實現技術的飛躍。
評分這本書的排版和字體給我一種非常舒適的閱讀體驗。我一直在尋找能夠深入講解Android數據庫優化和性能調優的書籍,因為在實際開發中,數據庫的性能直接影響到應用的響應速度和用戶體驗。很多時候,我們寫的代碼在開發環境中運行良好,但一旦數據量增大,或者用戶量增加,就會齣現各種性能瓶頸。我希望這本書能夠提供一些實用的技巧和工具,幫助我識彆和解決這些問題。比如,如何編寫高效的SQL查詢語句,如何使用索引優化查詢速度,如何進行數據庫的緩存策略,以及如何處理大數據量下的內存占用問題等等。此外,對於企業級應用,數據的安全和隱私也是非常重要的考量因素。我希望書中能夠涉及一些關於數據庫加密、權限管理以及數據備份恢復等方麵的知識,讓我能夠開發齣更安全、更可靠的應用。這本書的副標題“為企業開發數據驅動Android應用”讓我堅信它能提供我所需要的深度和廣度。
評分這本書的封麵設計真是簡潔大氣,一看就很有專業範兒。封麵的配色和字體選擇都恰到好處,傳遞齣一種可靠、實用的信息,讓人覺得這本書一定能解決我在Android數據庫開發中遇到的難題。我一直對如何在企業級應用中處理大量數據感到睏惑,特彆是如何確保數據的安全性和高效性。市麵上關於Android開發的資料很多,但真正深入講解數據庫方麵,並且能結閤企業級實際場景的書籍卻屈指可數。我希望這本書能提供一套係統性的解決方案,從基礎概念的梳理,到高級特性的講解,再到實際案例的演示,能夠讓我循序漸進地掌握。我尤其期待能夠看到關於數據同步、離綫存儲、以及如何處理大數據量時的性能優化等內容的詳細闡述,這些都是我們在實際項目中經常會遇到的挑戰。這本書的副標題“為企業開發數據驅動Android應用”更是點明瞭其核心價值,讓我對它充滿瞭期待。
評分這本書的裝幀非常精美,紙質也很好,非常適閤作為案頭必備的技術參考書。我一直在尋找一本能夠幫助我理解如何構建一個既高效又安全的企業級Android數據存儲解決方案的書籍。在實際的項目中,我們經常需要處理各種類型的數據,包括用戶配置、業務數據、日誌信息等等,而如何高效、安全地存儲和管理這些數據,是直接關係到應用穩定性和用戶體驗的關鍵。我希望這本書能夠係統地介紹Android中各種數據庫技術的優缺點,並提供一些關於如何根據具體業務場景選擇閤適數據庫的建議。同時,我特彆關注書中是否包含關於數據庫性能優化、數據遷移策略以及數據安全方麵的詳細講解。例如,如何設計高效的查詢語句,如何利用索引來加速數據檢索,如何處理高並發訪問下的數據一緻性問題,以及如何對敏感數據進行加密和訪問控製。這本書的副標題“為企業開發數據驅動Android應用”讓我看到瞭它在解決企業級實際問題上的潛力。
評分很喜歡但是感覺代碼有些欠缺。。。
評分一直用京東,速度快。^_^
評分學習一下,爭取做成好作品。
評分書的內容很好,紙質很好,價格便宜,非常有用,推薦購買。
評分非常漂亮非常漂亮非常漂亮非常漂亮非常漂亮非常漂亮非常漂亮非常漂亮非常漂亮非常漂亮非常漂亮非常漂亮
評分書還沒看,包裝不好或者說運輸不好,書破瞭
評分好,很好,性價比高,産品也不錯,值得購買,買瞭不虧
評分書還沒看,包裝不好或者說運輸不好,書破瞭
評分!d@dddddddghh發個發發發姑姑姑父飛飛飛
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 book.coffeedeals.club All Rights Reserved. 靜流書站 版權所有