Android開發權威指南

Android開發權威指南

15.2.4繪製弧375 15.3.4路徑384 15.4.1An

基本信息

出版社: 人民郵電出版社; 第1版

《Android開發權威指南》圖書封面《Android開發權威指南》圖書封面
叢書名: 移動開發系列叢書
平裝: 582頁
正文語種: 簡體中文
開本: 16
ISBN: 9787115257147
條形碼: 9787115257147
ASIN: B005IUTCQ0

內容簡介

《Android開發權威指南》內容上涵蓋了用最新的Android版本開發的大部分場景。全書分4個部分,分別從Android基礎介紹、環境搭建、SDK介紹,到套用剖析、組件介紹、綜合實例演示,以及符合潮流的、最新的移動開發技術,如HTML5、OpenGL ES、NDK編程、Android測試驅動開發等幾個方面講述。從技術實現上,講解了6大完整綜合案例及原始碼分析,分別是新浪微部落格戶端藍牙聊天、全鍵盤輸入法、月球登入(遊戲)、貪吃蛇(遊戲)、笑臉連連看(遊戲)。
《Android開發權威指南》注重對實際動手能力的指導,在遵循技術研發知識體系嚴密性的同時,在容易產生錯誤、不易理解的環節上配備了翔實的開發情景截圖;並將重要的知識點和開發技巧以“多學一招”、“擴展學習”、“技巧點撥”等的活潑形式呈現給讀者。在程式實例的講解方面,主要將實例安插在Android開發的精髓知識章節,這為讀者學習與實踐結合提供了很好的指導。
《Android開發權威指南》配套光碟包含開發視頻及全部源程式,指導讀者快速、無障礙地學通Android實戰開發技術。
《Android開發權威指南》適合具備一定軟體開發經驗、想快速進入Android開發領域的程式設計師,具備一些手機開發經驗的開發者和Android開發愛好者學習使用;也適合作為相關培訓學校的Android培訓教材。

圖書目錄

