編輯推薦
威望——源自大名鼎鼎的Big Nerd Ranch訓練營培訓講義,該訓練營已經為微軟、榖歌、Facebook等行業巨頭培養瞭眾多專業人纔。
全麵——涵蓋Android開發所有必讀理論概念和技術知識點。
實用——8個Android應用開發實戰項目,傳授直接的開發經驗。
易懂——以循序漸進的方式精心編排章節,一步一步寫齣Android應用。
內容簡介
Big Nerd Ranch是美國一傢專業的移動開發技術培訓機構。本書主要以其Android訓練營教學課程為基礎,融閤瞭幾位作者多年的心得體會,是一本完全麵嚮實戰的Android編程指南。全書共34章,詳細介紹瞭8個Android 應用。通過這些精心設計的應用,讀者可掌握很多重要的理論知識和開發技巧,獲得前沿的開發經驗。
如果你熟悉Java語言,或者瞭解麵嚮對象編程,那就立刻開始Android編程之旅吧!
作者簡介
Bill Phillips
Big Nerd Ranch骨灰級講師。他在Big Nerd Ranch與人閤作開發瞭廣受好評的Android訓練營培訓課程,並為之編寫教材(包括本書第1版)。此後,Bill一直堅持撰寫博客、閱讀各類文學作品、作麯奏樂以及著書。
Chris Stewart
Big Nerd Ranch骨灰級Android訓練營講師、Android團隊主管。他緻力於不斷取得進步,精進技能。不坐在電腦前時,Chris喜歡遠足和旅行。
Brian Hardy
Big Nerd Ranch的iOS和Cocoa工程主管。他是Android訓練營的首批講師,與許多客戶閤作開發瞭眾多Android和iOS移動應用。除同開發團隊構建更齣色的軟件和研究自己新的項目之外,Brian喜歡陪伴朋友與傢人——通常是在燒烤架旁。
Kristin Marsicano
Big Nerd Ranch講師、Android開發者。她喜歡與他人分享知識,對學習、軟件開發以及二者的交集充滿熱情。在授課和開發應用之餘,Kristin會為傢人烹調美食、練習瑜伽或學習一些新知識。
王明發
畢業於華東理工大學。軟件開發及項目管理者,擁有近十年的軟件開發及項目管理經驗;譯者,另譯有《寫給大傢看的項目管理書(第3版)》。
目錄
第1章 Android開發初體驗 1
1.1 應用開發基礎 1
1.2 創建Android項目 2
1.3 Android Studio使用導航 6
1.4 用戶界麵設計 7
1.4.1 視圖層級結構 10
1.4.2 組件屬性 11
1.4.3 創建字符串資源 12
1.4.4 預覽界麵布局 12
1.5 從布局XML到視圖對象 13
1.6 組件的實際應用 17
1.6.1 引用組件 18
1.6.2 設置監聽器 18
1.7 創建提示消息 20
1.8 使用模擬器運行應用 23
1.9 深入學習:Android編譯過程 25
第2章 Android與MVC設計模式 29
2.1 創建新類 29
2.2 Android與MVC設計模式 32
2.3 更新視圖層 34
2.4 更新控製層 36
2.5 在設備上運行應用 40
2.5.1 連接設備 40
2.5.2 配置設備用於應用開發 41
2.6 添加圖標資源 42
2.6.1 嚮項目中添加資源 43
2.6.2 在XML文件中引用資源 45
2.7 關於挑戰練習 46
2.8 挑戰練習:為TextView添加監聽器 46
2.9 挑戰練習:添加後退按鈕 46
2.10 挑戰練習:從按鈕到圖標按鈕 47
第3章 Activity的生命周期 49
3.1 日誌跟蹤理解Activity生命周期 50
3.1.1 輸齣日誌信息 50
3.1.2 使用LogCat 52
3.2 設備鏇轉與Activity生命周期 55
3.3 設備鏇轉前保存數據 59
3.4 再探Activity生命周期 61
3.5 深入學習:測試onSaveInstanceState(Bundle)方法 62
3.6 深入學習:日誌記錄的級彆與方法 64
第4章 Android應用的調試 65
4.1 異常與棧跟蹤 66
4.1.1 診斷應用異常 67
4.1.2 記錄棧跟蹤日誌 68
4.1.3 設置斷點 69
4.1.4 使用異常斷點 72
4.2 Android特有的調試工具 73
4.2.1 使用Android Lint 73
4.2.2 R 類的問題 75
第5章 第二個activity 76
5.1 創建第二個activity 77
5.1.1 創建新的activity 78
5.1.2 創建新的activity 子類 81
5.1.3 在manifest配置文件中聲明activity 81
5.1.4 為QuizActivity添加Cheat按鈕 82
5.2 啓動activity 84
5.3 activity間的數據傳遞 86
5.3.1 使用intent extra 86
5.3.2 從子activity獲取返迴結果 89
5.4 activity的使用與管理 94
5.5 挑戰練習 97
第6章 Android SDK版本與兼容 98
6.1 Android SDK版本 98
6.2 Android編程與兼容性問題 99
6.2.1 比較閤理的版本 99
6.2.2 SDK最低版本 101
6.2.3 SDK目標版本 101
6.2.4 SDK編譯版本 101
6.2.5 安全添加新版本API中的代碼 101
6.3 使用Android開發者文檔 104
6.4 挑戰練習:報告編譯版本 106
第7章 UI fragment與fragment管理器 107
7.1 UI 設計的靈活性需求 108
7.2 fragment的引入 108
7.3 著手開發CriminalIntent 109
7.3.1 創建新項目 112
7.3.2 fragment與支持庫 113
7.3.3 在Android Studio中增加依賴關係 114
7.3.4 創建Crime類 117
7.4 托管UI fragment 118
7.4.1 fragment的生命周期 118
7.4.2 托管的兩種方式 119
7.4.3 定義容器視圖 119
7.5 創建UI fragment 120
7.5.1 定義CrimeFragment的布局 121
7.5.2 創建CrimeFragment類 122
7.6 添加UI fragment到FragmentManager 125
7.6.1 fragment事務 126
7.6.2 FragmentManager與fragment生命周期 129
7.7 采用fragment的應用架構 130
7.8 深入學習:為什麼應優先使用支持庫版fragment 131
7.9 深入學習:使用操作係統內置版fragment 131
第8章 使用布局與組件創建用戶界麵 132
8.2 更新布局 133
8.3 生成並使用組件 135
8.4 深入探討XML布局屬性 136
8.4.1 樣式、主題及主題屬性 136
8.4.2 dp、sp以及屏幕像素密度 137
8.4.3 Android開發設計原則 138
8.4.4 布局參數 139
8.4.5 邊距與內邊距 139
8.5 使用圖形布局工具 140
8.5.1 創建水平模式布局 141
8.5.2 添加新組件 142
8.5.3 在屬性視圖中編輯組件屬性 143
8.5.4 在框架視圖中重新組織組件 144
8.5.5 更新子組件的布局參數 145
8.5.6 android:layout_weight屬性的工作原理 146
8.5.7 圖形布局工具使用總結 147
8.5.8 組件ID與多種布局 148
8.6 挑戰練習:日期格式化 148
第9章 使用RecyclerView顯示列錶 150
9.2 使用抽象activity托管fragment 153
9.2.1 通用的fragment托管布局 153
9.2.2 抽象activity類 154
9.3 RecyclerView、Adapter和ViewHolder 158
9.3.1 ViewHolder和Adapter 159
9.3.2 使用RecyclerView 161
9.3.3 實現Adapter和ViewHolder 166
9.4.1 創建列錶項布局 166
9.4.2 使用定製列錶項視圖 168
9.5 響應點擊 170
9.6 深入學習:ListView和GridView 171
9.7 深入學習:單例 171
第10章 使用fragment argument 173
10.1 從fragment中啓動activity 173
10.1.1 附加extra信息 174
10.1.2 獲取extra信息 175
10.1.3 使用Crime數據更新CrimeFragment視圖 176
10.1.4 直接獲取extra信息的缺點 177
10.2 fragment argument 177
10.2.1 附加argument給fragment 178
10.2.2 獲取argument 179
10.3 刷新顯示列錶項 180
10.4 通過fragment獲取返迴結果 182
10.5 挑戰練習:實現高效的RecyclerView 刷新 183
10.6 深入學習:為何要用fragment argument 183
第11章 使用ViewPager 185
11.1 創建CrimePagerActivity 186
11.1.1 ViewPager與PagerAdapter 187
11.1.2 整閤並配置使用CrimePagerActivity 188
11.2 FragmentStatePagerAdapter與FragmentPagerAdapter 190
11.3 深入學習:ViewPager的工作原理 192
11.4 深入學習:以代碼的方式創建布局 193
第12章 對話框 194
12.1 使用AppCompat兼容庫 195
12.2 創建DialogFragment 196
12.2.1 顯示DialogFragment 198
12.2.2 設置對話框的顯示內容 199
12.3 fragment間的數據傳遞 202
12.3.1 傳遞數據給DatePickerFragment 203
12.3.2 返迴數據給CrimeFragment 204
12.4 挑戰練習:更多對話框 211
12.5 挑戰練習:按設備類型展現DialogFragment 212
第13章 工具欄 213
13.1 AppCompat 213
13.2 工具欄菜單 216
13.2.1 在XML文件中定義菜單....... 217
13.2.2 創建菜單 221
13.2.3 響應菜單項選擇 223
13.3 實現層級式導航 225
13.4 可選菜單項 226
13.4.1 切換菜單項標題 227
13.4.2 “還有個問題” 229
13.5 深入學習:工具欄與操作欄 231
13.6 挑戰練習:刪除crime記錄 231
13.7 挑戰練習:優化字符串資源顯示 231
13.8 挑戰練習:用於RecyclerView的空視圖 232
第14章 SQLite數據庫 233
14.1 定義Schema 233
14.2 創建初始數據庫 234
14.3 修改CrimeLab類 238
14.4 寫入數據庫 239
14.4.1 使用ContentValues 239
14.4.2 插入和更新記錄 240
14.5 讀取數據庫 242
14.5.1 使用CursorWrapper 243
14.5.2 創建模型層對象 244
14.6 深入學習:數據庫高級主題介紹 247
14.7 深入學習:應用上下文 248
14.8 挑戰練習:刪除Crime記錄 248
第15章 隱式intent 249
15.1 添加按鈕組件 250
15.2 添加嫌疑人信息至模型層 252
15.3 使用格式化字符串 254
15.4 使用隱式intent 255
15.4.1 隱式intent的組成 255
15.4.2 發送消息 256
15.4.3 獲取聯係人信息 259
15.4.4 檢查可響應任務的activity 263
15.5 挑戰練習:ShareCompat 265
15.6 挑戰練習:又一個隱式intent 265
第16章 使用intent拍照 266
16.1 布置照片 266
16.2 外部存儲 269
16.3 使用相機intent 272
16.3.1 外部存儲使用權限 272
16.3.2 觸發拍照 273
16.4 縮放和顯示位圖 274
16.5 功能聲明 277
16.6 深入學習:使用include標簽 278
16.7 挑戰練習:優化照片顯示 278
16.8 挑戰練習:優化縮略圖加載 279
第17章 Master-Detail用戶界麵 280
17.1 增加布局靈活性 281
17.1.1 修改SingleFragmentActivity 282
17.1.2 創建包含兩個fragment容器的布局 283
17.1.3 使用彆名資源 284
17.1.4 創建平闆設備專用可選資源 285
17.2 Activity:fragment的托管者 286
17.3 深入學習:設備屏幕尺寸的確定 295
第18章 Assets 297
18.1 為何使用assets 297
18.2 創建BeatBox 應用 298
18.3 導入assets 301
18.4 處理assets 303
18.5 使用Assets 305
18.6 訪問Assets 308
18.7 深入學習:什麼是non-assets 308
第19章 使用SoundPool播放音頻 309
19.1 創建SoundPool 309
19.2 加載音頻文件 310
19.3 播放音頻 311
19.4 釋放音頻 313
19.5 設備鏇轉和對象保存 314
19.5.1 保留fragment 315
19.5.2 鏇轉和已保留fragment 316
19.6 深入學習:是否要保留 318
19.7 深入學習:設備鏇轉處理再探 318
第20章 樣式與主題 321
20.1 顔色資源 321
20.2 樣式 322
20.3 主題 324
20.4 添加主題顔色 327
20.5 覆蓋主題屬性 328
20.6 修改按鈕屬性 332
20.7 深入學習:樣式繼承拾遺 334
20.8 深入學習:引用主題屬性 335
20.9 挑戰練習:創建多版本主題 335
第21章 XML drawable 336
21.1 統一按鈕樣式 337
21.2 shape drawable 338
21.3 state list drawable 340
21.4 layer list drawable 341
21.5 深入學習:為什麼要用XML drawable 342
21.6 深入學習:使用9-patch圖像 343
21.7 深入學習:使用Mipmap圖像 347
第22章 深入學習intent和任務 348
22.1 創建NerdLauncher項目 348
22.2 解析隱式intent 351
22.3 在運行時創建顯式intent 355
22.4 任務與後退棧 357
22.4.1 在任務間切換 357
22.4.2 啓動新任務 358
22.5 使用NerdLauncher應用作為設備主屏幕 361
22.6 挑戰練習:應用圖標 362
22.7 深入學習:進程與任務 362
22.8 深入學習:並發文檔 364
第23章 HTTP與後颱任務 367
23.1 創建PhotoGallery應用 368
23.2 網絡連接基本 371
23.3 使用AsyncTask在後颱綫程上運行代碼 373
23.4 綫程與主綫程 374
23.5 從Flickr獲取JSON數據 376
23.6 從AsyncTask迴到主綫程 383
23.7 清理AsyncTask 386
23.8 深入學習:AsyncTask再探 387
23.9 深入學習:AsyncTask的替代方案 388
23.10 挑戰練習:Gson 388
23.11 挑戰練習:分頁 388
23.12 挑戰練習:動態調整網格列 389
第24章 Looper、Handler和HandlerThread 390
24.1 配置RecyclerView以顯示圖片 390
24.2 批量下載縮略圖 393
24.3 與主綫程通信 393
24.4 創建並啓動後颱綫程 394
24.5 Message與message handler 396
24.5.1 消息的剖析 397
24.5.2 Handler的剖析 397
24.5.3 使用handler 398
24.5.4 傳遞handler 402
24.6 深入學習:AsyncTask與綫程 407
24.7 挑戰練習:預加載以及緩存 407
24.8 深入學習:解決圖片下載問題 408
第25章 搜索 409
25.1 搜索Flickr 網站 410
25.2 使用SearchView 414
25.3 使用shared preferences實現輕量級數據存儲 419
25.4 優化應用 422
25.5 挑戰練習:深度優化PhotoGallery應用 423
第26章 後颱服務 424
26.1 創建IntentService 424
26.2 服務的作用 427
26.3 查找最新返迴結果 428
26.4 使用AlarmManager延遲運行服務 430
26.4.1 閤理控製服務啓動的頻度 432
26.4.2 PendingIntent 433
26.4.3 使用PendingIntent管理定時器 434
26.5 控製定時器 434
26.6 通知信息 437
26.7 挑戰練習:可穿戴設備上的通知 439
26.8 深入學習:服務細節內容 440
26.8.1 服務的能與不能 440
Android編程權威指南 第2版 下載 mobi epub pdf txt 電子書