|
-- 會員 / 註冊 --
|
|
|
|
Android編程權威指南 ( 簡體 字) |
作者:[美] Bill Phillips Brian Hardy | 類別:1. -> 程式設計 -> 手機程式 -> Android |
譯者: |
出版社:人民郵電出版社 | 3dWoo書號: 38055 詢問書籍請說出此書號!【缺書】 【不接受訂購】 |
出版日:4/1/2014 |
頁數:523 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
【不接受訂購】 | ISBN:9787115346438 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介: Big Nerd Ranch是美國一家專業的移動開發技術培訓機構,《Android編程權威指南》主要以訓練營的5天教學課程為基礎,融合了兩位作者多年的心得體會,是一本完全面向實戰的Android 編程權威指南。《Android編程權威指南》共37章,詳細介紹了GeoQuiz、HelloMoon、DragAndDraw等8個Android應用。這些應用的難易程度不一,最復雜的CriminalIntent應用占用了13章的篇幅。通過這些精心設計的應用,讀者可掌握很多重要的理論知識和開發技巧,獲得最前沿的開發經驗。 如果你熟悉Java語言,或者了解對面向對象編程,那就立刻開始Android編程之旅吧! |
目錄:第1章 Android應用初體驗 1 1.1 應用基礎 2 1.2 創建Android項目 2 1.3 Eclipse工作區導航 5 1.4 用戶界面設計 6 1.4.1 視圖層級結構 9 1.4.2 組件屬性 10 1.4.3 創建字符串資源 11 1.4.4 預覽界面布局 12 1.5 從布局XML到視圖對象 13 1.6 組件的實際應用 15 1.6.1 類包組織導入 16 1.6.2 引用組件 16 1.6.3 設置監聽器 17 1.7 使用模擬器運行應用 21 1.8 Android編譯過程 22
第2章 Android與MVC設計模式 26 2.1 創建新類 26 2.2 Android與MVC設計模式 30 2.3 更新視圖層 31 2.4 更新控制層 33 2.5 在設備上運行應用 37 2.5.1 連接設備 37 2.5.2 配置設備用于應用開發 38 2.6 添加圖標資源 38 2.6.1 向項目中添加資源 39 2.6.2 在XML文件中引用資源 40 2.7 關于挑戰練習 41 2.8 挑戰練習一:為TextView添加監聽器 41 2.9 挑戰練習二:添加后退按鈕 42 2.10 挑戰練習三:從按鈕到圖標按鈕 42
第3章 Activity的生命周期 45 3.1 日志跟蹤理解Activity生命周期 46 3.1.1 輸出日志信息 46 3.1.2 使用 LogCat 48 3.2 設備旋轉與Activity生命周期 52 3.3 設備旋轉前保存數據 56 3.4 再探Activity生命周期 57 3.5 深入學習:測試onSaveInstanceState-(Bundle)方法 59 3.6 深入學習:日志記錄的級別與方法 60
第4章 Android應用的調試 62 4.1 DDMS應用調試透視圖 63 4.2 異常與棧跟蹤 64 4.2.1 診斷應用異常 65 4.2.2 記錄棧跟蹤日志 66 4.2.3 設置斷點 68 4.2.4 使用異常斷點 71 4.3 文件瀏覽器 72 4.4 Android特有的調試工具 73 4.4.1 使用Android Lint 73 4.4.2 R類的問題 74
第5章 第二個activity 75 5.1 創建第二個activity 76 5.1.1 創建新布局 77 5.1.2 創建新的activity子類 80 5.1.3 在manifest配置文件中聲明activity 81 5.1.4 為QuizActivity添加cheat按鈕 82 5.2 啟動activity 83 5.3 activity間的數據傳遞 85 5.3.1 使用intent extra 86 5.3.2 從子activity獲取返回結果 88 5.4 activity的使用與管理 92 5.5 挑戰練習 95
第6章 Android SDK版本與兼容 96 6.1 Android SDK版本 96 6.2 Android編程與兼容性問題 97 6.2.1 全新的系統版本——Honeycomb 97 6.2.2 SDK最低版本 99 6.2.3 SDK目標版本 99 6.2.4 SDK編譯版本 99 6.2.5 安全添加新版本API中的代碼 100 6.3 使用Android開發者文檔 103 6.4 挑戰練習:報告編譯版本 105
第7章 UI fragment與fragment管理器 106 7.1 UI設計的靈活性需求 107 7.2 fragment的引入 107 7.3 著手開發CriminalIntent 108 7.3.1 創建新項目 110 7.3.2 fragment與支持庫 112 7.3.3 創建Crime類 113 7.4 托管UI fragment 115 7.4.1 fragment的生命周期 115 7.4.2 托管的兩種方式 116 7.4.3 定義容器視圖 116 7.5 創建UI fragment 117 7.5.1 定義CrimeFragment的布局 118 7.5.2 創建CrimeFragment類 119 7.6 添加UI fragment到FragmentManager 122 7.6.1 fragment事務 123 7.6.2 FragmentManager與fragment生命周期 125 7.7 activity使用fragment的理由 127 7.8 深入學習:Honeycomb、ICS、Jelly Bean以及更高版本系統上的應用開發 127
第8章 使用布局與組件創建用戶界面 128 8.1 升級Crime類 128 8.2 更新布局 129 8.3 生成并使用組件 131 8.4 深入探討XML布局屬性 132 8.4.1 樣式、主題及主題屬性 132 8.4.2 dp、sp以及屏幕像素密度 133 8.4.3 Android開發設計原則 134 8.4.4 布局參數 135 8.4.5 邊距與內邊距 135 8.5 使用圖形布局工具 136 8.5.1 添加新組件 138 8.5.2 屬性視圖中編輯組件屬性 138 8.5.3 在框架視圖中重新組織組件 139 8.5.4 更新子組件的布局參數 140 8.5.5 android:layout_weight屬性的工作原理 141 8.5.6 圖形布局工具使用總結 142 8.5.7 組件ID與多種布局 142 8.6 挑戰練習:日期格式化 143
第9章 使用ListFragment顯示列表 144 9.1 更新CriminalIntent應用的模型層 145 9.2 創建ListFragment 147 9.3 使用抽象activity托管fragment 149 9.3.1 通用的fragment托管布局 149 9.3.2 抽象activity類 150 9.4 ListFragment、ListView及ArrayAdapter 154 9.4.1 創建ArrayAdapterT類實例 157 9.4.2 響應列表項的點擊事件 159 9.5 定制列表項 160 9.5.1 創建列表項布局 160 9.5.2 創建adapter子類 162
第10章 使用fragment argument 165 10.1 從fragment中啟動activity 165 10.1.1 附加extra信息 166 10.1.2 獲取extra信息 167 10.1.3 使用Crime數據更新CrimeFragment視圖 167 10.1.4 直接獲取extra信息方式的缺點 169 10.2 fragment argument 169 10.2.1 附加argument給fragment 169 10.2.2 獲取argument 170 10.3 重新加載顯示列表項 171 10.4 通過fragment獲取返回結果 172
第11章 使用ViewPager 174 11.1 創建CrimePagerActivity 175 11.1.1 以代碼的方式定義并產生布局 176 11.1.2 ViewPager與Pager-Adapter 177 11.1.3 整合配置并使用CrimePagerActivity 178 11.1.4 FragmentStatePager-Adapter與Fragment-PagerAdapter 180 11.2 深入學習:ViewPager的工作原理 182
第12章 對話框 184 12.1 創建DialogFragment 186 12.1.1 顯示DialogFragment 187 12.1.2 設置對話框的顯示內容 188 12.2 fragment間的數據傳遞 190 12.2.1 傳遞數據給DatePicker-Fragment 191 12.2.2 返回數據給CrimeFragment 193 12.3 挑戰練習:更多對話框 198
第13章 使用MediaPlayer播放音頻 199 13.1 添加資源 200 13.2 定義HelloMoonFragment布局文件 202 13.3 創建HelloMoonFragment 203 13.4 使用布局fragment 204 13.5 音頻播放 205 13.6 挑戰練習:暫停音頻播放 208 13.7 深入學習:播放視頻 208 13.8 挑戰練習:在HelloMoon應用中播放視頻 208
第14章 fragment的保留 209 14.1 保留fragment實例 209 14.2 設備旋轉與保留的fragment 210 14.3 保留的fragment:一切都完美了嗎 212 14.4 設備旋轉處理與onSaveInstance-State(Bundle)方法 212 14.5 深入學習:fragment引入前的設備旋轉問題 214
第15章 應用本地化 215 15.1 本地化資源 215 15.2 配置修飾符 216 15.2.1 可用資源優先級排定 217 15.2.2 多重配置修飾符 218 15.2.3 尋找最匹配的資源 219 15.3 更多資源使用原則及控制 220 15.3.1 資源命名 220 15.3.2 資源目錄結構 220 15.4 測試備選資源 221
第16章 操作欄 223 16.1 選項菜單 223 16.1.1 在XML文件中定義選項菜單 225 16.1.2 創建選項菜單 227 16.1.3 響應菜單項選擇 230 16.2 實現層級式導航 232 16.2.1 啟用應用圖標的導航功能 232 16.2.2 響應向上按鈕 233 16.3 可選菜單項 236 16.3.1 創建可選菜單XML文件 236 16.3.2 切換菜單項標題 237 16.3.3 “還有個問題” 238 16.4 挑戰練習:用于列表的空視圖 239
第17章 存儲與加載本地文件 241 17.1 CriminalIntent應用的數據存取 241 17.1.1 保存crime數據到JSON文件 242 17.1.2 從文件中讀取crime數據 246 17.2 挑戰練習:使用外部存儲 248 17.3 深入學習:Android文件系統與Java I/O 248
第18章 上下文菜單與上下文操作模式 250 18.1 定義上下文菜單資源 251 18.2 實施浮動上下文菜單 251 18.2.1 創建上下文菜單 251 18.2.2 為上下文菜單登記視圖 252 18.2.3 響應菜單項選擇 253 18.3 實施上下文操作模式 254 18.3.1 實現列表視圖的多選操作 255 18.3.2 列表視圖中的操作模式回調方法 256 18.3.3 改變已激活視圖的顯示背景 258 18.3.4 實現其他視圖的上下文操作模式 259 18.4 兼容性問題:回退還是復制 260 18.5 挑戰練習:在CrimeFragment視圖中刪除crime記錄 261 18.6 深入學習:ActionBarSherlock 261 18.7 挑戰練習:使用ActionBarSherlock 263 18.7.1 CriminalIntent應用中ABS的基本整合 264 18.7.2 ABS的深度整合 264 18.7.3 ABS的完全整合 265
第19章 相機I:取景器 266 19.1 創建Fragment布局 267 19.2 創建CrimeCameraFragment 269 19.3 創建CrimeCameraActivity 269 19.4 使用相機API 271 19.4.1 打開并釋放相機 271 19.4.2 SurfaceView、Surface-Holder與Surface 272 19.4.3 確定預覽界面大小 276 19.4.4 啟動CrimeCamera-Activity 277 19.5 深入學習:以命令行的方式運行activity 281
第20章 相機II:拍攝并處理照片 283 20.1 拍攝照片 283 20.1.1 實現相機回調方法 285 20.1.2 設置圖片尺寸大小 288 20.2 返回數據給CrimeFragment 288 20.2.1 以接收返回值的方式啟動CrimeCameraActivity 289 20.2.2 在CrimeCameraFragment中設置返回值 290 20.2.3 在CrimeFragment中獲取照片文件名 290 20.3 更新模型層 291 20.3.1 新增Photo類 292 20.3.2 為Crime添加photo屬性 293 20.3.3 設置photo屬性 293 20.4 更新CrimeFragment的視圖 294 20.4.1 添加ImageView組件 295 20.4.2 圖像處理 296 20.5 在DialogFragment中顯示大圖片 300 20.6 挑戰練習:Crime照片的顯示方向 303 20.7 挑戰練習:刪除照片 303 20.8 深入學習:Android代碼的廢棄處理 303
第21章 隱式intent 305 21.1 添加按鈕組件 306 21.2 添加嫌疑人信息至模型層 307 21.3 使用格式化字符串 308 21.4 使用隱式intent 309 21.4.1 典型隱式intent的組成 310 21.4.2 發送陋習報告 311 21.4.3 獲取聯系人信息 313 21.4.4 檢查可以響應的activity 316 21.5 挑戰練習:又一個隱式intent 317
第22章 Master-Detail用戶界面 318 22.1 增加布局靈活性 319 22.1.1 修改SingleFragment-Activity 320 22.1.2 創建包含兩個fragment容器的布局 320 22.1.3 使用別名資源 322 22.2 Activity:fragment的托管者 323 22.3 深入學習:設備屏幕尺寸的確定 331
第23章 深入學習intent和任務 333 23.1 創建NerdLauncher項目 333 23.2 解析隱式intent 334 23.3 在運行時創建顯式intent 337 23.4 任務與后退棧 338 23.5 使用NerdLauncher應用作為設備主屏幕 341 23.6 挑戰練習:應用圖標與任務重排 341 23.7 進程與任務 341
第24章 樣式與include標簽的使用 343 24.1 創建RemoteControl項目 344 24.1.1 編碼實現RemoteControl-Activity 344 24.1.2 創建RemoteControl-Fragment 345 24.2 使用樣式消除重復代碼 348 24.3 完善布局定義 350 24.4 深入學習:使用include與merge標簽 353 24.5 挑戰練習:樣式的繼承 354
第25章 XML Drawable與9-Patches 355 25.1 XML drawable 356 25.2 state list drawable 358 25.3 layer list與inset drawable 360 25.4 使用9-patch圖像 362
第26章 HTTP與后臺任務 368 26.1 創建PhotoGallery應用 369 26.2 網絡連接基本 372 26.3 使用AsyncTask在后臺線程上運行代碼 373 26.4 線程與主線程 375 26.5 獲取Flickr XML數據 377 26.6 從AsyncTask回到主線程 382 26.7 深入學習:再探AsyncTask 385 26.8 挑戰練習:分頁 386
第27章 Looper、Handler與HandlerThread 387 27.1 設置GridView以顯示圖片 387 27.2 批量下載縮略圖 390 27.3 與主線程通信 390 27.4 創建并啟動后臺線程 391 27.5 Message與message Handler 393 27.5.1 消息的剖析 393 27.5.2 Handler的剖析 393 27.5.3 使用handler 395 27.5.4 傳遞handler 397 27.6 深入學習:AsyncTask與Thread 401 27.7 挑戰練習:預加載以及緩存 401
第28章 搜索 402 28.1 搜索Flickr網站 402 28.2 搜索對話框 404 28.2.1 創建搜索界面 404 28.2.2 可搜索的activity 406 28.2.3 物理搜索鍵 408 28.2.4 搜索的工作原理 409 28.2.5 啟動模式與新的intent 410 28.2.6 使用shared preferences實現輕量級數據存儲 412 28.3 在Android 3.0以后版本的設備上使用SearchView 414 28.4 挑戰練習 416
第29章 后臺服務 417 29.1 創建IntentService 417 29.2 服務的作用 419 29.3 查找最新返回結果 421 29.4 使用AlarmManager延遲運行服務 422 29.4.1 PendingIntent 424 29.4.2 使用PendingIntent管理定時器 424 29.5 控制定時器 425 29.6 通知信息 428 29.7 深入學習:服務細節內容 429 29.7.1 服務的能與不能 430 29.7.2 服務的生命周期 430 29.7.3 non-sticky服務 430 29.7.4 sticky服務 431 29.7.5 綁定服務 431
第30章 broadcast Intent 433 30.1 隨設備重啟而重啟的定時器 433 30.1.1 配置文件中的broadcast receiver 434 30.1.2 如何使用receiver 435 30.2 過濾前臺通知消息 436 30.2.1 發送broadcast intent 437 30.2.2 動態broadcast receiver 437 30.2.3 使用私有權限 440 30.2.4 使用ordered broadcast接收結果 442 30.3 receiver與長時運行任務 446
第31章 網頁瀏覽 447 31.1 最后一段Flickr數據 447 31.2 簡單方式:使用隱式intent 448 31.3 較難方式:使用WebView 449 31.3.1 使用WebChromeClient優化WebView的顯示 453 31.3.2 處理WebView的設備旋轉問題 455 31.4 深入學習:注入JavaScript對象 456
第32章 定制視圖與觸摸事件 457 32.1 創建DragAndDraw項目 457 32.1.1 創建DragAndDraw-Activity 458 32.1.2 創建DragAndDraw-Fragment 459 32.2 創建定制視圖 460 32.3 處理觸摸事件 462 32.4 onDraw(...)方法內的圖形繪制 465 32.5 挑戰練習:設備旋轉問題 467
第33章 跟蹤設備的地理位置 468 33.1 啟動RunTracker項目 468 33.1.1 創建RunActivity 469 33.1.2 創建RunFragment 470 33.2 地理位置與LocationManager 472 33.3 接收定位數據更新broadcast 474 33.4 使用定位數據刷新UI顯示 475 33.5 快速定位:最近一次地理位置 479 33.6 在物理和虛擬設備上測試地理位置定位 480
第34章 使用SQLite本地數據庫 482 34.1 在數據庫中存儲旅程和地理位置信息 482 34.2 查詢數據庫中的旅程列表 488 34.3 使用CursorAdapter顯示旅程列表 490 34.4 創建新旅程 493 34.5 管理現有旅程 494 34.6 挑戰練習:識別當前跟蹤的旅程 500
第35章 使用Loader加載異步數據 501 35.1 Loader與LoaderManager 501 35.2 在RunTracker應用中使用Loader 502 35.3 加載旅程列表 503 35.4 加載單個旅程 506 35.5 加載旅程的最近一次地理位置 509
第36章 使用地圖 511 36.1 添加Maps API給RunTracker應用 511 36.1.1 使用物理設備測試地圖 511 36.1.2 安裝使用Google Play services SDK 511 36.1.3 獲取Google Maps API key 512 36.1.4 更新RunTracker應用的manifest配置文件 512 36.2 在地圖上顯示用戶的地理位置 513 36.3 顯示旅程路線 516 36.4 為旅程添加開始和結束地圖標注 520 36.5 挑戰練習:實時數據更新 521
第37章 編后語 522 37.1 終極挑戰 522 37.2 關于我們 523 37.3 致謝 523 |
序: |
|