Android項目開發實戰
-
【作 者】趙善龍 李旭東
【I S B N 】978-7-5170-6702-3
【責任編輯】張玉玲
【適用讀者群】本專通用
【出版時間】2018-10-15
【開 本】16開
【裝幀信息】平裝(光膜)
【版 次】第1版第1次印刷
【頁 數】272
【千字數】420
【印 張】17
【定 價】¥36
【叢 書】高等職業教育“十三五”規劃教材(移動互聯應用技術專業)
【備注信息】
簡介
本書特色
前言
章節列表
精彩閱讀
下載資源
相關圖書
本書規劃了Android從入門到進階過程中最重要的知識體系,將知識、技術與技巧充分滲透到多個獨立且完整的Android應用實戰項目中,帶領讀者一同參與到真正的企業開發流程,使讀者有條不紊地掌握完整的項目開發技術,循序漸進地具備企業級移動應用開發的能力。在程序實例講解方面,注重對實際動手能力的指導;在遵循項目開發過程的同時,將重要知識點和經驗技巧以“關鍵知識點解析”的形式呈現給讀者,這為初學者將學習與實踐結合提供了很好的指導。
本書可作為大學本科和高職高專有關課程的實訓教材,也可供具備一定手機開發經驗的開發者及Android開發愛好者參考和使用。
精編實踐案例,圖文并茂,幫你掌握開發技能
資深教學團隊,Android開發企業級導師傾情教授
適用群體廣泛,旨在培養具有企業移動應用開發能力的應用型人才
在移動編程技術中,Android將開發者使用最多的Java語言作為基礎語言,為眾多已掌握Java編程技術的開發者降低了學習門檻。同時,谷歌對Android進行了從組件到UI各層次較完善和豐富的封裝,為開發者提供了大量簡潔易用的API和基礎UI控件,這也在很大程度上降低了開發者的學習成本。然而擺在眾多開發者面前的問題是,很多開發者了解Android中Activity的生命周期各環節被調用的時機,但卻對生命周期各環節應該編寫哪部分代碼不得其法;很多開發者了解UI控件的使用方法,但卻在通過網絡獲取數據后刷新UI方面力不從心;很多開發者了解如何使用ListView展示列表數據,但當數據量稍微增大時程序就會出現卡頓甚至崩潰;很多開發者可以熟練地繪制布局并在模擬器上顯示完整,但一旦到了某些真機上,畫面卻慘不忍睹。事實上,如何綜合地運用Android開發技術進行規范的應用開發,如何使自己的開發技術與企業開發流程接軌,如何更好地優化應用,使應用適配更廣泛的機型而且程序更加健壯,的確是使許多通過自學成長的開發者深受困擾的問題。憑借多年的院校教學經驗和企業實踐經驗,我們深知Android初學者在學習和成長過程中的痛點。針對這些痛點,本書規劃了Android從入門到進階過程中最重要的知識體系,將知識、技術與技巧充分滲透到多個獨立且完整的Android應用實戰項目中,帶領讀者一同參與到真正的企業開發流程中,使讀者有條不紊地掌握完整的項目開發技術,循序漸進地具備企業級移動應用開發的能力。
在開始項目實戰之前,需要讀者對本書的知識結構體系圖進行初步了解,讀者應在掌握預備知識的基礎上對本書項目進行逐一學習。本書將著重對基礎組件、UI、線程與線程間通信、網絡通信、數據解析和數據存儲六大部分在項目中的應用進行講解。下面介紹每個項目重點訓練的知識點。
項目1主要針對項目構建、布局、基礎控件和按鈕的點擊事件進行實戰。
項目2主要針對應用的架構搭建、ListView的使用方法和技巧、自定義Adapter的方法進行實戰。
項目3主要針對本地文件存儲、自定義控件、onTouch事件處理及Canvas進行實戰。
項目4主要針對圖片處理及優化、文件讀寫、ContentProvider進行實戰。
項目5主要針對線程間通信、時鐘、Service進行實戰。
項目6主要針對線程間通信、HTTP、BroadcastReceiver、Service進行實戰。
項目7主要針對Fragment、XML解析、WebView進行實戰。
項目8主要針對HttpClient、JSON解析、網絡通信的封裝進行實戰。
項目9主要針對BroadcastReceiver、Service、AIDL和電話操作進行實戰。
項目10主要針對藍牙通信進行實戰。
項目11主要針對Socket、Handle和消息隊列進行實戰。
項目12主要針對百度地圖、定位、SQLiteOpenHelper和自動更新進行實戰。
本書由趙善龍、李旭東任主編,姜培育、李春寶任副主編,另外還要感謝周益丹編輯對本書提出了非常寶貴的意見,特別是書中內容的編排、難易程度的把握、案例的選取和文敘風格等。
由于編者水平有限,書中不妥之處在所難免,懇請讀者批評指正。
編 者
2018年6月
1.1 總體設計 1
1.1.1 總體分析 1
1.1.2 功能模塊框圖 2
1.1.3 系統流程圖 2
1.1.4 界面設計 2
1.2 詳細設計 4
1.2.1 模塊描述 4
1.2.2 系統包及其資源規劃 5
1.2.3 主要方法流程設計 5
1.3 代碼實現 7
1.3.1 顯示界面布局 7
1.3.2 控件設計實現 7
1.3.3 控件事件處理方法實現 12
1.3.4 數值計算方法實現 15
1.4 關鍵知識點解析 16
1.4.1 在程序中創建菜單 16
1.4.2 基礎界面布局 19
1.4.3 設置程序名稱和圖標 21
1.4.4 常用文本輸入控件及按鈕 21
1.4.5 為按鈕增加多種樣式—selector 26
1.4.6 多分辨率適配利器—LinearLayout 28
1.5 問題與討論 30
項目2 基于離線數據的天氣應用—
天氣預報(一) 31
2.1 總體設計 31
2.1.1 總體分析 31
2.1.2 功能模塊框圖 32
2.1.3 系統流程圖 32
2.1.4 界面設計 33
2.2 詳細設計 34
2.2.1 模塊描述 34
2.2.2 系統包及其資源規劃 36
2.2.3 主要方法流程設計 39
2.3 代碼實現 39
2.3.1 顯示界面布局 39
2.3.2 控件設計實現 39
2.3.3 主要代碼功能分析 43
2.4 關鍵知識點解析 49
2.4.1 ListView控件的用法 49
2.4.2 自定義適配器 52
2.4.3 GridView控件的用法 57
2.4.4 ViewPager控件的用法 57
2.4.5 ListView中存在按鈕時導致ListItem點擊無效的解決方案 60
2.5 問題與討論 60
項目3 天天愛讀書手機閱讀器 61
3.1 總體設計 61
3.1.1 功能模塊框圖 62
3.1.2 系統流程圖 62
3.1.3 界面設計 63
3.2 詳細設計 63
3.2.1 模塊描述 63
3.2.2 系統包及其資源規劃 64
3.2.3 主要方法流程設計 66
3.3 代碼實現 67
3.3.1 顯示界面布局 67
3.3.2 Touch事件方法實現 68
3.4 關鍵知識點解析 69
3.4.1 Android的Touch事件處理機制 69
3.4.2 掌握自定義控件 70
3.5 問題與討論 73
項目4 基于本地圖庫的圖片應用—幻彩手機相冊 74
4.1 總體設計 74
4.1.1 功能模塊框圖 74
4.1.2 系統流程圖 74
4.1.3 界面設計 76
4.2 詳細設計 76
4.2.1 模塊描述 76
4.2.2 系統包及其資源規劃 77
4.2.3 主要方法流程設計 80
4.3 代碼實現 81
4.3.1 顯示界面布局 81
4.3.2 讀取手機圖庫方法實現 82
4.3.3 圖片方向的判斷 83
4.3.4 圖片壓縮 84
4.3.5 使用Android提供的媒體播放器
(MediaPlayer) 85
4.4 關鍵知識點解析 87
4.4.1 圖片加載到內存OOM 87
4.4.2 大量圖片的緩存處理 89
4.5 問題與討論 90
項目5 學習監督器 91
5.1 總體設計 91
5.1.1 總體分析 91
5.1.2 功能模塊框圖 91
5.1.3 系統流程圖 92
5.1.4 界面設計 92
5.2 詳細設計 94
5.2.1 系統包及其資源規劃 94
5.2.2 時間設置Activity設計 94
5.2.3 后臺服務設計 95
5.3 代碼實現 96
5.3.1 顯示界面布局 96
5.3.2 構建一個服務 97
5.3.3 創建啟動服務 99
5.3.4 監控網絡變化 102
5.3.5 時間比較 103
5.3.6 創建綁定的服務 104
5.3.7 使用Activity作為Dialog 105
5.4 關鍵知識點解析 106
5.4.1 在前臺運行服務 106
5.4.2 服務的生命周期 106
5.4.3 避免系統回收服務 107
5.5 問題與討論 108
項目6 簡易網絡音樂播放器 109
6.1 總體設計 109
6.1.1 總體分析 109
6.1.2 功能模塊框圖 110
6.1.3 系統流程圖 110
6.1.4 界面設計 110
6.2 詳細設計 111
6.2.1 模塊描述 111
6.2.2 系統包及其資源規劃 113
6.2.3 主要方法流程設計 115
6.3 代碼實現 115
6.3.1 顯示界面布局 115
6.3.2 HttpURLConnection網絡通信方法
實現 116
6.3.3 XML數據解析方法實現 117
6.4 關鍵知識點解析 118
6.4.1 AsyncTask(異步任務)的使用 118
6.4.2 HttpClient、HttpURLConnection、okHttp和Volley的網絡通信對比 119
6.4.3 HttpClient和HttpURLConnection的使用方法 120
6.5 問題與討論 122
項目7 新聞客戶端 123
7.1 總體設計 123
7.1.1 功能模塊框圖 123
7.1.2 系統流程圖 124
7.1.3 界面設計 124
7.2 詳細設計 125
7.2.1 模塊描述 125
7.2.2 系統包及其資源規劃 126
7.2.3 主要方法流程設計 128
7.3 代碼實現 129
7.3.1 顯示界面布局 129
7.3.2 RSS內容讀取方法實現 130
7.3.3 利用WebView顯示HTML頁面 133
7.3.4 利用ViewHolder優化AdapterView 133
7.3.5 Fragment的簡單使用方法(FragmentStatePagerAdapter) 134
7.3.6 菜單的使用技巧(ActionBar) 135
7.4 關鍵知識點解析 135
7.4.1 用戶體驗 135
7.4.2 RSS閱讀器實現 136
7.4.3 深入理解XML數據格式 139
7.5 問題與討論 145
項目8 基于網絡通信的天氣應用—
天氣預報(二) 146
8.1 總體設計 146
8.1.1 總體分析 146
8.1.2 功能模塊框圖 147
8.1.3 系統流程圖 147
8.1.4 界面設計 147
8.2 詳細設計 148
8.2.1 模塊描述 148
8.2.2 系統包及其資源規劃 150
8.2.3 主要方法流程設計 152
8.3 代碼實現 153
8.3.1 顯示界面布局 153
8.3.2 控件設計實現 153
8.3.3 天氣預報接口方法實現 153
8.4 關鍵知識點解析 155
8.4.1. 在程序中使用天氣預報接口 155
8.4.2 采用MQTT協議實現Android推送 158
8.5 問題與討論 167
項目9 商務通訊錄 168
9.1 總體設計 168
9.1.1 總體分析 168
9.1.2 功能模塊框圖 168
9.1.3 系統流程圖 169
9.1.4 界面設計 169
9.2 詳細設計 170
9.2.1 模塊描述 170
9.2.2 系統包及其資源規劃 172
9.2.3 主要方法流程設計 173
9.3 代碼實現 175
9.3.1 顯示界面布局 175
9.3.2 控件設計實現 176
9.3.3 監聽手機來電服務 179
9.3.4 掛斷電話 180
9.4 關鍵知識點解析 182
9.4.1 進程通信—AIDL的使用 182
9.4.2 雙卡雙待手機如何獲取來電 186
9.5 問題與討論 187
項目10 藍牙打印機 188
10.1 總體設計 188
10.1.1 總體分析 188
10.1.2 功能模塊框圖 188
10.1.3 系統流程圖 189
10.1.4 界面設計 189
10.2 詳細設計 190
10.2.1 模塊描述 190
10.2.2 系統包及其資源規劃 192
10.2.3 主要方法流程設計 194
10.3 代碼實現 195
10.3.1 顯示界面布局 195
10.3.2 控件設計實現 197
10.3.3 獲取圖片分享 201
10.3.4 藍牙設備和設置可見時間 203
10.3.5 搜索藍牙設備 203
10.3.6 連接藍牙設備 204
10.3.7 藍牙通信 205
10.4 關鍵知識點解析 206
10.4.1 靜默開啟藍牙 206
10.4.2 藍牙自動配對 207
10.5 問題與討論 209
項目11 基于Socket的Bmop即時通信 210
11.1 總體設計 210
11.1.1 總體分析 210
11.1.2 功能模塊框圖 210
11.1.3 系統流程圖 211
11.1.4 界面設計 211
11.2 詳細設計 212
11.2.1 模塊描述 212
11.2.2 系統包及其資源規劃 213
11.2.3 主要方法流程設計 216
11.3 代碼實現 217
11.3.1 顯示界面布局 217
11.3.2 控件設計實現 219
11.3.3 Socket線程 227
11.3.4 待發消息隊列 228
11.3.5 消息接收 229
11.4 關鍵知識點解析 233
11.4.1 Socket定義 233
11.4.2 Socket與HTTP對比 233
11.4.3 使用UDP協議通信 233
11.5 問題與討論 234
項目12 易行打車 235
12.1 總體設計 235
12.1.1 總體分析 235
12.1.2 功能模塊框圖 235
12.1.3 系統流程圖 236
12.1.4 界面設計 236
12.2 詳細設計 237
12.2.1 模塊描述 237
12.2.2 系統包及其資源規劃 238
12.2.3 主要方法流程設計 241
12.3 代碼實現 242
12.3.1 顯示界面布局 242
12.3.2 控件設計實現 244
12.3.3 申請百度地圖API Key 250
12.3.4 初始化定位 251
12.3.5 定位監聽 251
12.3.6 初始化地圖View 252
12.3.7 顯示位置信息 252
12.3.8 獲取當前屏幕的經緯度范圍 253
12.3.9 增加多個標注并監聽 253
12.4 關鍵知識點解析 255
12.4.1 在線更新 255
12.4.2 Android的四種定位方式 260
12.5 問題與討論 262
- 輸水管線工程風險管理 [張勇 黨亥生 著]
- 民用航空飛機標準線路施工 [主編 王志敏 陳明]
- 不息的水脈—大運河講談錄 [趙珩 著]
- 實用運籌學 [主編 邢育紅 于晉臣]
- 三峽梯級電站水資源決策支持系統研究與開發 [姚華明 潘紅忠 湯正]
- 海南黎族民俗文化鑒賞 [龐國華 著]
- 石墨烯在太赫茲及中紅外頻段電磁器件設計中的應用 [李艷秀 莊華偉 著]
- 電子技術(第二版) [主編 覃愛娜 李飛]
- 辦公自動化高級應用 [陳萍 朱曉玉]
- 信息處理技術員考試32小時通關 [薛大龍]
- 電子產品設計案例教程(微課版)—基于嘉立創EDA(專業版) [王靜 莫志宏 陳學昌 丁紅]
- C程序設計實踐教程 [劉衛國]
- C程序設計(慕課版) [劉衛國]
- Web技術開發教程(基于.NET開源MVC框架) [王合闖 韓紅玲 王青正 陳海蕊]
- 商務英語翻譯教程(筆譯)(第四版) [主編 王軍平]
- 智慧零售技術與應用 [洪旭 著]
- 建設工程法規實務 [主編 余瀅]
- 商務秘書理論與實務(第三版) [主編 張同欽]
- 程序設計基礎實踐教程(C/C++語言版) [張桂芬 葛麗娜]
- C++案例項目精講 [主編 楊國興]
- 勞動爭議處理實務 [主編 王秀卿 羅靜]
- 工程數學 [主編 郭立娟 王海]
- 語音識別理論與實踐 [主編 莫宏偉]
- 信息系統項目管理師章節習題與考點特訓(第二版) [主編 薛大龍]
- 武術基礎教程 [主編 李代勇 謝志民]
- 計算機網絡實訓教程 [主編 張浩軍 趙玉娟]
- 畫法幾何與機械制圖習題集(多學時) [主編 趙軍]
- HCIA-Datacom認證題庫分類精講 [主 編 韓立剛]
- SwiftUI完全開發 [李智威 著]
- 網絡規劃設計師備考一本通 [夏杰 編著]