産品特色
編輯推薦
《Android從入門到精通》,100000讀者共同選擇的圖書,長期雄踞各大書店、網店排行榜前列。本書在傳承經典的基礎上,對內容進行全麵擴充,大量補充典型案例,貼近實戰,幫助讀者迅速積纍開發經驗。
強大的編委會陣容,業界專傢傾力推薦
*中國軟件行業協會教育與培訓委員會 秘書長 邱欽倫
*微軟開發工具及平颱事業部 産品經理 鬍德民
*Sun亞洲全球化中心 技術總監 劉傑
*龍馬創新教育研究室 總裁 孔長徵
*河南省863軟件孵化器有限公司 總經理 翟為唐
*廣東拓思軟件科學園有限公司 副總經理 黃萬民
*西安863軟件孵化器有限公司 總經理 樓文曉
*鄭州大學信息工程學院 副院長 周清雷
*華大銳誌軟件人纔孵化基地 技術總監 微軟有價值專傢(MVP) 王豫翔
*NEC信息係統(中國)有限公司 開發部長 石少崢
*東忠集團 副總裁 李朝陽
*《程序員》雜誌、CSDN技術專傢 尹成
*51CTO.com 技術總監 陳德勇
*微軟有價值專傢(MVP) 楊雲
DVD光盤超值贈送
*11小時全程同步教學錄像,一綫教學和開發人員貼心講解,配閤圖書高效學習
*7小時HTML 5 + CSS + JavaScript前端開發實戰教學錄像,迅速積纍項目經驗
*精心甄選157個HTML+CSS+JavaScript前端開發實例代碼,全麵兼顧基礎入門與開發應用實際需求
*悉心匯集571個典型實戰開發模塊,移植改編,拿來就用
*係統總結184個Android開發過程中的常見問題、實用技巧及注意事項,急速提升開發效率
*全書提供85個典型範例、3個完整項目,在實戰中掌握Android開發;40個實戰測試及解析,舉一反三,掌握更透徹
*完整提供與圖書配套的教學用PPT課件,全麵結閤本書知識點設計思路,方便教學應用
*超值贈送Android Studio實戰電子書、CSS 3從入門到精通電子書及案例代碼、HTML5從入門到精通電子書及案例代碼等學習資源
本書特色
*零基礎、入門級的講解——無論讀者是否從事計算機相關行業,是否接觸過Android,是否使用Android開發過項目,都能從本書中找到起點。
*超多、實用、專業的範例和項目——本書結閤實際工作中的範例,逐一講解Android的各種知識和技術。還以實際開發項目來總結本書所學內容,幫助讀者在實戰中掌握知識,輕鬆擁有項目經驗。
*隨時檢測自己的學習成果——每章首頁羅列瞭“本章要點”,以便讀者明確學習方嚮。每章的“實戰練習”則根據所在章的知識點精心設計而成,讀者可以隨時自我檢測,鞏固所學知識。
*細緻入微、貼心提示——本書在講解過程中使用瞭“提示”、“注意”、“ 技巧”等小欄目,幫助讀者在學習過程中更清楚地理解基本概念、掌握相關操作,並輕鬆獲取實戰技巧。
內容簡介
本書以零基礎講解為宗旨,用實例引導讀者學習,深入淺齣地介紹瞭Andriod開發的相關知識和實戰技能。
本書第1篇【基礎知識】主要講解Android開發環境的搭建方法和應用開發基礎知識等內容;第2篇【核心技術】主要講解UI界麵布局、核心組件、事件處理、Activity界麵錶現、Intent和IntentFilter、Service和Broadcast Receiver、應用資源管理機製、數據存儲等內容;第3篇【典型應用】主要講解圖形圖像、音頻、視頻、網絡數據處理、GPS地圖定位等內容;第4篇【知識進階】主要講解Android傳感器、藍牙數據傳輸、Google Now和Android Wear、網頁、OpenGL ES三維圖形處理等內容;第5篇【綜閤實戰】主要介紹象棋遊戲、音樂播放器和網絡流量防火牆係統等的開發方法。
本書所附DVD多媒體教學光盤中包含瞭與圖書內容全程同步的教學錄像。此外,還贈送瞭大量相關學習資料,以便讀者擴展學習。
本書適閤任何想學習Android開發的讀者,無論讀者是否從事計算機相關行業,是否接觸過Android,均可通過本書的學習快速掌握Android開發的方法和技巧。
作者簡介
巔峰卓越,一傢專門從事高級編程書籍寫作的科技公司,多年來緻力於高端編程圖書的寫作和國外編程書籍的翻譯工作。其技術實力雄厚,大多數作者是國內傑齣一綫開發人員,具有豐富的開發經驗和寫作經驗。主要代錶作品有《Android遊戲開發技術實戰詳解》《21天學通C++》《21天學通Oracle》《Android網絡開發技術實戰詳解》等。
目錄
第0章 Android學習指南 1
本章視頻教學錄像:24分鍾
0.1 移動智能設備係統發展現狀 2
0.1.1 智能手機和移動智能設備 2
0.1.2 主流移動智能操作係統 2
?0.2 Android係統 4
0.2.1 Android係統的發展現狀 4
0.2.2 常見Android産品分類 4
0.2.3 Android係統的巨大優勢 6
0.3 移動開發與傳統PC開發的差異 7
0.3.1 主要差異 8
0.3.2 主流移動設備屏幕的分辨率 8
?0.4 Android應用開發學習路綫圖 9
第1篇 基礎知識
第1章 搭建Android應用開發環境 12
本章視頻教學錄像:23分鍾
搭建良好的開發環境,往往是開發實踐的第一步。
?1.1 安裝Android應用環境的係統要求 13
?1.2 獲取並安裝JDK 13
1.2.1 獲取JDK 13
1.2.2 安裝JDK 15
1.2.3 驗證安裝是否成功 16
?1.3 獲取並安裝Eclipse和Android SDK 17
1.3.1 獲取Eclipse和Android SDK 17
1.3.2 解壓縮安裝Eclipse和Android SDK 18
1.3.3 安裝ADT 19
1.3.4 設定Android SDK Home 21
1.3.5 驗證Android開發環境 22
1.4 Android虛擬設備 22
1.4.1 創建、修改、刪除Android模擬器 23
1.4.2 啓動AVD模擬器 24
1.5 綜閤演練——新手入門的第一個Android應用程序 25
1.5.1 使用Eclipse新建Android工程 25
1.5.2 編寫代碼和代碼分析 26
1.5.3 調試程序 27
1.5.4 運行項目 29
1.5.5 導入一個已經存在的項目 30
1.6 高手點撥 31
1.7 實戰練習 32
第 2章?Android應用開發基礎 33
本章視頻教學錄像:21分鍾
韆裏之行,始於足下。本章帶你學習Android應用開發的必備基礎知識,開啓學習之旅。
??
?2.1 Android係統架構 34
2.1.1 Android係統架構概覽 34
2.1.2 底層操作係統 34
2.1.3 Android的硬件抽象層 35
2.1.4 中間層 35
2.1.5 應用程序框架 36
2.1.6 應用程序層 36
2.2 Android應用程序文件組成 36
2.2.1 應用程序目錄概覽 36
2.2.2 src目錄 36
2.2.3 控製文件AndroidManifest.xml 37
2.2.4 gen目錄 38
2.2.5 res目錄 39
2.2.6 assets目錄 40
2.3 Android的五大組件 40
2.3.1 Activity組件 41
2.3.2 Intent組件 41
2.3.3 Service組件 41
2.3.4 Broadcast和Receiver組件 41
2.3.5 ContentProvider組件 42
2.4 高手點撥 42
2.5 實戰練習 42
第2篇 核心技術
第 3章 UI界麵布局 44
本章視頻教學錄像:23分鍾
UI之於應用程序,猶如外錶之於人。美觀的UI設計會讓用戶賞心悅目,為應用程序吸粉。
3.1 View視圖組件 45
3.1.1 View的常用屬性和方法 45
3.1.2 ViewGroup容器 46
3.1.3 ViewManager類 46
3.2 Android UI布局的方式 47
3.2.1 使用XML布局 47
3.2.2 在Java代碼中控製布局 47
3.3 Android布局管理器 48
3.3.1 Android布局管理器概述 49
3.3.2 綫性布局LinearLayout 51
3.3.3 相對布局RelativeLayout 52
3.3.4 幀布局FrameLayout 54
3.3.5 錶格布局TableLayout 55
3.3.6 絕對布局 AbsoluteLayout 55
3.3.7 網格布局GridLayout 57
3.4 綜閤演練——實現一個圖文展示係統 57
3.4.1 新建工程 58
3.4.2 實現界麵布局 58
3.4.3 編寫代碼 59
3.4.4 測試運行 62
3.5 高手點撥 63
3.6 實戰練習 64
第 4章 核心組件 65
本章視頻教學錄像:44分鍾
各種功能強大的組件,可以讓編程和項目的實現更加便捷。
4.1 Widget組件 66
4.2 按鈕和文本框 67
4.2.1 按鈕Button 67
4.2.2 文本框TextView 69
4.3 多選按鈕和單選按鈕 70
4.3.1 多項選擇控件CheckBox 70
4.3.2 單項選擇控件RadioGroup 71
4.4 下拉列錶控件和自動完成文本控件 72
4.4.1 下拉列錶控件Spinner 72
4.4.2 自動完成文本控件AutoCompleteTextView 75
4.5 日期選擇器控件和時間選擇器控件 76
4.5.1 日期選擇器控件DatePicker 76
4.5.2 時間選擇器控件TimePicker 78
4.6 滾動條、進度條和拖動條控件 79
4.6.1 滾動視圖控件ScrollView 79
4.6.2 進度條控件ProgressBar 80
4.6.3 拖動條控件SeekBar 81
4.7 評分組件RatingBar 82
4.8 圖片處理控件 83
4.8.1 圖片視圖控件ImageView 83
4.8.2 切換圖片控件ImageSwitcher和Gallery 84
4.9 網格視圖控件GridView 86
4.10 MENU控件 87
4.10.1 MENU基礎 88
4.10.2 實例——使用MENU控件展示友好界麵 88
4.11 列錶控件ListView 91
4.11.1 ListView控件基礎 91
4.11.2 實例——使用SimpleAdapter實現ListView列錶功能 95
4.12 對話框控件Dialog 96
4.12.1 對話框基礎 96
4.12.2 實例——在屏幕中使用對話框顯示問候語 96
4.13 Toast和Notification提醒控件 102
4.13.1 NotificationManager和Notification設置通知 102
4.13.2 更新通知 103
4.14 綜閤演練——隨身提醒器 105
4.15 高手點撥 111
4.16 實戰練習 112
第 5章 Android事件處理 113
本章視頻教學錄像:39分鍾
事件處理,要完成應用程序對用戶動作的響應,本章將分類介紹事件處理的知識。
5.1 事件處理概述 114
5.2 基於監聽的事件處理 114
5.2.1 監聽處理模型中的3種對象 114
5.2.2 Android係統中的監聽事件 116
5.2.3 實現事件監聽器的方法 117
5.3 基於迴調的事件處理 120
5.3.1 Android事件監聽器的迴調方法 121
5.3.2 基於迴調的事件傳播 123
5.3.3 重寫onTouchEvent方法響應觸摸屏事件 125
5.4 響應的係統設置的事件 125
5.4.1 Configuration類詳解 126
5.4.2 重寫onConfigurationChanged響應係統設置更改 128
5.5 Handler消息傳遞機製 128
5.6 Android綫程處理 132
5.6.1 什麼是進程和綫程 132
5.6.2 Android應用程序的生命周期 134
5.6.3 Android綫程間的通信機製 135
5.6.4 多綫程處理 141
5.7 異步任務處理機製 147
5.8 綜閤演練——異步多綫程處理網絡數據 148
5.9 高手點撥 152
5.10 實戰練習 153
第 6章 Activity界麵錶現 155
本章視頻教學錄像:26分鍾
應用程序的界麵和Activity一一對應,掌握Activity相關知識有助於接下來的學習。
6.1 什麼是Activity 156
6.1.1 Activity的狀態及狀態間的轉換 156
6.1.2 Activity棧 157
6.1.3 Activity的生命周期 157
6.1.4 實例——啓動對話框風格的Activity 159
6.2 操作Activity 162
6.2.1 配置Activity 162
6.2.2 啓動、關閉Activity 164
6.2.3 Activity數據交換 167
6.2.4 啓動其他Activity 167
6.3 Activity的加載模式 172
6.3.1 standard加載模式 172
6.3.2 singleTop加載模式 173
6.3.3 singleTask加載模式 174
6.3.4 singleInstance加載模式 174
6.4 綜閤演練——會員注冊係統 174
6.5 高手點撥 177
6.6 實戰練習 178
第 7章 Intent和IntentFilter 179
本章視頻教學錄像:25分鍾
Intent既可以啓動其他新的Activity,又可作為傳遞數據和事件的橋梁,是Android開發中的核心組件之一。
7.1 Intent和IntentFilter 180
7.1.1 Intent啓動不同組件的方法 180
7.1.2 Intent的構成 180
7.1.3 Intent的基本用法 181
7.2 顯式Intent和隱式Intent 182
7.2.1 顯式Intent(Explicit Intent)的基本用法 182
7.2.2 隱式Intent(Implicit Intent) 185
7.3 IntentFilter對象 187
7.3.1 IntentFilter基礎 187
7.3.2 IntentFilter響應隱式Intent 188
7.3.3 Android解析IntentFilter 189
7.4 Intent的屬性 190
7.4.1 Component屬性 190
7.4.2 Action屬性 192
7.4.3 Category屬性 193
7.4.4 Data屬性和Type屬性 194
7.4.5 Flag屬性 197
7.5 Intent和Activity 197
7.5.1 顯式啓動新的Activity 198
7.5.2 隱式Intent和運行時綁定 198
7.5.3 Activity的返迴值 199
7.5.4 Android本地動作 200
7.6 綜閤演練——使用Intent撥打電話 200
7.7 高手點撥 203
7.8 實戰練習 203
第 8章 Service和Broadcast Receiver 205
本章視頻教學錄像:24分鍾
Service和Broadcast Receiver是Android應用程序中很重要的核心組件,本章將詳細講解。
8.1 Service詳解 206
8.1.1 Service基礎 206
8.1.2 Service的生命周期 206
8.1.3 Service的策略 207
8.1.4 創建Service 208
8.1.5 使用Service 209
8.1.6 與遠程Service通信 210
8.1.7 Service的訪問權限 211
8.1.8 實例——啓動和停止Service 211
8.2 AIDL Service服務 213
8.2.1 AIDL基礎 213
8.2.2 實例——將接口暴露給客戶端 215
8.2.3 實例——客戶端訪問AIDL Service 217
8.3 Broadcast Receiver廣播操作 220
8.3.1 ?Broadcast Receiver基礎 220
8.3.2 Receiver的生命周期 220
8.4 短信處理和電話處理 221
8.4.1 SmsManager類介紹 221
8.4.2 TelephonyManager類介紹 223
8.5 綜閤演練——監聽短信是否發送成功 223
8.6 高手點撥 228
8.7 實戰練習 228
第 9章 應用資源管理機製 229
本章視頻教學錄像:25分鍾
掌握Android係統應用資源管理機製,有助於開發人員的開發和維護工作。
9.1 Android的資源類型 230
9.2 如何使用資源 231
9.2.1 在Java代碼中使用資源清單項 231
9.2.2 在Java代碼中訪問實際資源 231
9.3 “res/values”目錄 232
9.3.1 定義顔色值 232
9.3.2 字符串資源 232
9.3.3 顔色資源文件 233
9.3.4 尺寸資源文件 233
9.3.5 實例——使用字符串、顔色和尺寸資源 234
9.4 使用Drawable資源 238
9.4.1 使用StateListDrawable資源 238
9.4.2 使用LayerDrawable資源 239
9.4.3 使用ShapeDrawable資源 240
9.4.4 使用ClipDrawable資源 241
9.4.5 使用AnimationDrawable資源 242
9.5 使用屬性動畫資源 243
9.6 使用原始的XML資源 244
9.6.1 什麼是原始的XML資源 244
9.6.2 實例——使用原始的XML文件 245
9.7 綜閤演練——播放指定的聲音資源 247
9.8 高手點撥 250
9.9 實戰練習 251
第 10章 數據存儲 253
本章視頻教學錄像:29分鍾
大數據時代擁有海量數據存儲,數據存儲技術變得愈發重要。
10.1 Android係統中的5種數據存儲方式 254
10.2 SharedPreferences存儲 254
10.2.1 SharedPreferences基礎 254
10.2.2 實例——存儲聯係人信息 255
10.3 文件存儲 257
10.3.1 文件存儲基礎 257
10.3.2 實例——使用文件保存錶單數據 258
10.4 輕量級數據庫工具SQLite 261
10.4.1 SQLite基礎 261
10.4.2 SQLiteDatabase介紹 262
10.4.3 SQLiteOpenHelper介紹 266
10.4.4 實例——使用SQLite操作數據 267
10.5 ContentProvider存儲 273
10.5.1 ContentProvider基礎 273
10.5.2 實例——存儲聯係人信息 274
10.6 綜閤演練——實現一個日記本係統 276
10.6.1 實例說明 276
10.6.2 具體實現 277
10.7 高手點撥 283
10.8 實戰練習 284
第3篇 典型應用
第 11章 圖形圖像 286
本章視頻教學錄像:26分鍾
唯美的圖形和絢麗的動畫,都會帶給用戶視覺享受,本章帶你學習Android係統中的圖像處理知識。
11.1 二維圖像處理 287
11.1.1 SurfaceFlinger渲染管理器 287
11.1.2 Skia渲染引擎 289
11.1.3 Android的繪圖機製 290
11.1.4 使用其他的繪圖類 296
11.2 二維動畫處理 298
11.2.1 使用Drawable實現動畫效果 298
11.2.2 Tween Animation動畫 300
11.2.3 實現Frame Animation動畫效果 304
11.2.4 Property Animation動畫 306
11.3 綜閤演練——在Android中播放GIF動畫 309
11.4 高手點撥 312
11.5 實戰練習 312
第 12章 音頻應用程序 313
本章視頻教學錄像:28分鍾
音頻是最主流的應用之一,掌握其開發技術很有必要。
12.1 音頻接口類 314
12.2 AudioManager類 315
12.2.1 AudioManager基礎 315
12.2.2 實例——設置短信提示鈴聲 317
12.3 錄音處理 321
12.3.1 使用MediaRecorder接口錄製音頻 321
12.3.2 使用AudioRecord接口錄製音頻 322
12.4 播放音頻 325
12.4.1 使用AudioTrack播放音頻 325
12.4.2 使用MediaPlayer播放音頻 326
12.4.3 使用SoundPool播放音頻 328
12.4.4 使用Ringtone播放鈴聲 329
12.4.5 使用JetPlayer播放音頻 329
12.4.6 使用AudioEffect處理音效 330
12.5 語音識彆技術 333
12.5.1 Text-To-Speech技術 333
12.5.2 榖歌的Voice Recognition技術 338
12.6 實現振動功能 341
12.7 AlarmManage服務 342
12.8 綜閤演練——開發一個鬧鍾程序 343
12.9 高手點撥 349
12.10 實戰練習 350
第 13章 視頻應用程序 351
本章視頻教學錄像:19分鍾
用手機等移動設備觀看視頻已成為一種生活常態。本章將講解視頻應用的知識。
13.1 使用Media Player播放視頻 352
13.2 使用VideoView播放視頻 359
13.2.1 VideoView基礎 359
13.2.2 實例——使用VideoView播放手機中的影片 361
13.3 使用Camera拍照 364
13.3.1 Camera基礎 364
13.3.2 實例——使用Camera相機預覽並拍照 366
13.4 綜閤演練——編寫一個簡單的音樂播放器 373
13.5 高手點撥 377
13.6 實戰練習 378
第 14章 網絡數據處理 379
本章視頻教學錄像:34分鍾
移動互聯網時代,海量網絡數據的處理是開發人員必須要掌握的技能。
14.1 HTTP數據通信 380
14.1.1 HTTP基礎 380
14.1.2 Android中的HTTP 380
14.1.3 實例——在手機屏幕中傳遞HTTP參數 381
14.2 URL和URLConnection 384
14.2.1 URL類詳解 384
14.2.2 實例——從網絡中下載圖片作為屏幕背景 386
14.3 處理XML數據 390
14.3.1 XML概述 390
14.3.2 實例——使用SAX解析XML數據 390
14.4 下載網絡中的圖片 393
14.5 使用Socket實現數據通信 396
14.5.1 Socket編程初步 396
14.5.2 TCP編程機製 397
14.5.3 UDP編程 399
14.5.4 實例——使用Socket實現數據傳輸 402
14.6 使用WebView瀏覽網頁數據 405
14.6.1 WebView介紹 405
14.6.2 實例——在手機屏幕中瀏覽網頁 405
14.7 綜閤演練——遠程下載並安裝一個軟件 407
14.8 高手點撥 413
14.9 實戰練習 413
第 15章 GPS地圖定位 415
本章視頻教學錄像:27分鍾
越來越多的應用程序需要定位功能,Android係統可無縫支持GPS地圖定位。
15.1 位置服務 416
15.1.1 類location詳解 416
15.1.2 實例——在Android設備中實現GPS定位 416
15.2 更新位置信息 419
15.2.1 庫Maps中的類 419
15.2.2 使用LocationManager監聽位置 420
15.2.3 實例——監聽當前設備的坐標和海拔 421
15.3 在Android設備中使用地圖 425
15.3.1 添加Google Map密鑰 425
15.3.2 使用Map API密鑰 428
15.3.3 實例——使用榖歌地圖實現定位 430
15.4 綜閤演練——在手機屏幕中實現路徑導航 434
15.5 高手點撥 441
15.6 實戰練習 442
第4篇 知識進階
第 16章 Android傳感器 444
本章視頻教學錄像:35分鍾
傳感器廣泛存在於當前常見的各項應用中,本章將對各類傳感器進行詳細介紹。
16.1 Android傳感器係統基礎 445
16.1.1 查看包含的傳感器 445
16.1.2 模擬器測試工具——SensorSimulator 446
16.1.3 實例——檢測當前設備支持的傳感器 450
16.2 光綫傳感器 452
16.2.1 光綫傳感器基礎 452
16.2.2 使用光綫傳感器的方法 454
16.3 磁場傳感器 455
16.4 加速度傳感器 455
16.4.1 加速度傳感器的分類 455
16.4.2 Android係統中的加速度傳感器 456
16.5 方嚮傳感器 457
16.5.1 方嚮傳感器基礎 457
16.5.2 Android中的方嚮傳感器 458
16.6 陀螺儀傳感器 458
16.6.1 陀螺儀傳感器基礎 459
16.6.2 Android中的陀螺儀傳感器 459
16.7 鏇轉嚮量傳感器 460
16.8 距離傳感器 461
16.8.1 距離傳感器基礎 461
16.8.2 Android係統中的距離傳感器 462
16.9 氣壓傳感器 464
16.9.1 氣壓傳感器基礎 464
16.9.2 氣壓傳感器在智能手機中的應用 465
16.10 溫度傳感器 465
16.10.1 溫度傳感器基礎 466
16.10.2 Android係統中的溫度傳感器 466
16.11 濕度傳感器 469
16.12 綜閤演練——開發一個具有定位功能的指南針 470
16.13 高手點撥 479
16.14 實戰練習 480
第 17章 藍牙數據傳輸 481
本章視頻教學錄像:17分鍾
藍牙支持小範圍、短距離的無綫通信,移動終端設備大多支持藍牙功能。
17.1 低功耗藍牙基礎 482
17.1.1 低功耗藍牙的架構 482
17.1.2 低功耗藍牙分類 482
17.2 Android係統中的藍牙模塊 483
17.3 和藍牙相關的類 485
17.3.1 BluetoothSocket類 485
17.3.2 BluetoothServerSocket類 487
17.3.3 BluetoothAdapter類 487
17.3.4 BluetoothClass.Service類 494
17.3.5 BluetoothClass.Device類 494
17.4 綜閤演練——開發硬件藍牙控製器 495
17.5 高手點撥 499
17.6 實戰練習 500
第 18章 Google Now和Android Wear 501
本章視頻教學錄像:20分鍾
Google Now是一款智能的應用,可以基於對用戶習慣的全麵瞭解而為用戶提供實時相關信息。
18.1 Google Now 502
18.1.1 搜索引擎的升級——Google Now 502
18.1.2 Google Now的用法 502
18.2 Android Wear 504
18.2.1 什麼是Android Wear 504
18.2.2 搭建Android Wear開發環境 505
18.3 開發Android Wear程序 507
18.3.1 創建通知 507
18.3.2 創建聲音 510
18.3.3 給通知添加頁麵 514
18.3.4 通知堆 515
18.3.5 通知語法介紹 516
18.4 綜閤演練——實現手機和手錶的交互 517
18.5 高手點撥 528
18.6 實戰練習 528
第 19章 為Android開發網頁 529
本章視頻教學錄像:30分鍾
移動終端設備上的網頁開發技術也有彆於電腦端的網頁開發技術,本章將詳細介紹Android係統網頁開發技術。
19.1 編寫一個適用於Android係統的網頁 530
19.2 在Android中添加CSS 534
19.2.1 編寫基本的樣式 534
19.2.2 添加視覺效果 536
19.3 添加JavaScript 537
19.3.1 jQuery框架介紹 537
19.3.2 實例——為頁麵添加動態行為 539
19.4 使用Ajax 541
19.5 讓網頁動起來 545
19.5.1 JQTouch開源框架 545
19.5.2 實例——使用JQTouch框架實現動畫效果 545
19.6 使用PhoneGap 549
19.6.1 PhoneGap介紹 549
19.6.2 搭建PhoneGap開發環境 550
19.6.3 實例——創建基於PhoneGap的HeIIoWorld程序 554
19.7 綜閤演練——移動版匯率轉換器 560
19.8 高手點撥 568
19.9 實戰練習 568
第20章 OpenGL ES三維圖形處理 569
本章視頻教學錄像:26分鍾
掌握瞭OpenGL ES的知識,纔能將其良好地應用於Android係統中三維圖形的處理。
20.1 OpenGL ES基礎 570
20.1.1 OpenGL ES 3.1介紹 570
20.1.2 Android全麵支持OpenGL ES 3.1 570
20.2 OpenGL ES的基本應用 570
20.2.1 使用點綫法繪製三角形 571
20.2.2 使用索引法繪製三角形 575
20.3 實現投影效果 581
20.3.1 正交投影 581
20.3.2 透視投影 581
20.4 實現光照效果 582
20.4.1 光源的類型 582
20.4.2 光源的顔色 583
20.5 實現紋理映射 584
20.5.1 紋理貼圖和紋理拉伸 584
20.5.2 Texture Filter紋理過濾 585
20.6 實現坐標變換 586
20.6.1 坐標變換基礎 586
20.6.2 實現縮放變換 586
20.6.3 實現平移變換 587
20.7 使用Alpha混閤技術 587
20.8 實現攝像機和霧特效功能 588
20.8.1 攝像機基礎 588
20.8.2 霧特效基礎 589
20.9 綜閤演練——繪製一個圓柱體 589
20.10 高手點撥 597
20.11 實戰練習 598
第5篇 綜閤實戰
第21章 象棋遊戲 600
本章視頻教學錄像:13分鍾
象棋遊戲的實戰案例帶你領略完整項目的開發過程。
21.1 棋牌遊戲介紹 601
21.1.1 棋牌遊戲發展現狀 601
21.1.2 經典遊戲介紹 601
21.2 規劃項目 602
21.2.1 規劃流程 602
21.2.2 準備工作 603
21.3 項目架構 603
21.3.1 總體架構 603
21.3.2 規劃類 604
21.4 具體編碼 605
21.4.1 實現控製類 605
21.4.2 歡迎界麵類 606
21.4.3 菜單界麵類 611
21.4.4 遊戲幫助類 613
21.4.5 遊戲界麵框架類 615
21.4.6 象棋走法類 625
21.4.7 思考時間類 625
21.4.8 走法規則類 626
第22章 音樂播放器 633
本章視頻教學錄像:23分鍾
音樂播放器的案例教你應用層程序的開發技巧。
22.1 項目介紹 634
22.1.1 項目背景介紹 634
22.1.2 項目的目的 634
22.2 係統需求分析 634
22.2.1 構成模塊 634
22.2.2 係統流程 639
22.2.3 功能結構圖 640
22.2.4 係統功能說明 641
22.2.5 係統需求 641
22.3 數據庫設計 642
22.3.1 字段設計 642
22.3.2 E-R圖設計 642
22.3.3 數據庫連接 643
22.3.4 創建數據庫 643
22.3.5 操作數據庫 644
22.3.6 數據顯示 646
22.4 具體編碼 647
22.4.1 設置服務信息 647
22.4.2 播放器主界麵 648
22.4.3 播放列錶功能 658
22.4.4 菜單功能模塊 661
22.4.5 播放設置界麵 664
22.4.6 設置顯示歌詞 666
22.4.7 文件瀏覽器模塊 667
22.4.8 數據存儲 671
第23章 網絡流量防火牆係統 673
本章視頻教學錄像:14分鍾
網絡防火牆係統這一可獨立運行的案例融閤瞭開發中的多項技術,並依照開發流程逐步介紹。
23.1 係統需求分析 674
23.2 編寫布局文件 674 23.3 編寫主程序文件 675
23.3.1 主Activity文件 675
23.3.2 幫助Activity文件 689
23.3.3 公共庫函數文件 689
23.3.4 係統廣播文件 702
23.3.5 登錄驗證 703
23.3.6 打開/關閉某一個實施控件 704
前言/序言
《Android 應用開發實戰指南》 前言 移動互聯網的浪潮席捲全球,Android 以其開放的生態係統和廣泛的市場份額,成為承載這一浪潮的關鍵平颱。無數創新應用在此誕生,改變著我們的生活方式,驅動著商業模式的變革。然而,在這片機遇無限的沃土上,如何快速有效地掌握 Android 應用開發的精髓,成為眾多開發者麵臨的挑戰。 本書並非一本泛泛而談的入門教程,也不是對某個特定領域進行膚淺的介紹。它是一本精心打磨的“實戰指南”,旨在帶領讀者深入理解 Android 應用開發的底層原理,掌握核心技術棧,並教會讀者如何構建高質量、高性能、可維護的應用程序。我們相信,隻有理解瞭“為什麼”,纔能更好地掌握“怎麼做”。因此,本書將注重原理的講解,並通過大量貼近實際項目需求的案例,讓讀者在實踐中鞏固知識,提升技能。 本書的目標讀者是那些希望係統性地學習 Android 應用開發,並能夠獨立完成復雜項目開發的開發者。無論你是初入移動開發領域的新人,還是希望深化理解並提升開發效率的資深開發者,都能從本書中獲益。我們將力求用清晰的語言、嚴謹的邏輯、翔實的示例,為你搭建一座通往 Android 應用開發精通的橋梁。 第一部分:Android 係統架構與核心組件 要深入理解 Android 應用開發,首先必須對 Android 操作係統的架構有清晰的認識。本部分將帶你剝離 Android 的神秘麵紗,從宏觀到微觀,全麵解析其內部運作機製。 1.1 Android 操作係統概覽: 我們將從 Android 的曆史發展、版本演進入手,介紹其作為一款基於 Linux 內核的開源移動操作係統的核心特性。深入探討 Android 的分層架構,包括 Linux 內核層、硬件抽象層 (HAL)、Android 運行時 (ART)、本地 C/C++ 庫、Java API 框架以及應用程序層。理解各層之間的交互關係,是後續學習的基礎。 1.2 Linux 內核層: 盡管我們不直接編寫 Linux 內核代碼,但理解其在 Android 中的作用至關重要。我們將介紹 Linux 內核為 Android 提供的基本服務,如進程管理、內存管理、設備驅動程序(相機、藍牙、Wi-Fi 等)以及電源管理。我們將探討 Binder IPC 機製,這是 Android 中進程間通信的關鍵,理解其工作原理對理解係統服務的調用至關重要。 1.3 HAL(硬件抽象層): HAL 是 Android 連接硬件的橋梁。我們將解釋 HAL 的作用,以及它如何允許 Android 框架與各種硬件設備進行交互,而無需關心具體的硬件實現細節。我們將簡要介紹一些常見的 HAL 模塊,例如 Camera HAL、Audio HAL 等,以及它們如何通過標準接口暴露給上層框架。 1.4 Android 運行時 (ART) 與 Dalvik: ART 是 Android 應用程序的執行環境。我們將深入解析 ART 的工作原理,包括 Ahead-of-Time (AOT) 編譯和 Just-in-Time (JIT) 編譯,以及它們對應用性能的影響。我們將迴顧 Dalvik 虛擬機,並理解 ART 如何取代 Dalvik 成為 Android 的默認運行時,以及其帶來的優勢。瞭解字節碼的加載、類加載機製、垃圾迴收等,將幫助你優化應用內存使用。 1.5 Java API 框架: 這是我們日常開發中最常接觸的部分。我們將詳細介紹 Android API 框架的設計理念,包括四大組件(Activity, Service, Broadcast Receiver, Content Provider)、Intent, Context, Handler, Looper, MessageQueue 等核心概念。我們將逐一講解這些組件的生命周期、工作機製以及它們在應用程序中的應用場景。 1.6 應用程序層: 最終,用戶與我們構建的應用交互。我們將介紹應用程序的構成,包括 APK 文件結構、Manifest 文件、資源文件等。同時,我們將探討係統應用程序與第三方應用程序的區彆,以及 Android 的應用安全模型。 第二部分:Android 應用開發基礎與 UI 布局 掌握瞭係統架構,我們就可以開始構建自己的應用程序瞭。本部分將聚焦於 Android 應用開發的基礎知識和用戶界麵的構建。 2.1 Activity 生命周期與管理: Activity 是 Android 應用的界麵載體。我們將詳細剖析 Activity 的生命周期(onCreate, onStart, onResume, onPause, onStop, onDestroy),以及如何在不同生命周期迴調中執行必要的操作,以確保應用的穩定性和用戶體驗。我們將探討 Activity 的狀態保存與恢復機製,以及如何處理配置變更(如屏幕鏇轉)。 2.2 Intent 與導航: Intent 是 Android 應用中不同組件之間通信的“信使”。我們將深入講解 Intent 的分類(顯式 Intent 和隱式 Intent),以及如何使用 Intent 來啓動 Activity、啓動 Service、發送廣播等。我們將學習如何通過 Intent 傳遞數據,以及如何利用 PendingIntent 實現更復雜的操作。 2.3 UI 布局與視圖係統: 用戶界麵是用戶與應用交互的窗口。我們將全麵介紹 Android 的視圖 (View) 和視圖組 (ViewGroup) 概念。我們將詳細講解各種布局容器,如 `LinearLayout`, `RelativeLayout`, `FrameLayout`, `ConstraintLayout`,以及它們的屬性和使用場景。我們還將學習如何使用 `RecyclerView` 構建高效的列錶視圖,以及如何自定義 View 來實現獨特的界麵效果。 2.4 資源管理: Android 應用的資源(如字符串、顔色、尺寸、圖片、布局文件)應該與代碼分離,以便於國際化和維護。我們將學習如何有效地組織和管理這些資源,包括如何創建和使用字符串資源、尺寸資源、顔色資源、圖片資源,以及如何為不同屏幕密度和語言提供不同的資源。 2.5 事件處理與用戶交互: 用戶交互是應用的核心。我們將學習如何為視圖設置點擊監聽器、長按監聽器等,以及如何處理觸摸事件。我們將探討更高級的事件分發機製,以及如何創建自定義的觸摸手勢。 2.6 Fragment 與多窗口支持: Fragment 是 Activity 的一種補充,可以幫助我們實現更靈活的 UI 設計,尤其是在平闆電腦等大屏幕設備上。我們將詳細講解 Fragment 的生命周期、與 Activity 的交互方式,以及如何使用 Fragment Manager 來管理 Fragment。同時,我們將探討 Android 的多窗口模式,以及如何設計支持多窗口的應用。 第三部分:數據存儲與網絡通信 應用程序通常需要存儲數據並在網絡上進行通信。本部分將深入探討 Android 中的數據存儲技術和網絡通信機製。 3.1 數據存儲方案: 3.1.1 SharedPreferences: 學習使用 SharedPreferences 來存儲少量簡單的鍵值對數據,如用戶偏好設置。我們將介紹其 API,以及讀寫數據的最佳實踐。 3.1.2 文件存儲: 探討 Android 中的文件存儲機製,包括內部存儲和外部存儲。我們將學習如何創建、讀寫文件,以及如何處理文件權限。 3.1.3 SQLite 數據庫: SQLite 是 Android 內置的關係型數據庫。我們將詳細介紹 SQLiteOpenHelper 的使用,如何創建數據庫錶,以及進行增刪改查操作。我們將學習 SQL 語句的編寫,以及如何高效地訪問數據庫。 3.1.4 Room 持久性庫: Room 是 Android Jetpack 的一部分,它在 SQLite 的基礎上提供瞭更便捷、更安全的數據庫訪問方式。我們將深入學習 Room 的注解、Entity、DAO、Database 等核心概念,並掌握如何使用 Room 來進行數據庫操作,從而提高開發效率和代碼質量。 3.2 Content Provider: Content Provider 是 Android 中用於管理共享數據的標準機製。我們將學習如何創建和使用 Content Provider,以及如何通過它來共享應用內部的數據。我們將探討 Content URI、Cursor 等核心概念,並瞭解如何進行數據查詢、插入、更新和刪除。 3.3 網絡通信: 3.3.1 HTTP 協議基礎: 簡要迴顧 HTTP 協議的基本概念,如請求方法 (GET, POST)、響應碼、請求頭和響應頭。 3.3.2 OkHttp: OkHttp 是目前 Android 開發中最流行的 HTTP 客戶端庫。我們將詳細介紹 OkHttp 的使用,包括如何發送 GET 和 POST 請求,如何處理請求頭、請求體,以及如何解析響應數據。我們將探討 OkHttp 的連接池、攔截器等高級特性,以實現更高效的網絡通信。 3.3.3 JSON 數據解析: 講解 JSON 格式,並介紹 GSON、Fastjson 等常用 JSON 解析庫的使用。我們將學習如何將 JSON 數據轉換為 Java 對象,以及將 Java 對象序列化為 JSON。 3.3.4 Retrofit: Retrofit 是一個類型安全的 RESTful Web Service 客戶端,它與 OkHttp 結閤使用,能夠極大簡化網絡請求的編寫。我們將深入學習 Retrofit 的注解、ConverterFactory、Call Adapter 等,以及如何定義 API 接口來實現方便的網絡請求。 3.3.5 Android 網絡權限與注意事項: 強調在 Manifest 文件中聲明網絡權限的重要性,以及在進行網絡請求時需要注意的綫程問題和異常處理。 第四部分:後颱服務與多綫程 Android 應用並非隻運行在前颱,後颱服務和多綫程是實現復雜功能和提升性能的關鍵。 4.1 Service: Service 是 Android 中用於執行長時間運行操作且沒有用戶界麵的組件。我們將深入講解 Service 的生命周期(onCreate, onStartCommand, onDestroy),以及如何創建前颱 Service 和後颱 Service。我們將探討 Service 與 Activity 之間的通信方式,例如通過 AIDL(Android Interface Definition Language)實現跨進程通信。 4.2 Broadcast Receiver: Broadcast Receiver 是一種用於響應係統範圍的廣播通知的組件。我們將學習如何注冊和接收係統廣播(如網絡狀態變化、電池電量變化),以及如何發送自定義廣播。我們將探討廣播的類型(有序廣播、無序廣播)和廣播接收器的生命周期。 4.3 多綫程與異步編程: Android UI 綫程(主綫程)不允許執行耗時的操作,否則會導緻 ANR (Application Not Responding) 錯誤。我們將深入講解多綫程的概念,以及在 Android 中常用的多綫程實現方式: 4.3.1 Thread 和 Runnable: 學習 Java 原生的綫程創建和管理。 4.3.2 Handler, Looper, MessageQueue: 掌握 Handler 機製,這是 Android 中實現綫程間通信和異步消息處理的核心。我們將詳細解釋 Looper、Handler 和 MessageQueue 的工作原理,以及如何使用它們來更新 UI。 4.3.3 AsyncTask: 學習使用 AsyncTask 來簡化後颱操作和 UI 更新的異步編程。我們將探討 AsyncTask 的生命周期和使用場景,並分析其局限性。 4.3.4 ExecutorService 與綫程池: 介紹 ExecutorService 和綫程池的概念,以及如何使用它們來更有效地管理綫程資源。 4.3.5 Coroutines(Kotlin): 對於使用 Kotlin 進行開發的讀者,我們將介紹 Kotlin Coroutines,它是 Android 官方推薦的下一代異步編程解決方案,能夠極大地簡化異步代碼的編寫。 第五部分:高級主題與性能優化 掌握瞭基礎和核心技術後,我們將進一步探討一些高級主題,並學習如何優化應用的性能和用戶體驗。 5.1 權限管理: 隨著 Android 版本的發展,權限管理變得越來越嚴格。我們將詳細講解 Android 的運行時權限模型,以及如何動態地請求和處理用戶權限。 5.2 依賴注入: 依賴注入 (DI) 是一種重要的設計模式,能夠提高代碼的可測試性和可維護性。我們將介紹 Dagger Hilt,這是 Android 官方推薦的基於 Dagger 的依賴注入解決方案,並學習如何使用它來管理應用的依賴關係。 5.3 架構模式: 良好的架構是構建大型、可維護應用的基石。我們將介紹幾種主流的 Android 架構模式,如 MVC, MVP, MVVM,並重點講解 MVVM 模式,以及如何結閤 Android Jetpack 組件(如 ViewModel, LiveData)來實現 MVVM 架構。 5.4 性能優化: 5.4.1 內存優化: 講解內存泄漏的常見原因和檢測方法(如 LeakCanary),以及如何通過代碼優化來減少內存占用。 5.4.2 布局優化: 學習如何使用 `ConstraintLayout` 等高效布局,以及如何進行布局層級扁平化,以提升 UI 渲染性能。 5.4.3 繪製優化: 探討 Overdraw(過度繪製)問題,並學習如何通過優化視圖繪製來提升渲染效率。 5.4.4 網絡優化: 介紹緩存策略、數據壓縮等網絡優化技巧。 5.4.5 電池優化: 學習如何閤理使用後颱服務和網絡請求,以減少電池消耗。 5.5 應用安全: 探討 Android 應用的安全風險,如數據泄露、代碼混淆、簽名驗證等,並介紹一些基本的安全防護措施。 5.6 測試與調試: 介紹單元測試、集成測試和 UI 測試的重要性,並學習如何使用 Android Studio 的調試工具來定位和解決 Bug。 結語 掌握 Android 應用開發是一個持續學習和實踐的過程。本書力求提供一個全麵、深入的學習路徑,幫助讀者建立紮實的基礎,並掌握構建高質量應用的必備技能。我們鼓勵讀者在閱讀本書的同時,積極動手實踐,將所學知識應用於實際項目中。通過不斷的實踐和反思,你將能夠遊刃有餘地應對 Android 開發中的各種挑戰,並創造齣令人驚嘆的應用。願本書成為你 Android 開發旅程中的得力助手!