Android編程權威指南-(第2版) 版權信息
- ISBN:9787115422460
- 條形碼:9787115422460 ; 978-7-115-42246-0
- 裝幀:暫無
- 冊數:暫無
- 重量:暫無
- 所屬分類:>
Android編程權威指南-(第2版) 本書特色
big nerd ranch是美國一家專業的移動開發技術培訓機構。本書主要以其android訓練營教學課程為基礎,融合了幾位作者多年的心得體會,是一本完全面向實戰的android編程指南。全書共34章,詳細介紹了8個android 應用。通過這些精心設計的應用,讀者可掌握很多重要的理論知識和開發技巧,獲得前沿的開發經驗。如果你熟悉java語言,或者了解面向對象編程,那就立刻開始android編程之旅吧!
Android編程權威指南-(第2版) 內容簡介
權威——源自大名鼎鼎的big
nerd ranch訓練營培訓講義,該訓練營已經為微軟、谷歌、facebook等行業巨頭培養了眾多專業人才。
全面——涵蓋android開發所有**理論概念和技術知識點。
實用——8個android應用開發實戰項目,傳授*直接的開發經驗。
易懂——以循序漸進的方式精心編排章節,一步一步寫出android應用。
Android編程權威指南-(第2版) 目錄
第1章 android開發初體驗 11.1 應用開發基礎 11.2 創建android項目 21.3 android studio使用導航 61.4 用戶界面設計 71.4.1 視圖層級結構 101.4.2 組件屬性 111.4.3 創建字符串資源 121.4.4 預覽界面布局 121.5 從布局xml到視圖對象 131.6 組件的實際應用 171.6.1 引用組件 181.6.2 設置監聽器 181.7 創建提示消息 201.8 使用模擬器運行應用 231.9 深入學習:android編譯過程 25第2章 android與mvc設計模式 292.1 創建新類 292.2 android與mvc設計模式 322.3 更新視圖層 342.4 更新控制層 362.5 在設備上運行應用 402.5.1 連接設備 402.5.2 配置設備用于應用開發 412.6 添加圖標資源 422.6.1 向項目中添加資源 432.6.2 在xml文件中引用資源 452.7 關于挑戰練習 462.8 挑戰練習:為textview添加監聽器 462.9 挑戰練習:添加后退按鈕 462.10 挑戰練習:從按鈕到圖標按鈕 47第3章 activity的生命周期 493.1 日志跟蹤理解activity生命周期 503.1.1 輸出日志信息 503.1.2 使用logcat 523.2 設備旋轉與activity生命周期 553.3 設備旋轉前保存數據 593.4 再探activity生命周期 613.5 深入學習:測試onsaveinstance-state(bundle)方法 623.6 深入學習:日志記錄的級別與方法 64第4章 android應用的調試 654.1 異常與棧跟蹤 664.1.1 診斷應用異常 674.1.2 記錄棧跟蹤日志 684.1.3 設置斷點 694.1.4 使用異常斷點 724.2 android特有的調試工具 734.2.1 使用android lint 734.2.2 r類的問題 75第5章 第二個activity 765.1 創建第二個activity 775.1.1 創建新的activity 785.1.2 創建新的activity子類 815.1.3 在manifest配置文件中聲明activity 815.1.4 為quizactivity添加cheat按鈕 825.2 啟動activity 845.3 activity間的數據傳遞 865.3.1 使用intent extra 865.3.2 從子activity獲取返回結果 895.4 activity的使用與管理 945.5 挑戰練習 97第6章 android sdk版本與兼容 986.1 android sdk版本 986.2 android編程與兼容性問題 996.2.1 比較合理的版本 996.2.2 sdk*低版本 1016.2.3 sdk目標版本 1016.2.4 sdk編譯版本 1016.2.5 安全添加新版本api中的代碼 1016.3 使用android開發者文檔 1046.4 挑戰練習:報告編譯版本 106第7章 ui fragment與fragment管理器 1077.1 ui設計的靈活性需求 1087.2 fragment的引入 1087.3 著手開發criminalintent 1097.3.1 創建新項目 1127.3.2 fragment與支持庫 1137.3.3 在android studio中增加依賴關系 1147.3.4 創建crime類 1177.4 托管ui fragment 1187.4.1 fragment的生命周期 1187.4.2 托管的兩種方式 1197.4.3 定義容器視圖 1197.5 創建ui fragment 1207.5.1 定義crimefragment的布局 1217.5.2 創建crimefragment類 1227.6 添加ui fragment到fragment-manager 1257.6.1 fragment事務 1267.6.2 fragmentmanager與fragment生命周期 1297.7 采用fragment的應用架構 1307.8 深入學習:為什么應優先使用支持庫版fragment 1317.9 深入學習:使用操作系統內置版fragment 131第8章 使用布局與組件創建用戶界面 1328.1 升級crime類 1328.2 更新布局 1338.3 生成并使用組件 1358.4 深入探討xml布局屬性 1368.4.1 樣式、主題及主題屬性 1368.4.2 dp、sp以及屏幕像素密度 1378.4.3 android開發設計原則 1388.4.4 布局參數 1398.4.5 邊距與內邊距 1398.5 使用圖形布局工具 1408.5.1 創建水平模式布局 1418.5.2 添加新組件 1428.5.3 在屬性視圖中編輯組件屬性 1438.5.4 在框架視圖中重新組織組件 1448.5.5 更新子組件的布局參數 1458.5.6 android:layout_weight屬性的工作原理 1468.5.7 圖形布局工具使用總結 1478.5.8 組件id與多種布局 1488.6 挑戰練習:日期格式化 148第9章 使用recyclerview顯示列表 1499.1 升級criminalintent應用的模型層 1509.2 使用抽象activity托管fragment 1539.2.1 通用的fragment托管布局 1539.2.2 抽象activity類 1549.3 recyclerview、adapter和viewholder 1589.3.1 viewholder和adapter 1599.3.2 使用recyclerview 1619.3.3 實現adapter和viewholder 1639.4 定制列表項 1669.4.1 創建列表項布局 1669.4.2 使用定制列表項視圖 1689.5 響應點擊 1709.6 深入學習:listview和gridview 1719.7 深入學習:單例 171第10章 使用fragmentargument 17310.1 從fragment中啟動activity 17310.1.1 附加extra信息 17410.1.2 獲取extra信息 17510.1.3 使用crime數據更新crimefragment視圖 17610.1.4 直接獲取extra信息的缺點 17710.2 fragment argument 17710.2.1 附加argument給fragment 17810.2.2 獲取argument 17910.3 刷新顯示列表項 18010.4 通過fragment獲取返回結果 18210.5 挑戰練習:實現高效的recyclerview刷新 18310.6 深入學習:為何要用fragment argument 183第11章 使用viewpager 18511.1 創建crimepageractivity 18611.1.1 viewpager與pageradapter 18711.1.2 整合并配置使用crimepageractivity 18811.2 fragmentstatepageradapter與fragmentpageradapter 19011.3 深入學習:viewpager的工作原理 19211.4 深入學習:以代碼的方式創建布局 193第12章 對話框 19412.1 使用appcompat兼容庫 19512.2 創建dialogfragment 19612.2.1 顯示dialogfragment 19812.2.2 設置對話框的顯示內容 19912.3 fragment間的數據傳遞 20212.3.1 傳遞數據給datepicker- fragment 20312.3.2 返回數據給crime-fragment 20412.4 挑戰練習:更多對話框 21112.5 挑戰練習:按設備類型展現dialogfragment 212第13章 工具欄 21313.1 appcompat 21313.2 工具欄菜單 21613.2.1 在xml文件中定義菜單 21713.2.2 創建菜單 22113.2.3 響應菜單項選擇 22313.3 實現層級式導航 22513.4 可選菜單項 22613.4.1 切換菜單項標題 22713.4.2 “還有個問題” 22913.5 深入學習:工具欄與操作欄 23113.6 挑戰練習:刪除crime記錄 23113.7 挑戰練習:優化字符串資源顯示 23113.8 挑戰練習:用于recyclerview的空視圖 232第14章 sqlite數據庫 23314.1 定義schema 23314.2 創建初始數據庫 23414.3 修改crimelab類 23814.4 寫入數據庫 23914.4.1 使用contentvalues 23914.4.2 插入和更新記錄 24014.5 讀取數據庫 24214.5.1 使用cursorwrapper 24314.5.2 創建模型層對象 24414.6 深入學習:數據庫高級主題介紹 24714.7 深入學習:應用上下文 24814.8 挑戰練習:刪除crime記錄 248第15章 隱式intent 24915.1 添加按鈕組件 25015.2 添加嫌疑人信息至模型層 25215.3 使用格式化字符串 25415.4 使用隱式intent 25515.4.1 隱式intent的組成 25515.4.2 發送消息 25615.4.3 獲取聯系人信息 25915.4.4 檢查可響應任務的activity 26315.5 挑戰練習:sharecompat 26515.6 挑戰練習:又一個隱式intent 265第16章 使用intent拍照 26616.1 布置照片 26616.2 外部存儲 26916.3 使用相機intent 27216.3.1 外部存儲使用權限 27216.3.2 觸發拍照 27316.4 縮放和顯示位圖 27416.5 功能聲明 27716.6 深入學習:使用include標簽 27816.7 挑戰練習:優化照片顯示 27816.8 挑戰練習:優化縮略圖加載 279第17章 master-detail用戶界面 28017.1 增加布局靈活性 28117.1.1 修改singlefragment- activity 28217.1.2 創建包含兩個fragment容器的布局 28317.1.3 使用別名資源 28417.1.4 創建平板設備專用可選資源 28517.2 activity:fragment的托管者 28617.3 深入學習:設備屏幕尺寸的確定 295第18章 assets 29718.1 為何使用assets 29718.2 創建beatbox應用 29818.3 導入assets 30118.4 處理assets 30318.5 使用assets 30518.6 訪問assets 30818.7 深入學習:什么是non-assets 308第19章 使用soundpool播放音頻 30919.1 創建soundpool 30919.2 加載音頻文件 31019.3 播放音頻 31119.4 釋放音頻 31319.5 設備旋轉和對象保存 31419.5.1 保留fragment 31519.5.2 旋轉和已保留fragment 31619.6 深入學習:是否要保留 31819.7 深入學習:設備旋轉處理再探 318第20章 樣式與主題 32120.1 顏色資源 32120.2 樣式 32220.3 主題 32420.4 添加主題顏色 32720.5 覆蓋主題屬性 32820.6 修改按鈕屬性 33220.7 深入學習:樣式繼承拾遺 33420.8 深入學習:引用主題屬性 33520.9 挑戰練習:創建多版本主題 335第21章 xml drawable 33621.1 統一按鈕樣式 33721.2 shape drawable 33821.3 state list drawable 34021.4 layer list drawable 34121.5 深入學習:為什么要用xml drawable 34221.6 深入學習:使用9-patch圖像 34321.7 深入學習:使用mipmap圖像 347第22章 深入學習intent和任務 34822.1 創建nerdlauncher項目 34822.2 解析隱式intent 35122.3 在運行時創建顯式intent 35522.4 任務與后退棧 35722.4.1 在任務間切換 35722.4.2 啟動新任務 35822.5 使用nerdlauncher應用作為設備主屏幕 36122.6 挑戰練習:應用圖標 36222.7 深入學習:進程與任務 36222.8 深入學習:并發文檔 364第23章 http與后臺任務 36723.1 創建photogallery應用 36823.2 網絡連接基本 37123.3 使用asynctask在后臺線程上運行代碼 37323.4 線程與主線程 37423.5 從flickr獲取json數據 37623.6 從asynctask回到主線程 38323.7 清理asynctask 38623.8 深入學習:asynctask再探 38723.9 深入學習:asynctask的替代方案 38823.10 挑戰練習:gson 38823.11 挑戰練習:分頁 38823.12 挑戰練習:動態調整網格列 389第24章 looper、handler和handlerthread 39024.1 配置recyclerview以顯示圖片 39024.2 批量下載縮略圖 39324.3 與主線程通信 39324.4 創建并啟動后臺線程 39424.5 message與message handler 39624.5.1 消息的剖析 39724.5.2 handler的剖析 39724.5.3 使用handler 39824.5.4 傳遞handler 40224.6 深入學習:asynctask與線程 40724.7 挑戰練習:預加載以及緩存 40724.8 深入學習:解決圖片下載問題 408第25章 搜索 40925.1 搜索flickr網站 41025.2 使用searchview 41425.3 使用shared preferences實現輕量級數據存儲 41925.4 優化應用 42225.5 挑戰練習:深度優化photogallery應用 423第26章 后臺服務 42426.1 創建intentservice 42426.2 服務的作用 42726.3 查找*新返回結果 42826.4 使用alarmmanager延遲運行服務 43026.4.1 合理控制服務啟動的頻度 43226.4.2 pendingintent 43326.4.3 使用pendingintent管理定時器 43426.5 控制定時器 43426.6 通知信息 43726.7 挑戰練習:可穿戴設備上的通知 43926.8 深入學習:服務細節內容 44026.8.1 服務的能與不能 44026.8.2 服務的生命周期 44026.8.3 non-sticky服務 44026.8.4 sticky服務 44126.8.5 綁定服務 44126.9 深入學習:jobscheduler和jobservice 44226.10 深入學習:sync adapter 44526.11 挑戰練習:在lollipop設備上使用jobservice 446第27章 broadcast intent 44727.1 一般intent和broadcast intent 44727.2 接收系統broadcast:重啟后喚醒 44827.2.1 standalone receiver 44827.2.2 使用receiver 45027.3 過濾前臺通知消息 45227.3.1 發送broadcast intent 45227.3.2 動態broadcast receiver 45327.3.3 使用私有權限 45527.3.4 使用有序broadcast 45827.4 receiver與長時運行任務 46227.5 深入學習:本地事件 46227.5.1 使用eventbus 46327.5.2 使用rxjava 46327.6 深入學習:檢測fragment的狀態 464第28章 網頁瀏覽 46628.1 *后一段flickr數據 46628.2 簡單方式:隱式intent 46928.3 較難方式:使用webview 47028.4 處理webview的設備旋轉問題 47628.5 深入學習:注入javascript對象 47728.6 深入學習:kitkat的webview 47828.7 挑戰練習:使用后退鍵瀏覽歷史網頁 47828.8 挑戰練習:非http鏈接支持 479第29章 定制視圖與觸摸事件 48029.1 創建draganddraw項目 48029.1.1 創建draganddraw-activity 48129.1.2 創建draganddraw-fragment 48129.2 創建定制視圖 48229.3 處理觸摸事件 48429.4 ondraw(...)方法內的圖形繪制 48829.5 挑戰練習:設備旋轉問題 49029.6 挑戰練習:旋轉矩形框 490第30章 屬性動畫 49230.1 建立場景 49230.2 簡單屬性動畫 49530.2.1 視圖屬性轉換 49830.2.2 使用不同的interpolator 50030.2.3 色彩漸變 50030.3 播放多個動畫 50230.4 深入學習:其他動畫api 50430.4.1 傳統動畫工具 50430.4.2 轉場 50430.5 挑戰練習 504第31章 地理位置和play服務 50531.1 地理位置和定位類庫 50531.2 創建locatr項目 50631.3 play服務和模擬器 50731.4 創建locatr應用 51031.5 配置google play服務 51231.6 使用google play服務 51431.7 基于地理位置的flickr搜索 51631.8 獲取定位數據 51731.9 尋找并顯示圖片 51931.10 挑戰練習:進度指示器 521第32章 使用地圖 52232.1 導入play地圖服務庫 52232.2 android上的地圖服務 52232.3 地圖api設置 52332.4 創建地圖 52532.5 獲取更多地理位置數據 52632.6 使用地圖 52932.7 深入學習:團隊開發和api key 534第33章 material design 53633.1 material surface 53633.1.1 elevation和z值 53833.1.2 state list animator 53933.2 動畫工具 54033.2.1 circular reveal 54133.2.2 shared element transition 54233.3 新的視圖組件 54533.3.1 card 54533.3.2 floating action button 54733.3.3 snackbar 54833.4 深入學習material design 549第34章 編后語 55034.1 終極挑戰 55034.2 關于我們 55134.3 致謝 551
展開全部
Android編程權威指南-(第2版) 相關資料
“對我們來說,這是一本非常全面的培訓教材,它已使我們公司數百名工程師掌握了構建android應用的訣竅。另外,對想要提升android開發技能的人,這本書同樣也有很大幫助。”——mike shaver,facebook通信工程主管
“不管你是剛剛邁進android開發的大門,還是準備掌握更多高級開發技術,本書都非常值得看。其完整的內容體系、清晰的組織結構以及輕松的講述風格,都讓人過目不忘。”——james steele,《android開發秘籍》作者
“整本書的內容編排非常人性化!每個例程都從一個簡單的activity開始,一步一步地往里面添加新的功能,每一步都講解得細致入微,然后在讀者的面前,慢慢變得強大起來。可以說,每個例程都是從開發者的角度開始,遵循一套科學的開發流程,最后變成一個功能強大的應用程序。與此同時,需要掌握的開發技巧也就融合進去了。”——亞馬遜讀者評論
“知識點講解得很全面,通過實際示例練習逐步上手。章節末尾的挑戰練習和深入學習非常到位,遇到自己暫時無法解決的問題也可以去官網論壇上同其他讀者交流討論。讀完此書后,我的android應用開發技能有了很大提高。” ——亞馬遜讀者評論
“每一章都是實打實的例子,由小到大、由淺入深,順序安排得很貼心,讓人學得很舒服,是迄今為止看到過的最好的教程。難能可貴的一點是,每個例子的代碼規范都很棒。”——亞馬遜讀者評論
Android編程權威指南-(第2版) 作者簡介
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會為家人烹調美食、練習瑜伽或學習一些新知識。