本書基于Android Studio,結(jié)合Android應用開發(fā)的一些具體案例,由淺入深、循序漸進地闡述Android應用開發(fā)的基礎(chǔ)知識、常用技巧和關(guān)鍵技術(shù)。對目前很流行的網(wǎng)絡請求框架OkHttp,以及Retrofit進行了較多篇幅的探討和說明,給出了下載文件和上傳文件的完整代碼(包括服務器端),有較強的實用性。對服務器端接口編程、Android異步處理技術(shù)、Fragment與Fragment之間的數(shù)據(jù)傳遞、Fragment與Activity的交互等市場急需的重要開發(fā)技能也進行了較詳盡的講述,以達到快速提升讀者編程水平和實際項目開發(fā)能力的目的。全書分基礎(chǔ)篇、提高篇、開發(fā)篇和拓展篇四部分,共15章;A(chǔ)篇(1~6章)包含開發(fā)環(huán)境搭建和Android應用、用戶界面設計、自定義View、Activity和Intent、后臺服務與廣播消息、數(shù)據(jù)存儲與訪問。提高篇(7~10章)包含Java并發(fā)編程、Fragment、Android的一些異步處理技術(shù)、Android網(wǎng)絡應用。開發(fā)篇(11~13章)包含手機客戶端解析JSON、Maven、服務器端接口編程。拓展篇(14~15章)包含MVP模式、Java設計模式。本書內(nèi)容翔實,實用性強,既可作為高校計算機專業(yè)學生學習Android應用開發(fā)的教材,也可作為軟件培訓機構(gòu)和編程人員的參考書。
韓冬,蘇州大學計算機學院副教授,同濟大學軟件專業(yè)碩士。出版圖書多部,隨書配套資源豐富,深受讀者喜愛。其多名學生在阿里、華為、網(wǎng)易、中科院電子所等單位任職。
目錄
第一部分 基礎(chǔ)篇
第1章 開發(fā)環(huán)境搭建和Android應用
1.1 Android簡介
1.1.1 Android傳奇
1.1.2 Android體系結(jié)構(gòu)
1.2 搭建Android應用開發(fā)環(huán)境
1.2.1 JDK的下載、安裝與配置
1.2.2 安裝Android Studio
1.3 第一個Android應用
1.3.1 創(chuàng)建MyHello項目
1.3.2 SDK Manager
1.3.3 AVD Manager
1.3.4 運行Android應用
1.4 Android項目結(jié)構(gòu)
1.4.1 Project工具窗口
1.4.2 工程目錄說明
1.4.3 app目錄結(jié)構(gòu)
1.4.4 項目全局build.gradle和模塊build.gradle
1.5 Android應用的基本組件
1.6 Activity的生命周期
1.7 Android日志工具Log
1.8 相關(guān)閱讀:Andy Rubin與Android
1.8.1 未來的夏娃
1.8.2 Andy Rubin黯然離場
1.8.3 Andy Rubin早年歲月
1.9 本章小結(jié)
習題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 項目實戰(zhàn):“移動商城”(一)
2.6.1 任務說明
2.6.2 項目講解
2.6.3 典型代碼及技術(shù)實現(xiàn)
2.7 相關(guān)閱讀:ButterKnife的使用
2.8 本章小結(jié)
習題2
第3章 自定義View
3.1 自定義View的分類
3.2 自定義View的構(gòu)造函數(shù)
3.3 View的繪制流程
3.3.1 Measure過程
3.3.2 Layout過程
3.3.3 Draw過程
3.4 自定義View示例
3.4.1 實現(xiàn)一個基本的自定義View
3.4.2 支持wrap_content屬性和padding屬性
3.4.3 自定義屬性
3.5 本章小結(jié)
習題3
第4章 Activity和Intent
4.1 使用Activity
4.1.1 Activity的配置
4.1.2 Activity的啟動和關(guān)閉
4.1.3 使用Bundle在Activity之間交換數(shù)據(jù)
4.1.4 調(diào)用另一個Activity并返回結(jié)果
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 本章小結(jié)
習題4
第5章 后臺服務與廣播消息
5.1 Service的應用
5.1.1 Service的啟動方式
5.1.2 Service的生命周期
5.1.3 跨進程調(diào)用Service
5.2 接收廣播消息
5.2.1 簡介
5.2.2 發(fā)送廣播
5.2.3 有序廣播
5.2.4 接收系統(tǒng)廣播消息
5.3 本章小結(jié)
習題5
第6章 數(shù)據(jù)存儲與訪問
6.1 SharedPreferences存儲
6.1.1 將數(shù)據(jù)存儲到SharedPreferences
6.1.2 從SharedPreferences中讀取數(shù)據(jù)
6.1.3 SharedPreferences舉例
6.2 SQLite數(shù)據(jù)庫
6.2.1 手動建庫
6.2.2 SQLiteDatabase
6.2.3 SQLiteOpenHelper
6.2.4 Cursor和ContentValues
6.2.5 代碼建庫
6.3 文件存儲
6.3.1 內(nèi)部存儲
6.3.2 外部存儲(讀/寫SD卡上的文件)
6.4 數(shù)據(jù)共享
6.4.1 ContentProvider
6.4.2 Uri
6.4.3 UriMatcher和ContentUris
6.4.4 ContentResolver
6.4.5 創(chuàng)建數(shù)據(jù)提供者
6.4.6 使用數(shù)據(jù)提供者
6.5 相關(guān)閱讀:Android系統(tǒng)中內(nèi)部存儲和外部存儲的若干疑問
6.6 本章小結(jié)
習題6
第二部分 提高篇
第7章 Java并發(fā)編程
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的構(gòu)造方法
7.3.2 編制ThreadPoolExecutor
7.4 Future模式
7.5 項目實戰(zhàn):“移動商城”(二)
7.5.1 任務說明
7.5.2 項目講解
7.5.3 典型代碼及技術(shù)要點
7.6 相關(guān)閱讀:Android的Looper與ThreadLocal
7.6.1 Android的Looper
7.6.2 Handler機制引出ThreadLocal
7.7 本章小結(jié)
習題7
第8章 Fragment
8.1 Fragment簡介
8.2 Fragment的生命周期
8.3 Fragment加入Activity
8.4 Fragment與Activity的交互
8.5 Fragment間的數(shù)據(jù)傳遞
8.6 ViewPager和PageAdapter
8.7 使用FragmentPageAdapter
8.8 本章小結(jié)
習題8
第9章 Android的一些異步處理技術(shù)
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 本章小結(jié)
習題9
第10章 Android網(wǎng)絡應用
10.1 使用HTTP協(xié)議訪問網(wǎng)絡
10.1.1 HTTP協(xié)議
10.1.2 使用HttpURLConnection
10.1.3 使用OkHttp
10.1.4 使用Retrofit
10.2 Socket通信
10.3 使用WebView顯示網(wǎng)頁
10.4 項目實戰(zhàn):查詢學生信息
10.4.1 任務說明
10.4.2 項目講解
10.4.3 典型代碼及技術(shù)要點
10.5 相關(guān)閱讀:Retrofit注解
10.6 本章小結(jié)
習題10
第三部分 開發(fā)篇
第11章 手機客戶端解析JSON
11.1 JSON簡介
11.2 服務器端生成JSON數(shù)據(jù)
11.3 在手機客戶端中解析JSON
11.4 項目實戰(zhàn):“移動商城”(三)
11.4.1 任務說明
11.4.2 項目講解
11.4.3 典型代碼及技術(shù)要點
11.5 本章小結(jié)
習題11
第12章 Maven
12.1 Maven簡介
12.2 Maven的安裝和配置
12.3 Maven的使用
12.4 坐標和依賴
12.5 構(gòu)建支持Servlet 3.0的MavenWeb應用
12.6 本章小結(jié)
習題12
第13章 服務器端接口編程
13.1 JNDI數(shù)據(jù)源配置
13.2 Log4J與SLF4J
13.3 項目實戰(zhàn):“移動商城”(四)
13.3.1 任務說明
13.3.2 項目講解
13.3.3 典型代碼及技術(shù)要點
13.4 MyBatis與Hibernate
13.5 本章小結(jié)
習題13
第四部分 拓展篇
第14章 MVP模式
14.1 MVP模式簡介
14.2 MVP模式與MVC模式
14.3 MVP模式的優(yōu)點和缺點
14.4 MVP模式的使用示例
14.5 本章小結(jié)
習題14
第15章 Java設計模式
15.1 設計模式的分類和設計原則
15.1.1 設計模式的分類
15.1.2 設計模式的設計原則
15.2 創(chuàng)建模式
15.2.1 工廠方法模式和抽象工廠方法模式
15.2.2 單例模式
15.2.3 建造者模式
15.2.4 原型模式
15.3 結(jié)構(gòu)模式
15.3.1 適配器模式和裝飾模式
15.3.2 代理模式和外觀模式
15.3.3 橋接模式和組合模式
15.3.4 享元模式
15.4 行為模式
15.4.1 策略模式和模板方法模式
15.4.2 觀察者模式、迭代器模式、責任鏈模式和命令模式
15.4.3 備忘錄模式和狀態(tài)模式
15.4.4 訪問者模式、中介者模式和解釋器模式
15.5 本章小結(jié)
習題15
附錄A Eclipse的編碼問題(包括ADT)
附錄B Eclipse自動部署項目到Tomcat的webapps目錄
附錄C ADB命令
參考文獻