第1章 Android開發初體驗
1.1 應用開發基礎
1.2 創建Android項目
1.3 Android Studio使用導航
1.4 用戶界麵設計
1.4.1 視圖層級結構
1.4.2 組件屬性
1.4.3 創建字符串資源
1.4.4 預覽界麵布局
1.5 從布局XML到視圖對象
1.6 組件的實際應用
1.6.1 引用組件
1.6.2 設置監聽器
1.7 創建提示消息
1.8 使用模擬器運行應用
1.9 深入學習:Android編譯過程
第2章 Android與MVC設計模式
2.1 創建新類
2.2 Android與MVC設計模式
2.3 更新視圖層
2.4 更新控製層
2.5 在設備上運行應用
2.6 添加圖標資源
2.7 關於挑戰練習
2.8 挑戰練習:為TextView添加監聽器
2.9 挑戰練習:添加後退按鈕
2.10 挑戰練習:從按鈕到圖標按鈕
第3章 Activity的生命周期
3.1 日誌跟蹤理解Activity生命周期
3.2 設備鏇轉與Activity生命周期
3.3 設備鏇轉前保存數據
3.4 再探Activity生命周期
3.5 深入學習:測試onSaveInstance-State(Bundle)方法
3.6 深入學習:日誌記錄的級彆與方法
第4章 Android應用的調試
4.1 異常與棧跟蹤
4.2 Android特有的調試工具
第5章 第二個activity
5.1 創建第二個activity
5.2 啓動activity
5.3 activity間的數據傳遞
5.4 activity的使用與管理
5.5 挑戰練習
第6章 Android SDK版本與兼容
6.1 Android SDK版本
6.2 Android編程與兼容性問題
6.3 使用Android開發者文檔
6.4 挑戰練習:報告編譯版本
第7章 UI fragment與fragment管理器
7.1 UI設計的靈活性需求
7.2 fragment的引入
7.3 著手開發CriminalIntent
7.4 托管UI fragment
7.5 創建UI fragment
7.6 添加UI fragment到Fragment-Manager
7.7 采用fragment的應用架構
7.8 深入學習:為什麼應優先使用支持庫版fragment
7.9 深入學習:使用操作係統內置版fragment
第8章 使用布局與組件創建用戶界麵
8.1 升級Crime類
8.2 更新布局
8.3 生成並使用組件
8.4 深入探討XML布局屬性
8.5 使用圖形布局工具
8.6 挑戰練習:日期格式化
第9章 使用RecyclerView顯示列錶
9.1 升級CriminalIntent應用的模型層
9.2 使用抽象activity托管fragment
9.3 RecyclerView、Adapter和ViewHolder
9.4 定製列錶項
9.5 響應點擊
9.6 深入學習:ListView和GridView
9.7 深入學習:單例
第10章 使用fragment argument
10.1 從fragment中啓動activity
10.2 fragment argument
10.3 刷新顯示列錶項
10.4 通過fragment獲取返迴結果
10.5 挑戰練習:實現高效的RecyclerView刷新
10.6 深入學習:為何要用fragment argument
第11章 使用ViewPager
11.1 創建CrimePagerActivity
11.2 FragmentStatePagerAdapter與FragmentPagerAdapter
11.3 深入學習:ViewPager的工作原理
11.4 深入學習:以代碼的方式創建布局
第12章 對話框
12.1 使用AppCompat兼容庫
12.2 創建DialogFragment
12.3 fragment間的數據傳遞
12.4 挑戰練習:更多對話框
12.5 挑戰練習:按設備類型展現DialogFragment
第13章 工具欄
13.1 AppCompat
13.2 工具欄菜單
13.3 實現層級式導航
13.4 可選菜單項
13.5 深入學習:工具欄與操作欄
13.6 挑戰練習:刪除crime記錄
13.7 挑戰練習:優化字符串資源顯示
13.8 挑戰練習:用於RecyclerView的空視圖
第14章 SQLite數據庫
14.1 定義Schema
14.2 創建初始數據庫
14.3 修改CrimeLab類
14.4 寫入數據庫
14.5 讀取數據庫
14.6 深入學習:數據庫高級主題介紹
14.7 深入學習:應用上下文
14.8 挑戰練習:刪除Crime記錄
第15章 隱式intent
15.1 添加按鈕組件
15.2 添加嫌疑人信息至模型層
15.3 使用格式化字符串
15.4 使用隱式intent
15.5 挑戰練習:ShareCompat
15.6 挑戰練習:又一個隱式intent
第16章 使用intent拍照
16.1 布置照片
16.2 外部存儲
16.3 使用相機intent
16.4 縮放和顯示位圖
16.5 功能聲明
16.6 深入學習:使用include標簽
16.7 挑戰練習:優化照片顯示
16.8 挑戰練習:優化縮略圖加載
第17章 Master-Detail用戶界麵
17.1 增加布局靈活性
17.2 Activity:fragment的托管者
17.3 深入學習:設備屏幕尺寸的確定
第18章 Assets
18.1 為何使用assets
18.2 創建BeatBox應用
18.3 導入assets
18.4 處理assets
18.5 使用Assets
18.6 訪問Assets
18.7 深入學習:什麼是non-assets
第19章 使用SoundPool播放音頻
19.1 創建SoundPool
19.2 加載音頻文件
19.3 播放音頻
19.4 釋放音頻
19.5 設備鏇轉和對象保存
19.6 深入學習:是否要保留
19.7 深入學習:設備鏇轉處理再探
第20章 樣式與主題
20.1 顔色資源
20.2 樣式
20.3 主題
20.4 添加主題顔色
20.5 覆蓋主題屬性
20.6 修改按鈕屬性
20.7 深入學習:樣式繼承拾遺
20.8 深入學習:引用主題屬性
20.9 挑戰練習:創建多版本主題
第21章 XML drawable
21.1 統一按鈕樣式
21.2 shape drawable
21.3 state list drawable
21.4 layer list drawable
21.5 深入學習:為什麼要用XML drawable
21.6 深入學習:使用9-patch圖像
21.7 深入學習:使用Mipmap圖像
第22章 深入學習intent和任務
22.1 創建NerdLauncher項目
22.2 解析隱式intent
22.3 在運行時創建顯式intent
22.4 任務與後退棧
22.5 使用NerdLauncher應用作為設備主屏幕
22.6 挑戰練習:應用圖標
22.7 深入學習:進程與任務
22.8 深入學習:並發文檔
第23章 HTTP與後颱任務
23.1 創建PhotoGallery應用
23.2 網絡連接基本
23.3 使用AsyncTask在後颱綫程上運行代碼
23.4 綫程與主綫程
23.5 從Flickr獲取JSON數據
23.6 從AsyncTask迴到主綫程
23.7 清理AsyncTask
23.8 深入學習:AsyncTask再探
23.9 深入學習:AsyncTask的替代方案
23.10 挑戰練習:Gson
23.11 挑戰練習:分頁
23.12 挑戰練習:動態調整網格列
第24章 Looper、Handler和HandlerThread
24.1 配置RecyclerView以顯示圖片
24.2 批量下載縮略圖
24.3 與主綫程通信
24.4 創建並啓動後颱綫程
24.5 Message與message handler
24.6 深入學習:AsyncTask與綫程
24.7 挑戰練習:預加載以及緩存
24.8 深入學習:解決圖片下載問題
第25章 搜索
25.1 搜索Flickr網站
25.2 使用SearchView
25.3 使用shared preferences實現輕量級數據存儲
25.4 優化應用
25.5 挑戰練習:深度優化PhotoGallery應用
第26章 後颱服務
26.1 創建IntentService
26.2 服務的作用
26.3 查找最新返迴結果
26.4 使用AlarmManager延遲運行服務
26.5 控製定時器
26.6 通知信息
26.7 挑戰練習:可穿戴設備上的通知
26.8 深入學習:服務細節內容
26.9 深入學習:JobScheduler和JobService
26.10 深入學習:Sync Adapter
26.11 挑戰練習:在Lollipop設備上使用JobService
第27章 broadcast intent
27.1 一般intent和broadcast intent
27.2 接收係統broadcast:重啓後喚醒
27.3 過濾前颱通知消息
27.4 receiver與長時運行任務
27.5 深入學習:本地事件
27.6 深入學習:檢測fragment的狀態
第28章 網頁瀏覽
28.1 最後一段Flickr數據
28.2 簡單方式:隱式intent
28.3 較難方式:使用WebView
28.4 處理WebView的設備鏇轉問題
28.5 深入學習:注入JavaScript對象
28.6 深入學習:KitKat的WebView
28.7 挑戰練習:使用後退鍵瀏覽曆史網頁
28.8 挑戰練習:非HTTP鏈接支持
第29章 定製視圖與觸摸事件
29.1 創建DragAndDraw項目
29.2 創建定製視圖
29.3 處理觸摸事件
29.4 onDraw(...)方法內的圖形繪製
29.5 挑戰練習:設備鏇轉問題
29.6 挑戰練習:鏇轉矩形框
第30章 屬性動畫
30.1 建立場景
30.2 簡單屬性動畫
30.3 播放多個動畫
30.4 深入學習:其他動畫API
30.5 挑戰練習
第31章 地理位置和Play服務
31.1 地理位置和定位類庫
31.2 創建Locatr項目
31.3 Play服務和模擬器
31.4 創建Locatr應用
31.5 配置Google Play服務
31.6 使用Google Play服務
31.7 基於地理位置的Flickr搜索
31.8 獲取定位數據
31.9 尋找並顯示圖片
31.10 挑戰練習:進度指示器
第32章 使用地圖
32.1 導入Play地圖服務庫
32.2 Android上的地圖服務
32.3 地圖API設置
32.4 創建地圖
32.5 獲取更多地理位置數據
32.6 使用地圖
32.7 深入學習:團隊開發和API key
第33章 material design
33.1 material surface
33.2 動畫工具
33.3 新的視圖組件
33.4 深入學習material design
第34章 編後語
34.1 終極挑戰
34.2 關於我們
34.3 緻謝
· · · · · · (
收起)