內容簡介
本書基於Android Studio,結合Android套用開發的一些具體案例,由淺入深、循序漸進地闡述Android套用開發的基礎知識、常用技巧和關鍵技術。對目前很流行的網路請求框架OkHttp,以及Retrofit進行了較多篇幅的探討和說明,給出了下載檔案和上傳檔案的完整代碼(包括伺服器端),有較強的實用性。對伺服器端接口編程、Android異步處理技術、Fragment與Fragment之間的數據傳遞、Fragment與Activity的互動等市場急需的重要開發技能也進行了較詳盡的講述,以達到快速提升讀者編程水平和實際項目開發能力的目的。全書分基礎篇、提高篇、開發篇和拓展篇四部分,共15章。基礎篇(1~6章)包含開發環境搭建和Android套用、用戶界面設計、自定義View、Activity和Intent、後台服務與廣播訊息、數據存儲與訪問。提高篇(7~10章)包含Java並發編程、Fragment、Android的一些異步處理技術、Android網路套用。開發篇(11~13章)包含手機客戶端解析JSON、Maven、伺服器端接口編程。拓展篇(14~15章)包含MVP模式、Java設計模式。本書內容翔實,實用性強,既可作為高校計算機專業學生學習Android套用開發的教材,也可作為軟體培訓機構和編程人員的參考書。
目錄
第一部分 基礎篇
第1章 開發環境搭建和Android套用
1.1 Android簡介
1.1.1 Android傳奇
1.1.2 Android體系結構
1.2 搭建Android套用開發環境
1.2.1 JDK的下載、安裝與配置
1.2.2 安裝Android Studio
1.3 第一個Android套用
1.3.1 創建MyHello項目
1.3.2 SDK Manager
1.3.3 AVD Manager
1.3.4 運行Android套用
1.4 Android項目結構
1.4.1 Project工具視窗
1.4.2 工程說明
1.4.3 app結構
1.4.4 項目全局build.gradle和模組build.gradle
1.5 Android套用的基本組件
1.6 Activity的生命周期
1.7 Android日誌工具Log
1.8 相關閱讀:Andy Rubin與Android
1.8.1 未來的夏娃
1.8.2 Andy Rubin黯然離場
1.8.3 Andy Rubin早年歲月
1.9 本章小結
習題1
第2章 用戶界面設計
2.1 視圖組件與容器組件
2.2 控制UI界面
2.2.1 使用XML布局檔案控制UI界面
2.2.2 在Java代碼中控制UI界面
2.2.3 使用XML布局檔案和Java代碼混合控制UI界面
2.3 基本UI組件
2.3.1 TextView和EditText
2.3.2 Button、ImageButton、ImageView、RadioButton和CheckBox
2.3.3 ProgressBar、ScrollView和Toast
2.3.4 日期時間類組件
2.3.5 布局管理器
2.4 高級UI組件
2.4.1 列表類組件
2.4.2 對話框
2.4.3 選單
2.4.4 標籤欄
2.5 Handler訊息傳遞機制
2.6 項目實戰:“移動商城”(一)
2.6.1 任務說明
2.6.2 項目講解
2.6.3 典型代碼及技術實現
2.7 相關閱讀:ButterKnife的使用
2.8 本章小結
習題2
第3章 自定義View
3.1 自定義View的分類
3.2 自定義View的構造函式
3.3 View的繪製流程
3.3.1 Measure過程
3.3.2 Layout過程
3.3.3 Draw過程
3.4 自定義View示例
3.4.1 實現一個基本的自定義View
3.4.2 支持wrap_content屬性和padding屬性
3.4.3 自定義屬性
3.5 本章小結
習題3
第4章 Activity和Intent
4.1 使用Activity
4.1.1 Activity的配置
4.1.2 Activity的啟動和關閉
4.1.3 使用Bundle在Activity之間交換數據
4.1.4 調用另一個Activity並返回結果
4.2 Activity的四種啟動模式
4.2.1 standard 模式
4.2.2 singleTop模式
4.2.3 singleTask模式
4.2.4 singleInstance模式
4.3 Intent對象
4.3.1 顯式Intent和隱式Intent
4.3.2 Intent過濾器
4.3.3 Intent的屬性
4.4 本章小結
習題4
第5章 後台服務與廣播訊息
5.1 Service的套用
5.1.1 Service的啟動方式
5.1.2 Service的生命周期
5.1.3 跨進程調用Service
5.2 接收廣播訊息
5.2.1 簡介
5.2.2 傳送廣播
5.2.3 有序廣播
5.2.4 接收系統廣播訊息
5.3 本章小結
習題5
第6章 數據存儲與訪問
6.1 SharedPreferences存儲
6.1.1 將數據存儲到SharedPreferences
6.1.2 從SharedPreferences中讀取數據
6.1.3 SharedPreferences舉例
6.2 SQLite資料庫
6.2.1 手動建庫
6.2.2 SQLiteDatabase
6.2.3 SQLiteOpenHelper
6.2.4 Cursor和ContentValues
6.2.5 代碼建庫
6.3 檔案存儲
6.3.1 內部存儲
6.3.2 外部存儲(讀/寫SD卡上的檔案)
6.4 數據共享
6.4.1 ContentProvider
6.4.2 Uri
6.4.3 UriMatcher和ContentUris
6.4.4 ContentResolver
6.4.5 創建數據提供者
6.4.6 使用數據提供者
6.5 相關閱讀:Android系統中內部存儲和外部存儲的若干疑問
6.6 本章小結
習題6
第二部分 提高篇
第7章 Java並發編程
7.1 Java執行緒池簡介
7.2 Executor與ExecutorService
7.2.1 Executor
7.2.2 ExecutorService
7.2.3 常用執行緒池
7.3 ThreadPoolExecutor
7.3.1 ThreadPoolExecutor的構造方法
7.3.2 編制ThreadPoolExecutor
7.4 Future模式
7.5 項目實戰:“移動商城”(二)
7.5.1 任務說明
7.5.2 項目講解
7.5.3 典型代碼及技術要點
7.6 相關閱讀:Android的Looper與ThreadLocal
7.6.1 Android的Looper
7.6.2 Handler機制引出ThreadLocal
7.7 本章小結
習題7
第8章 Fragment
8.1 Fragment簡介
8.2 Fragment的生命周期
8.3 Fragment加入Activity
8.4 Fragment與Activity的互動
8.5 Fragment間的數據傳遞
8.6 ViewPager和PageAdapter
8.7 使用FragmentPageAdapter
8.8 本章小結
習題8
第9章 Android的一些異步處理技術
9.1 HandlerThread
9.1.1 HandlerThread的使用
9.1.2 HandlerThread的源碼分析
9.2 IntentService
9.2.1 IntentService的使用
9.2.2 IntentService的源碼分析
9.3 AsyncTask
9.3.1 AsyncTask的使用
9.3.2 AsyncTask的工作原理
9.4 本章小結
習題9
第10章 Android網路套用
10.1 使用HTTP協定訪問網路
10.1.1 HTTP協定
10.1.2 使用HttpURLConnection
10.1.3 使用OkHttp
10.1.4 使用Retrofit
10.2 Socket通信
10.3 使用WebView顯示網頁
10.4 項目實戰:查詢學生信息
10.4.1 任務說明
10.4.2 項目講解
10.4.3 典型代碼及技術要點
10.5 相關閱讀:Retrofit註解
10.6 本章小結
習題10
第三部分 開發篇
第11章 手機客戶端解析JSON
11.1 JSON簡介
11.2 伺服器端生成JSON數據
11.3 在手機客戶端中解析JSON
11.4 項目實戰:“移動商城”(三)
11.4.1 任務說明
11.4.2 項目講解
11.4.3 典型代碼及技術要點
11.5 本章小結
習題11
第12章 Maven
12.1 Maven簡介
12.2 Maven的安裝和配置
12.3 Maven的使用
12.4 坐標和依賴
12.5 構建支持Servlet 3.0的MavenWeb套用
12.6 本章小結
習題12
第13章 伺服器端接口編程
13.1 JNDI數據源配置
13.2 Log4J與SLF4J
13.3 項目實戰:“移動商城”(四)
13.3.1 任務說明
13.3.2 項目講解
13.3.3 典型代碼及技術要點
13.4 MyBatis與Hibernate
13.5 本章小結
習題13
第四部分 拓展篇
第14章 MVP模式
14.1 MVP模式簡介
14.2 MVP模式與MVC模式
14.3 MVP模式的優點和缺點
14.4 MVP模式的使用示例
14.5 本章小結
習題14
第15章 Java設計模式
15.1 設計模式的分類和設計原則
15.1.1 設計模式的分類
15.1.2 設計模式的設計原則
15.2 創建模式
15.2.1 工廠方法模式和抽象工廠方法模式
15.2.2 單例模式
15.2.3 建造者模式
15.2.4 原型模式
15.3 結構模式
15.3.1 適配器模式和裝飾模式
15.3.2 代理模式和外觀模式
15.3.3 橋接模式和組合模式
15.3.4 享元模式
15.4 行為模式
15.4.1 策略模式和模板方法模式
15.4.2 觀察者模式、疊代器模式、責任鏈模式和命令模式
15.4.3 備忘錄模式和狀態模式
15.4.4 訪問者模式、中介者模式和解釋器模式
15.5 本章小結
習題15
附錄A Eclipse的編碼問題(包括ADT)
附錄B Eclipse自動部署項目到Tomcat的webapps
附錄C ADB命令
參考文獻,
第一部分 基礎篇
第1章 開發環境搭建和Android套用
1.1 Android簡介
1.1.1 Android傳奇
1.1.2 Android體系結構
1.2 搭建Android套用開發環境
1.2.1 JDK的下載、安裝與配置
1.2.2 安裝Android Studio
1.3 第一個Android套用
1.3.1 創建MyHello項目
1.3.2 SDK Manager
1.3.3 AVD Manager
1.3.4 運行Android套用
1.4 Android項目結構
1.4.1 Project工具視窗
1.4.2 工程說明
1.4.3 app結構
1.4.4 項目全局build.gradle和模組build.gradle
1.5 Android套用的基本組件
1.6 Activity的生命周期
1.7 Android日誌工具Log
1.8 相關閱讀:Andy Rubin與Android
1.8.1 未來的夏娃
1.8.2 Andy Rubin黯然離場
1.8.3 Andy Rubin早年歲月
1.9 本章小結
習題1
第2章 用戶界面設計
2.1 視圖組件與容器組件
2.2 控制UI界面
2.2.1 使用XML布局檔案控制UI界面
2.2.2 在Java代碼中控制UI界面
2.2.3 使用XML布局檔案和Java代碼混合控制UI界面
2.3 基本UI組件
2.3.1 TextView和EditText
2.3.2 Button、ImageButton、ImageView、RadioButton和CheckBox
2.3.3 ProgressBar、ScrollView和Toast
2.3.4 日期時間類組件
2.3.5 布局管理器
2.4 高級UI組件
2.4.1 列表類組件
2.4.2 對話框
2.4.3 選單
2.4.4 標籤欄
2.5 Handler訊息傳遞機制
2.6 項目實戰:“移動商城”(一)
2.6.1 任務說明
2.6.2 項目講解
2.6.3 典型代碼及技術實現
2.7 相關閱讀:ButterKnife的使用
2.8 本章小結
習題2
第3章 自定義View
3.1 自定義View的分類
3.2 自定義View的構造函式
3.3 View的繪製流程
3.3.1 Measure過程
3.3.2 Layout過程
3.3.3 Draw過程
3.4 自定義View示例
3.4.1 實現一個基本的自定義View
3.4.2 支持wrap_content屬性和padding屬性
3.4.3 自定義屬性
3.5 本章小結
習題3
第4章 Activity和Intent
4.1 使用Activity
4.1.1 Activity的配置
4.1.2 Activity的啟動和關閉
4.1.3 使用Bundle在Activity之間交換數據
4.1.4 調用另一個Activity並返回結果
4.2 Activity的四種啟動模式
4.2.1 standard 模式
4.2.2 singleTop模式
4.2.3 singleTask模式
4.2.4 singleInstance模式
4.3 Intent對象
4.3.1 顯式Intent和隱式Intent
4.3.2 Intent過濾器
4.3.3 Intent的屬性
4.4 本章小結
習題4
第5章 後台服務與廣播訊息
5.1 Service的套用
5.1.1 Service的啟動方式
5.1.2 Service的生命周期
5.1.3 跨進程調用Service
5.2 接收廣播訊息
5.2.1 簡介
5.2.2 傳送廣播
5.2.3 有序廣播
5.2.4 接收系統廣播訊息
5.3 本章小結
習題5
第6章 數據存儲與訪問
6.1 SharedPreferences存儲
6.1.1 將數據存儲到SharedPreferences
6.1.2 從SharedPreferences中讀取數據
6.1.3 SharedPreferences舉例
6.2 SQLite資料庫
6.2.1 手動建庫
6.2.2 SQLiteDatabase
6.2.3 SQLiteOpenHelper
6.2.4 Cursor和ContentValues
6.2.5 代碼建庫
6.3 檔案存儲
6.3.1 內部存儲
6.3.2 外部存儲(讀/寫SD卡上的檔案)
6.4 數據共享
6.4.1 ContentProvider
6.4.2 Uri
6.4.3 UriMatcher和ContentUris
6.4.4 ContentResolver
6.4.5 創建數據提供者
6.4.6 使用數據提供者
6.5 相關閱讀:Android系統中內部存儲和外部存儲的若干疑問
6.6 本章小結
習題6
第二部分 提高篇
第7章 Java並發編程
7.1 Java執行緒池簡介
7.2 Executor與ExecutorService
7.2.1 Executor
7.2.2 ExecutorService
7.2.3 常用執行緒池
7.3 ThreadPoolExecutor
7.3.1 ThreadPoolExecutor的構造方法
7.3.2 編制ThreadPoolExecutor
7.4 Future模式
7.5 項目實戰:“移動商城”(二)
7.5.1 任務說明
7.5.2 項目講解
7.5.3 典型代碼及技術要點
7.6 相關閱讀:Android的Looper與ThreadLocal
7.6.1 Android的Looper
7.6.2 Handler機制引出ThreadLocal
7.7 本章小結
習題7
第8章 Fragment
8.1 Fragment簡介
8.2 Fragment的生命周期
8.3 Fragment加入Activity
8.4 Fragment與Activity的互動
8.5 Fragment間的數據傳遞
8.6 ViewPager和PageAdapter
8.7 使用FragmentPageAdapter
8.8 本章小結
習題8
第9章 Android的一些異步處理技術
9.1 HandlerThread
9.1.1 HandlerThread的使用
9.1.2 HandlerThread的源碼分析
9.2 IntentService
9.2.1 IntentService的使用
9.2.2 IntentService的源碼分析
9.3 AsyncTask
9.3.1 AsyncTask的使用
9.3.2 AsyncTask的工作原理
9.4 本章小結
習題9
第10章 Android網路套用
10.1 使用HTTP協定訪問網路
10.1.1 HTTP協定
10.1.2 使用HttpURLConnection
10.1.3 使用OkHttp
10.1.4 使用Retrofit
10.2 Socket通信
10.3 使用WebView顯示網頁
10.4 項目實戰:查詢學生信息
10.4.1 任務說明
10.4.2 項目講解
10.4.3 典型代碼及技術要點
10.5 相關閱讀:Retrofit註解
10.6 本章小結
習題10
第三部分 開發篇
第11章 手機客戶端解析JSON
11.1 JSON簡介
11.2 伺服器端生成JSON數據
11.3 在手機客戶端中解析JSON
11.4 項目實戰:“移動商城”(三)
11.4.1 任務說明
11.4.2 項目講解
11.4.3 典型代碼及技術要點
11.5 本章小結
習題11
第12章 Maven
12.1 Maven簡介
12.2 Maven的安裝和配置
12.3 Maven的使用
12.4 坐標和依賴
12.5 構建支持Servlet 3.0的MavenWeb套用
12.6 本章小結
習題12
第13章 伺服器端接口編程
13.1 JNDI數據源配置
13.2 Log4J與SLF4J
13.3 項目實戰:“移動商城”(四)
13.3.1 任務說明
13.3.2 項目講解
13.3.3 典型代碼及技術要點
13.4 MyBatis與Hibernate
13.5 本章小結
習題13
第四部分 拓展篇
第14章 MVP模式
14.1 MVP模式簡介
14.2 MVP模式與MVC模式
14.3 MVP模式的優點和缺點
14.4 MVP模式的使用示例
14.5 本章小結
習題14
第15章 Java設計模式
15.1 設計模式的分類和設計原則
15.1.1 設計模式的分類
15.1.2 設計模式的設計原則
15.2 創建模式
15.2.1 工廠方法模式和抽象工廠方法模式
15.2.2 單例模式
15.2.3 建造者模式
15.2.4 原型模式
15.3 結構模式
15.3.1 適配器模式和裝飾模式
15.3.2 代理模式和外觀模式
15.3.3 橋接模式和組合模式
15.3.4 享元模式
15.4 行為模式
15.4.1 策略模式和模板方法模式
15.4.2 觀察者模式、疊代器模式、責任鏈模式和命令模式
15.4.3 備忘錄模式和狀態模式
15.4.4 訪問者模式、中介者模式和解釋器模式
15.5 本章小結
習題15
附錄A Eclipse的編碼問題(包括ADT)
附錄B Eclipse自動部署項目到Tomcat的webapps