第一部分 準備篇
第1章 初識廬山真面目——Android開發簡介 2
1.1 Android的基本概念 2
1.1.1 Android簡介 2
1.1.2 Android的版本 4
1.1.3 Android的系統構架 5
1.1.4 Android的應用程式框架 6
1.2 JIL Widget介紹 7
1.3 小結 8
第2章 工欲善其事,必先利其器——搭建和使用Android開發環境 9
2.1 開發包及工具的安裝 9
2.1.1 開發Android程式都需要些什麼 9
2.1.2 安裝JDK和配置Java開發環境 10
2.1.3 Eclipse的安裝與漢化 11
2.1.4 安裝AndroidSDK 12
2.1.5 安裝Eclipse外掛程式ADT 13
2.2 真實體驗——編寫第一個Android程式(隨機繪製圓餅) 15
2.2.1 創建Android工程 15
2.2.2 在模擬器中運行Android程式 17
2.2.3 界面控制項的布局 19
2.2.4 編寫代碼 20
2.2.5 調試程式 23
2.2.6 在手機上運行和調試程式 28
2.3 遷移Android工程可能發生的錯誤 29
2.4 不需要寫一行代碼的開發工具:AppInventor 31
2.4.1 AppInventor簡介 31
2.4.2 AppIntentor的下載和安裝 31
2.4.3 用拖曳控制項的方式設計界面 33
2.4.4 像拼圖一樣拼裝代碼 34
2.5 小結 37
第二部分 基礎篇
第3章 千里之行始於足下——Android程式設計基礎 40
3.1 Android應用程式框架 40
3.1.1 Android項目的目錄結構 40
3.1.2 AndroidManifest.xml檔案的結構 42
3.2 Android應用程式中的資源 44
3.3 Android的應用程式組件 44
3.3.1 Activity(Android的窗體) 45
3.3.2 Service(服務) 45
3.3.3 Broadcast Receiver(廣播接收器) 45
3.3.4 Content Provider(內容提供者) 46
3.4 Android程式的UI設計 46
3.4.1 手工配置XML布局檔案 46
3.4.2 ADT自帶的可視化UI設計器 47
3.4.3 使用DroidDraw設計UI布局 47
3.5 小結 48
第4章 我的UI我做主——用戶界面開發基礎 49
4.1 Activity的使用方法 49
4.1.1 創建Activity 49
4.1.2 配置Activity 50
4.1.3 顯示其他的Activity(Intent與Activity) 52
4.2 Activity的生命周期 55
4.3 在不同Activity之間傳遞數據 60
4.3.1 使用Intent傳遞數據 60
4.3.2 使用靜態變數傳遞數據 62
4.3.3 使用剪下板傳遞數據 63
4.3.4 使用全局對象傳遞數據 65
4.3.5 返回數據到前一個Activity 67
4.4 視圖(View) 68
4.4.1 視圖簡介 68
4.4.2 使用XML布局檔案定義視圖 69
4.4.3 在代碼中控制視圖 70
4.5 布局(Layout) 72
4.5.1 框架布局(FrameLayout) 72
4.5.2 線性布局(LinearLayout) 75
4.5.3 相對布局(RelativeLayout) 79
4.5.4 表格布局(TableLayout) 81
4.5.5 絕對布局(AbsoluteLayout) 82
4.5.6 重用XML布局檔案 82
4.5.7 最佳化XML布局檔案 85
4.5.8 查看apk檔案中的布局 86
4.6 小結 87
第5章 良好的學習開端——控制項(Widget)詳解 88
5.1 常用XML屬性解析 88
5.1.1 android:id屬性 88
5.1.2 控制項的寬度(android:layout_width)和高度(android:layout_height) 88
5.1.3 android:layout_margin屬性 89
5.1.4 android:padding屬性 89
5.1.5 android:layout_weight屬性 90
5.1.6 android:layout_gravity和android:gravity屬性 90
5.1.7 android:visibility屬性 91
5.1.8 android:background屬性 91
5.1.9 指定單擊事件方法(android:onClick屬性) 92
5.1.10 控制項焦點屬性(android:focusable和android:focusable-InTouchMode) 92
5.2 TextView(顯示文本的控制項) 93
5.2.1 顯示富文本(URL、不同大小、字型、顏色的文本) 93
5.2.2 在TextView中顯示錶情圖像和文字 97
5.2.3 單擊連結彈出Activity 100
5.2.4 為指定文本添加背景 103
5.2.5 帶框線的TextView 106
5.2.6 設定行間距 110
5.2.7 在未顯示完的文本後面加省略號(…) 111
5.2.8 用TextView實現走馬燈效果 113
5.2.9 垂直滾動TextView中的文本 114
5.3 EditText(編輯文本的控制項) 115
5.3.1 像QQ一樣輸入表情圖像 115
5.3.2 在EditText中輸入特定的字元 117
5.3.3 AutoCompleteText-View(自動完成輸入內容的控制項) 118
5.4 按鈕和複選框控制項 120
5.4.1 Button(普通按鈕控制項) 120
5.4.2 圖文混排的按鈕 122
5.4.3 ImageButton(圖像按鈕控制項) 124
5.4.4 RadioButton(選項按鈕控制項) 124
5.4.5 ToggleButton(開關狀態按鈕控制項) 125
5.4.6 CheckBox(複選框控制項) 126
5.5 ImageView(顯示圖像的控制項) 128
5.5.1 ImageView控制項的基本用法 128
5.5.2 顯示指定區域的圖像 129
5.5.3 縮放和旋轉圖像 132
5.6 時間與日期控制項 133
5.6.1 DatePicker(輸入日期的控制項) 133
5.6.2 TimePicker(輸入時間的控制項) 134
5.6.3 DatePicker、TimePicker與TextView同步顯示日期和時間 134
5.6.4 AnalogClock和DigitalClock(顯示時鐘的控制項) 136
5.7 進度條控制項 137
5.7.1 ProgressBar(進度條控制項) 137
5.7.2 SeekBar(拖動條控制項) 139
5.7.3 設定ProgressBar和SeekBar的顏色及背景圖 140
5.7.4 RatingBar(評分控制項) 143
5.8 列表控制項 145
5.8.1 ListView(普通列表控制項) 145
5.8.2 為ListView列表項添加複選框和選項按鈕 147
5.8.3 對列表項進行增、刪、改操作 149
5.8.4 改變列表項的背景色 153
5.8.5 ListActivity(封裝ListView的Activity) 154
5.8.6 ExpandableListView(可擴展的列表控制項) 155
5.8.7 Spinner(下拉列表控制項) 157
5.9 滾動控制項 160
5.9.1 ScrollView(垂直滾動控制項) 160
5.9.2 HorizontalScrollView(水平滾動控制項) 161
5.9.3 可垂直和水平滾動的視圖 162
5.9.4 Gallery(畫廊控制項) 163
5.10 ImageSwitcher(圖像切換控制項) 164
5.11 GridView(格線控制項) 166
5.12 TabHost(標籤控制項) 168
5.13 ViewStub(惰性裝載控制項) 169
5.14 小結 171
第6章 友好的選單——Menu介紹與實例 172
6.1 選單的基本用法 172
6.1.1 創建選項選單(Options Menu) 172
6.1.2 帶圖像的選項選單 173
6.1.3 關聯Activity 173
6.1.4 回響選單的單擊動作 174
6.1.5 動態添加、修改和刪除選項選單 175
6.1.6 帶複選框和選項按鈕的子選單 176
6.1.7 上下文選單 178
6.1.8 選單事件 179
6.1.9 從選單資源中裝載選單 180
6.2 選單特效 181
6.2.1 自定義選單 181
6.2.2 模擬UCWeb效果選單 184
6.2.3 QuickContactBadge與聯繫人選單 189
6.3 小結 192
第7章 友好地互動交流——信息提醒(對話框、Toast與Notification) 193
7.1 對話框的基本用法 193
7.1.1 帶2個按鈕(確認/取消)的對話框 193
7.1.2 帶3個按鈕(覆蓋/忽略/取消)的對話框 195
7.1.3 簡單列表對話框 196
7.1.4 單選列表對話框 198
7.1.5 多選列表對話框 199
7.1.6 進度對話框 201
7.1.7 登錄對話框 205
7.1.8 使用Activity託管對話框 207
7.2 對話框的高級套用 209
7.2.1 阻止單擊按鈕關閉對話框 209
7.2.2 改變對話框的顯示位置 213
7.2.3 在對話框按鈕和內容文本中插入圖像 215
7.2.4 改變對話框的透明度 216
7.3 Toast 217
7.3.1 Toast的基本用法 217
7.3.2 永不關閉的Toast 218
7.3.3 用PopupWindow模擬Toast提示信息框 221
7.4 通知(Notification) 221
7.4.1 在狀態欄上顯示通知信息 222
7.4.2 Notification的清除動作 224
7.4.3 永久存在的Notification 225
7.4.4 自定義Notification 226
7.5 小結 227
第8章 移動的信息倉庫——數據存儲 228
8.1 讀寫key-value對:SharedPreferences 228
8.1.1 SharedPreferences的基本用法 228
8.1.2 數據的存儲位置和格式 229
8.1.3 存取複雜類型的數據 230
8.1.4 設定數據檔案的訪問許可權 233
8.1.5 可以保存設定的Activity:PreferenceActivity 234
8.2 檔案存儲 238
8.2.1 openFileOutput和openFileInput方法 238
8.2.2 讀寫SD卡中的檔案 239
8.2.3 SAX引擎讀取XML檔案的原理 241
8.2.4 將XML檔案轉換成Java對象 242
8.2.5 檔案壓縮(Jar、Zip) 245
8.3 SQLite資料庫 249
8.3.1 SQLite資料庫管理工具 249
8.3.2 SQLiteOpenHelper類與自動升級資料庫 251
8.3.3 數據綁定與SimpleCursorAdapter類 252
8.3.4 操作SD卡上的資料庫 255
8.3.5 將資料庫與應用程式一起發布 256
8.3.6 記憶體資料庫 257
8.4 小結 258
第9章 Android中的視窗——Activity 259
9.1 調用其他程式中的Activity 259
9.1.1 直接撥號 259
9.1.2 將電話號傳入撥號程式 259
9.1.3 調用撥號程式 260
9.1.4 瀏覽網頁 261
9.1.5 向E-mail客戶端傳遞E-mail地址 261
9.1.6 傳送E-mail 261
9.1.7 查看聯繫人 262
9.1.8 顯示系統設定界面(設定主界面、Wifi設定界面) 263
9.1.9 啟動處理音頻的程式 264
9.2 自定義Activity Action 264
9.3 Activity的高級套用 266
9.3.1 ActivityGroup 266
9.3.2 自定義半透明視窗 268
9.3.3 Activity之間切換的動畫效果 269
9.4 小結 270
第10章 全局事件——廣播(Broadcast) 271
10.1 什麼是廣播 271
10.2 接收系統廣播 272
10.2.1 簡訊攔截 272
10.2.2 用代碼註冊廣播接收器 274
10.2.3 廣播接收器的優先權 275
10.2.4 來去電攔截 276
10.2.5 截獲螢幕休眠與喚醒 280
10.2.6 開機自動運行 281
10.2.7 顯示手機電池的當前電量 282
10.3 傳送廣播 284
10.4 驗證廣播接收器是否註冊 285
10.5 小結 286
第11章 跨套用數據源——Content Provider 287
11.1 Content Provider的作用 287
11.2 獲得系統數據 288
11.2.1 讀取聯繫人信息 288
11.2.2 查看收到的簡訊 290
11.3 自定義Content Provider 291
11.3.1 查詢城市信息 291
11.3.2 為Content Provider添加訪問許可權 297
11.4 小結 298
第12章 一切為用戶服務——Service基礎與實例 299
12.1 Service基礎 299
12.1.1 Service的生命周期 299
12.1.2 綁定Activity和Service 302
12.1.3 開機啟動Service 305
12.1.4 判斷Service是否已註冊 306
12.1.5 判斷Service是否已開始 307
12.2 跨進程訪問(aidl服務) 308
12.2.1 什麼是AIDL服務 308
12.2.2 建立AIDL服務的步驟 308
12.2.3 建立AIDL服務 308
12.2.4 傳遞複雜數據的AIDL服務 312
12.2.5 AIDL與來去電自動掛斷 317
12.3 小結 319
第13章 做好套用橋樑——網路與通信 320
13.1 WebView控制項 320
13.1.1 用WebView控制項瀏覽網頁 320
13.1.2 用WebView控制項裝載HTML代碼 322
13.2 訪問HTTP資源 324
13.2.1 提交HTTP GET和HTTP POST請求 324
13.2.2 HttpURLConnection類 326
13.2.3 上傳檔案 327
13.3 客戶端Socket 330
13.3.1 連線伺服器 331
13.3.2 掃描服務器打開的連線埠 331
13.3.3 傳送和接收數據 333
13.3.4 獲得無線路由分配給手機的IP位址 334
13.3.5 設定Socket選項 335
13.4 服務端Socket 339
13.4.1 手機伺服器的實現 339
13.4.2 利用Socket在應用程式之間通信 340
13.5 藍牙通信 342
13.5.1 藍牙簡介 342
13.5.2 打開和關閉藍牙設備 343
13.5.3 搜尋藍牙設備 344
13.5.4 藍牙數據傳輸 346
13.6 小結 351
第14章 炫酷你的套用——多媒體開發 352
14.1 音樂 352
14.1.1 播放音樂 352
14.1.2 錄音 353
14.2 視頻 354
14.2.1 使用VideoView播放視頻 354
14.2.2 使用SurfaceView播放視頻 355
14.2.3 錄製視頻 357
14.3 相機 357
14.3.1 調用系統的拍照功能 358
14.3.2 自定義拍照功能 359
14.4 鈴聲 364
14.5 小結 366
第15章 2D遊戲開發 367
15.1 繪製遊戲的畫布 367
15.1.1 在View上實現動畫效果 367
15.1.2 在SurfaceView上實現動畫效果 371
15.2 圖形繪製基礎 374
15.2.1 繪製像素點 374
15.2.2 繪製直線 374
15.2.3 繪製圓形 375
15.2.4 繪製弧 375
15.2.5 繪製文本 376
15.2.6 綜合繪製各種圖形 376
15.3 高級圖像處理技術 380
15.3.1 繪製點陣圖 380
15.3.2 圖像的透明度 382
15.3.3 旋轉圖像 383
15.3.4 路徑 384
15.3.5 Shader的渲染效果 388
15.4 幀(Frame)動畫 392
15.4.1 AnimationDrawable與幀動畫 392
15.4.2 播放Gif動畫 394
15.5 補間(Tween)動畫 397
15.5.1 移動補間動畫 397
15.5.2 縮放補間動畫 399
15.5.3 旋轉補間動畫 402
15.5.4 透明度補間動畫 403
15.6 小結 404
第16章 有趣的Android套用 405
16.1 感測器 405
16.1.1 如何使用感測器 405
16.1.2 加速度感測器(Accelerometer) 409
16.1.3 重力感測器(Gravity) 409
16.1.4 光線感測器(Light) 410
16.1.5 陀螺儀感測器(gyroscope) 411
16.1.6 方向感測器(Orientation) 411
16.1.7 其他感測器 412
16.2 輸入輸出技術 413
16.2.1 語音識別 413
16.2.2 手勢輸入 415
16.2.3 語音朗讀(TTS) 417
16.3 Google地圖 419
16.4 GPS定位 423
16.5 桌面上的小東西 425
16.5.1 視窗小部件(AppWidget) 425
16.5.2 捷徑 431
16.5.3 實時資料夾 433
16.6 套用更華麗——動態壁紙 435
16.7 小結 441
第三部分 高級篇
第17章 HTML5與移動Web開發 444
17.1 HTML5簡介 444
17.2 HTML5精彩效果演示 445
17.3 HTML5在Android中的套用 447
17.4 HTML5的畫布(Canvas) 448
17.4.1 Canvas概述 448
17.4.2 檢測瀏覽器是否支持Canvas 449
17.4.3 在Web頁面中使用Canvas 450
17.4.4 使用路徑(Path) 452
17.4.5 設定線條風格 453
17.4.6 設定填充類型 453
17.4.7 填充矩形區域 454
17.4.8 使用漸變色(Gradient) 454
17.4.9 拉伸畫布對象 455
17.4.10 在Canvas上繪製文本 456
17.4.11 使用陰影 457
17.5 調試JavaScript 458
17.6 小結 459
第18章 輸入法開發 460
18.1 Android輸入法簡介 460
18.2 控制輸入法 461
18.3 輸入法實戰 462
18.3.1 實現輸入法的步驟 463
18.3.2 編寫輸入法程式 463
18.3.3 輸入法服務的生命周期 466
18.3.4 預輸入文本 467
18.3.5 輸入法設定 467
18.4 小結 468
第19章 Android OpenGL ES開發基礎 469
19.1 OpenGL簡介 469
19.2 什麼是OpenGL ES 469
19.3 多邊形 470
19.4 顏色 474
19.5 旋轉三角形 475
19.6 旋轉立方體 477
19.7 小結 478
第20章 OpenGL ES的超酷效果 479
20.1 保持平衡的旋轉文本 479
20.2 左右搖擺的Android機器人 482
20.3 糾纏在一起的旋轉立方體 485
20.4 透明背景的旋轉立方體 486
20.5 觸摸旋轉的立方體 487
20.6 2D和3D的綜合旋轉效果 489
20.7 旋轉立體天空 491
20.8 小結 493
第21章 Android NDK編程 494
21.1 Android NDK簡介 494
21.2 安裝、配置和測試NDK開發環境 495
21.2.1 系統和軟體要求 495
21.2.2 下載和安裝Android NDK 495
21.2.3 下載和安裝Cygwin 495
21.2.4 配置Android NDK的開發環境 498
21.3 第一個NDK程式:世界你好 499
21.3.1 編寫和調用NDK程式 499
21.3.2 用命令行方式編譯NDK程式 501
21.3.3 在Eclipse中集成Android NDK 502
21.4 背景不斷變化的三角形(NDK 版OpenGL ES) 504
21.5 使用NDK OpenGL ES API實現千變萬化的3D效果 507
21.6 使用NDK調用音頻API 510
21.7 本地Activity(Native Activity) 511
21.8 Android NDK配置檔案詳解 513
21.8.1 Android NDK定義的變數 513
21.8.2 Android NDK定義的函式 514
21.8.3 描述模組的變數 515
21.8.4 配置Application mk檔案 516
21.9 小結 516
第22章 測試驅動開發(TDD) 517
22.1 JUnit測試框架 517
22.2 測試Activity 517
22.3 測試Content Provider 521
22.4 測試Service 523
22.5 測試普通類 523
22.6 小結 525
第四部分 綜合實例篇
第23章 Android綜合案例一——藍牙聊天 528
23.1 藍牙聊天主界面 528
23.2 添加選項選單 530
23.3 搜尋和連線藍牙設備 530
23.4 使設備可被其他藍牙設備發現 533
23.5 傳送和接收聊天信息 533
23.6 小結 537
第24章 Android綜合案例二——月球登入(遊戲) 538
24.1 遊戲的玩法 538
24.2 實現遊戲界面 539
24.3 設定遊戲難度 540
24.4 開始遊戲 541
24.5 控制飛船噴火 544
24.6 控制飛船改變飛行方向 544
24.7 判斷飛船是否成功著陸 545
24.8 小結 546
第25章 Android綜合案例三——全鍵盤輸入法(套用) 547
25.1 安裝輸入法 547
25.2 輸入法的初始化工作 548
25.3 回響鍵盤操作 549
25.4 根據EditText控制項的屬性顯示不同的軟鍵盤 551
25.5 小結 553
第26章 Android綜合案例四——貪吃蛇(遊戲) 554
26.1 遊戲玩法 554
26.2 遊戲主界面設計 555
26.3 控制小蛇的移動 557
26.4 小結 560
第27章 Android綜合案例五——新浪微部落格戶端(套用) 561
27.1 新浪微博簡介 561
27.1.1 新浪微部落格戶端 561
27.1.2 新浪微博開放API 563
27.2 使用新浪微博開發API 563
27.3 創建和配置新浪微部落格戶端工程 564
27.4 登錄新浪微博 564
27.5 功能按鈕 567
27.6 顯示“我的首頁”的微博 569
27.7 評論微博 572
27.8 轉發微博 573
27.9 寫微博 574
27.10 小結 576
第28章 Android綜合案例六——笑臉連連看(遊戲) 577
28.1 遊戲玩法 577
28.2 準備圖像素材 578
28.3 實現主界面 578
28.4 隨機生成連連看圖像 580
28.5 選中兩個相同圖像後消失 580
28.6 用定時器限制遊戲時間 581
28.7 小結 582

相關詞條

相關搜尋

熱門詞條

聯絡我們