圖書信息
書名:Learning Android中文版(第2版)
著者:【美】Marko Gargenta(馬爾科.加爾根塔),Masumi Nakamura(【日】中村真澄)
譯者: 盧濤 李穎 譯
ISBN:978-7-121-23980-9
頁數:284
定價:59.00元
出版社:電子工業出版社
出版時間:2014年9月
開本:16開
內容簡介
《Learning Android中文版(第2版)》是一本介紹Android 開發的入門圖書,它循序漸進地介紹了如何利用Android 基本構件來創建用戶界面、存儲數據和執行連線網路等操作。《Learning Android中文版(第2版)》以親手實現一個類Twitter 的應用程式為主線,通過不斷為其添加功能展開講解。而這一學習過程積累出的代碼模式庫,可以運用於實際Android 應用程式開發。《Learning Android中文版(第2版)》內容包括:Android 平台概覽及其在移動生態系統中的地位、Android 設計架構、Android 開發環境配置、Android 構件、基本Android 的用戶界面構建、界面元素組織方法、構建執行後台任務與更新數據的服務等。
《Learning Android中文版(第2版)》適合想快速掌握Android 開發知識或想從其他開發平台轉向Android 的讀者閱讀。
編輯推薦
想為Android設備開發應用程式嗎?本書是助你入門的良方。作者是培訓了大機構和創業公司數百位開發人員的移動開發專家。這本優雅的導論給有面向對象開發經驗的程式設計師展示了如何利用Android的基本構件來創建用戶界面、存儲數據和執行連線網路等操作。
本書將一步步地引導你構建一個類似Twitter的應用程式,每章都添加一些新功能。你也將建立自己的代碼模式工具包,藉助它可以輕鬆地編寫任何Android應用程式。
■了解Android平台及其在移動生態系統中的地位。
■深入了解Android套件,包括其應用程式框架及APK應用程式包。
■學習活動、意圖、服務、內容提供器和廣播接收器等Android構件。
■創建基本的Android用戶界面,並利用視圖和布局來組織界面元素。
■在應用程式中構建一個執行後台進程來更新數據的服務。
內容提要
《Learning Android中文版(第2版)》是一本介紹Android 開發的入門圖書,它循序漸進地介紹了如何利用Android 基本構件來創建用戶界面、存儲數據和執行連線網路等操作。《Learning Android中文版(第2版)》以親手實現一個類Twitter 的應用程式為主線,通過不斷為其添加功能展開講解。而這一學習過程積累出的代碼模式庫,可以運用於實際Android 應用程式開發。《Learning Android中文版(第2版)》內容包括:Android 平台概覽及其在移動生態系統中的地位、Android 設計架構、Android 開發環境配置、Android 構件、基本Android 的用戶界面構建、界面元素組織方法、構建執行後台任務與更新數據的服務等。
《Learning Android中文版(第2版)》適合想快速掌握Android 開發知識或想從其他開發平台轉向Android 的讀者閱讀。
目錄
前言 ............................................................................. xv
第1 章 Android 概述 ..................................................... 1
1.1 Android 基本特點 ............................................................................................1
全面 .................................................................................................................1
開源平台 .........................................................................................................2
專為移動設備設計 ..........................................................................................2
1.2 歷史 .................................................................................................................3
谷歌的動機 .....................................................................................................3
Android 的兼容性 ............................................................................................4
開放手機聯盟 ..................................................................................................4
1.3 Android 的版本 ...............................................................................................5
1.4 Android 的風格 ...............................................................................................7
Android 開源項目 ............................................................................................7
製造商的載入項 ..............................................................................................7
1.5 總結 .................................................................................................................8
第2 章 Java 綜述 .......................................................... 9
2.1 注釋 ...............................................................................................................12
2.2 數據類型:基本數據類型和對象 ..................................................................13
2.3 修飾符 ...........................................................................................................14
2.4 數組 ...............................................................................................................15
2.5 運算符 ...........................................................................................................16
2.6 控制流語句 ...................................................................................................16
2.7 錯誤/ 異常處理 .............................................................................................19
2.8 複雜的示例 ...................................................................................................22
2.9 接口和繼承 ...................................................................................................26
2.10 集合 .............................................................................................................27
2.11 泛型 .............................................................................................................28
2.12 執行緒 .............................................................................................................28
2.13 總結 .............................................................................................................29
第3 章 Android 套件 .................................................... 31
3.1 套件概述 .......................................................................................................31
3.2 Linux .............................................................................................................31
Android 不等於Linux ...................................................................................33
3.3 本地層 ...........................................................................................................33
HAL...............................................................................................................34
本地庫 ...........................................................................................................34
本地守護進程 ................................................................................................35
本地工具 .......................................................................................................36
3.4 Dalvik ............................................................................................................36
Android 和Java .............................................................................................37
3.5 應用程式框架 ................................................................................................39
3.6 應用程式 .......................................................................................................40
Android 應用程式包(APK) .........................................................................40
應用程式簽名 ................................................................................................41
應用程式分發 ................................................................................................41
3.7 總結 ...............................................................................................................42
第4 章 安裝和開始使用Android 工具 ........................... 43
4.1 安裝Java 開發工具包 ...................................................................................43
4.2 安裝Android SDK ........................................................................................45
為工具設定PATH 環境變數 ..........................................................................45
安裝Eclipse ..................................................................................................46
Eclipse 工作區 ...............................................................................................46
設定Android 開發工具 .................................................................................46
4.3 Hello World! ..................................................................................................48
創建新項目 ...................................................................................................48
4.4 剖析一個Android 項目 .................................................................................51
Android 的清單檔案 ......................................................................................51
字元串資源 ...................................................................................................54
布局XML 代碼 .............................................................................................55
4.5 可繪製資源 ...................................................................................................56
R 檔案 ...........................................................................................................56
Java 原始碼 ...................................................................................................57
4.6 構建項目 .......................................................................................................58
4.7 Android 仿真器 .............................................................................................59
仿真器與真實手機對比 .................................................................................59
4.8 總結 ...............................................................................................................62
第5 章 主要構件 .......................................................... 63
5.1 一個實際的例子 ............................................................................................63
5.2 活動 ...............................................................................................................64
活動的生命周期 ............................................................................................64
5.3 意圖 ...............................................................................................................68
5.4 服務 ...............................................................................................................69
5.5 內容提供器 ...................................................................................................70
5.6 廣播接收器 ...................................................................................................72
5.7 應用程式上下文 ............................................................................................72
5.8 總結 ...............................................................................................................74
第6 章 Yamba 項目概況 .............................................. 75
6.1 Yamba 應用程式 ............................................................................................75
6.2 設計理念 .......................................................................................................79
6.3 項目設計 .......................................................................................................80
6.4 第1 部分:Android 用戶界面 .......................................................................81
6.5 第2 部分:意圖、活動條及其他 ..................................................................82
6.6 第3 部分:Android 服務 ..............................................................................82
6.7 第4 部分:內容提供器 .................................................................................83
6.8 第5 部分:列表和適配器 .............................................................................83
6.9 第6 部分:廣播接收器 .................................................................................84
6.10 第7 部分:應用程式控制項 ...........................................................................84
6.11 第8 部分:聯網和Web(HTTP) ................................................................85
6.12 第9 部分:動態壁紙和處理程式 ................................................................85
6.13 總結 .............................................................................................................85
第7 章 Android 的用戶界面 ......................................... 87
7.1 創建用戶界面的兩種方法 .............................................................................87
聲明式用戶界面 ............................................................................................87
編程式用戶界面 ............................................................................................88
各取所長 .......................................................................................................88
7.2 視圖和布局 ...................................................................................................88
LinearLayout(線性布局) .............................................................................89
TableLayout(表格布局) ..............................................................................90
FrameLayout(幀布局) .................................................................................91
RelativeLayout(相對布局) ..........................................................................92
7.3 啟動Yamba 項目 ...........................................................................................93
7.4 StatusActivity 布局 ........................................................................................97
重要的控制項屬性 .......................................................................................... 101
字元串資源 ................................................................................................. 103
7.5 StatusActivity Java 類 ................................................................................. 104
釋放XML 到Java ....................................................................................... 104
初始化對象 ................................................................................................. 106
處理用戶事件 .............................................................................................. 107
7.6 在Android 中記錄訊息日誌 ........................................................................ 108
LogCat ......................................................................................................... 108
編譯代碼並構建項目:保存檔案 ................................................................ 109
添加Twitter API 庫 ..................................................................................... 112
更新清單檔案以獲取Internet 許可權 ............................................................. 113
7.7 Android 中的執行緒機制 ................................................................................ 114
單執行緒 ......................................................................................................... 114
多執行緒的執行 .............................................................................................. 115
AsyncTask(異步任務) ............................................................................... 116
7.8 其他UI 事件 ............................................................................................... 119
7.9 備用資源 ..................................................................................................... 124
7.10 總結 ........................................................................................................... 127
第8 章 片段 .............................................................. 129
8.1 片段示例 ..................................................................................................... 129
8.2 片段的生命周期 .......................................................................................... 136
8.3 動態添加片段 .............................................................................................. 137
8.4 總結 ............................................................................................................. 139
第9 章 意圖、活動條及其他 ....................................... 141
9.1 首選項 ......................................................................................................... 141
首選項資源 ................................................................................................. 142
SettingsActivity ........................................................................................... 145
更新清單檔案 .............................................................................................. 147
9.2 活動條 ......................................................................................................... 148
創建一個空白主活動 ................................................................................... 149
選單資源 ..................................................................................................... 150
Android 的系統資源 .................................................................................... 152
載入選單 ..................................................................................................... 153
更新StatusActivity 來處理選單事件 ........................................................... 154
9.3 共享首選項及更新訊息片段 ....................................................................... 155
9.4 檔案系統簡介 .............................................................................................. 157
訪問檔案系統 .............................................................................................. 158
檔案系統分區 .............................................................................................. 158
系統分區 ..................................................................................................... 158
SD 卡分區 ................................................................................................... 158
用戶數據分區 .............................................................................................. 160
檔案系統安全 .............................................................................................. 161
9.5 總結 ............................................................................................................. 161
第10 章 服務 ............................................................ 163
10.1 示例服務:RefreshService ........................................................................ 164
創建RefreshService Java 類 ........................................................................ 164
介紹IntentService ....................................................................................... 166
更新清單檔案 .............................................................................................. 167
添加選單項 ................................................................................................. 168
更新選項選單處理 ...................................................................................... 168
測試服務 ..................................................................................................... 169
10.2 從Yamba 提取數據 ................................................................................... 169
測試服務 ..................................................................................................... 172
10.3 總結 ...............................................................................................172
第11 章 內容提供器 .................................................. 175
11.1 Android 上的資料庫 .................................................................................. 175
關於SQLite ................................................................................................. 176
DbHelper ..................................................................................................... 176
資料庫模式及其創建 ................................................................................... 177
四個主要操作 .............................................................................................. 177
游標 ............................................................................................................. 178
11.2 訊息契約類 ................................................................................................ 179
11.3 更新RefreshService .................................................................................. 181
測試服務 ..................................................................................................... 184
11.4 內容提供器 ................................................................................................ 186
11.5 創建一個內容提供器 ................................................................................. 187
定義URI ..................................................................................................... 187
獲取數據類型 .............................................................................................. 189
插入數據 ..................................................................................................... 191
更新數據 ..................................................................................................... 192
刪除數據 ..................................................................................................... 193
查詢數據 ..................................................................................................... 194
更新Android 清單檔案 ............................................................................... 199
更新RefreshService .................................................................................... 200
11.6 總結 ........................................................................................................... 201
第12 章 列表和適配器 ............................................... 203
12.1 主活動 ....................................................................................................... 203
12.2 基本的主活動 ............................................................................................ 203
12.3 時間表片段 ............................................................................................... 205
創建列表項布局 .......................................................................................... 206
12.4 關於適配器 ............................................................................................... 207
12.5 載入數據 ................................................................................................... 208
12.6 通過ViewBinder 定製邏輯 ....................................................................... 211
12.7 詳情視圖 ................................................................................................... 213
詳情片段 ..................................................................................................... 214
詳情活動 ..................................................................................................... 216
註冊到清單檔案 .......................................................................................... 217
主活動,橫向視圖 ...................................................................................... 217
更新時間表片段 .......................................................................................... 218
12.8 總結 ........................................................................................................... 221
第13 章 廣播接收器 .................................................. 223
13.1 關於廣播接收器 ........................................................................................ 223
13.2 開機接收器 ............................................................................................... 224
將BootReceiver 註冊到Android 清單檔案 ................................................. 224
測試開機接收器 .......................................................................................... 225
13.3 警報和系統服務 ........................................................................................ 225
13.4 廣播意圖 ................................................................................................... 227
通知接收器 ................................................................................................. 230
13.5 總結 ........................................................................................................... 231
第14 章 應用程式控制項 ............................................... 233
14.1 通過控制項使用內容提供器 ......................................................................... 233
實現YambaWidget 類 ................................................................................. 234
創建XML 布局 ........................................................................................... 236
創建AppWidgetProviderInfo 檔案 .............................................................. 238
更新清單檔案 .............................................................................................. 238
測試控制項 ..................................................................................................... 239
14.2 總結 ........................................................................................................... 239
第15 章 聯網和Web 概述 .......................................... 241
15.1 簡單的例子 ............................................................................................... 241
15.2 聯網基礎 ................................................................................................... 242
15.3 HTTP API .................................................................................................. 244
15.4 Apache HTTP 客戶端 ................................................................................ 245
15.5 HttpUrlConnection .................................................................................... 248
15.6 使用AsyncTask 和AsyncTaskLoader 在後台聯網 .................................... 251
15.7 總結 ........................................................................................................... 251
第16 章 互動與動畫:動態壁紙和處理程式 ................ 253
16.1 動態壁紙 ................................................................................................... 253
16.2 處理程式 ................................................................................................... 260
16.3 總結 ........................................................................................................... 262
索引 ........................................................................... 263
作者簡介
Marko Gargenta(馬爾科)是Twitter大學的校長,他負責在Android和其他開源技術方面對Twitter的工程師進行培訓。此前,他是Marakana(由Twitter收購)的創始人之一,也是Android訓練營課程的創造者。
Masumi Nakamura(中村真澄)是Placester公司工程副總裁和TechStars的教師,有超過15年的軟體行業經驗,他熟悉軟體的各方面,從移動開發到擴展大規模後台系統,而且他還在運營Paypal公司的一個數據科學團隊。
媒體評論
本書作者Marko Gargenta是一位經驗豐富的專業講師。現在他將Android訓練營課程的精華提煉成這本易讀的手冊。本書引導讀者快速邁出Android編程的第一步,然後大步深入介紹服務、意圖、廣播接收器等內容。
——Ed Burnette Hello, Android的作者
前言
本書源自多年積累的Marakana Android 培訓課程,其客群是多達幾千名的軟體開發人員,他們來自世界各地,遍布四大洲最大的移動設備公司。在教學過程中,我總結了哪些實踐可行,哪些實踐不可行。經過對開發的培訓教程的大量調整和提煉,最終把其中的精華編成本書。
甚至在Java 被命名為Java 之前,我就已經開始涉足其開發領域。一開始,我對嵌入式開發非常感興趣,用它對在日常生活中我們周邊的各種設備進行編程。因為Java 起初主要用於Web 應用程式開發,而在我過去十年的大多數經驗都在構建大型的企業系統。然後Android 問世了,而我再一次對構建非傳統的計算機軟體變得很興奮。我目前的興趣在於在可能甚至不像一個典型的電話設備上採用Android。在此更新的第2 版中,我的合著者真澄(Masumi),除Java 外,他還帶來了大量的移動開發經驗。
本書向任何了解Java(或類似的語言)的人講解如何開發一個相當複雜的Android 應用程式。我希望你發現這本書相當全面,而且基於實例的學習對你非常有啟發。Learning Android 一書的目標是讓你用Android 的方式去思考(think)。
內容提要
第1 章,Android 概述
介紹Android 和它的歷史。
第2 章,Java 綜述
提供對Java 的簡單綜述。
第3 章,Android 套件
從一個非常高的層次概述Android 作業系統及其所有的部件。
第4 章,安裝和開始使用Android 工具
幫助你設定Android 應用程式開發環境。
第5 章,主要構件
介紹開發人員用來組建一個應用程式的Android 組件。
第6 章,Yamba 項目概況
介紹貫穿全書的Yamba 應用程式,我們將構建它,並以它為例學習Android 的各種功能。
第7 章, Android 的用戶界面
介紹如何為應用程式構建用戶界面。
第8 章,片段
介紹Fragments API,藉助它在應用程式中分隔螢幕。
第9 章,意圖、活動條,及其他
介紹一些簡化應用程式開發者工作的作業系統功能。
第10 章,服務
介紹建立一個Android 的服務來處理後台任務。
第11 章,內容提供器
說明Android 框架對內置的SQLite 資料庫的支持,以及如何使用它在自己的應用程式中保存數據。
第12 章,列表和適配器
涵蓋Android 的一個重要功能,允許大型數據集被有效地連線到相對較小的螢幕。
第13 章,廣播接收器
介紹如何在Android 中使用發布- 訂閱機制為各種系統和用戶定義的訊息作出回應。
第14 章,應用程式控制項
展示如何設計一個內容提供器在應用程式之間共享數據,在這種情況下,使用它使我們的應用程式控制項在主螢幕上顯示數據。
第15 章,聯網和Web 概述
介紹網路連線。
第16 章,互動和動畫:動態壁紙和處理程式
提供更高級主題的體驗。
本書所使用的約定
以下是本書所使用的排版約定。
斜體(Italic)
表示新的術語、網址(URL)、電子郵件地址、檔案名稱和檔案擴展名。
等寬字型(Constant width)
用於程式清單及段落中引用的程式元素,如變數名和函式名、資料庫、數據類型、
環境變數、聲明和關鍵字。
等寬粗字型(Constant width bold)
表示命令或由用戶輸入的文本。
等寬斜體(Constant width italic)
表示應該由用戶提供的值來代替上下文決定的值的文本。
使用代碼示例
本書的目的是幫助你完成工作。一般來說,如果示例代碼是隨本書提供的,那么你可以在你的程式和文檔中使用它。你不需要與我們聯繫來獲得許可,除非你直接複製大部分的代碼。例如,編寫程式時使用了本書中的幾段程式代碼不需要許可。銷售或分發O'Reilly 書籍中例子的CD-ROM 是必須經過許可的。引用本書及本書中的示例代碼來回答問題不需要許可。將本書中大量的示例代碼整合到你的產品文檔中則需要獲得許可。
我們很感謝保留出處信息,但不強制。出處信息通常包括標題、作者、出版商和ISBN。例如:“Learning Android, Second Edition by Marko Gargenta and Masumi Nakamura (O’Reilly). Copyright 2014 Marko Gargenta and Masumi Nakamura, 978-1-449-31923-6.”
致謝
馬爾科· 加爾根塔(Marko Gargenta)
這本書是真正優秀的團隊合作的結果。首先,我要感謝我的合著者真澄和O’Reilly 的編輯Andy Oram。我知道,真澄寫作本書用的時間比我們的預期更長。Andy 的意見準確無誤且具有建設性。感謝你對該項目的堅持。
我要感謝我在Marakana(現在是Twitter 的一部分)的團隊:Aleksandar (Saša) Gargenta、Ken Jones、Blake Meike),你們從對Marakana 客戶和對Twitter 工程師的Android 教學中帶回了第一手反饋資料。這著實讓本書的方向截然不同。
最後,非常感謝我的妻子Lisa、女兒Kylie 和兒子Kenzo。你們是所有這些工作真正的靈感。
我愛你們!
中村真澄(Masumi Nakamura)
我想首先要感謝我的合著者Marko 能夠同意合作寫這個版本,這是一段震撼的旅程。也感謝O'Reilly 的工作人員:Andy Oram、Allyson MacDonald 和Rachel Roumeliotis,他們一直耐心而出色地與我們合作。此外,還要感謝Blake Meike 和Bill Schrickel,他們的技術意見和更正都是非常寶貴的。
還要感謝我的家人——真治(Shinji)、尤里(Yuri)、次郎(Jiro)、年壽(Toshihisa),他們一直非常鼓勵和支持我(甚至嘗試運行了一些我已經寫了幾年的例子)。
值得一提的是Jessamyn Hodge,他再次在整個過程中包容和支持了我。我從心底謝謝你。
最後,我還要感謝Android 社區和Google(谷歌)公司,沒有你們,這本書的有些內容就不會存在。